Documentation
¶
Index ¶
- func CompileFilterForPlugin(pluginName string, kind string, filter string) (*regexp.Regexp, error)
- func HasPlaceholder(template []PathTemplate, placeholder PathPlaceholder) bool
- func IsTreeShakingEnabled(mode Mode, outputFormat Format) bool
- func PluginAppliesToPath(path logger.Path, filter *regexp.Regexp, namespace string) bool
- func TemplateToString(template []PathTemplate) string
- type DefineArgs
- type DefineData
- type DefineFunc
- type DotDefine
- type ExternalModules
- type Format
- type InjectedDefine
- type InjectedFile
- type JSXOptions
- type LanguageTarget
- type Loader
- type Mode
- type OnLoad
- type OnLoadArgs
- type OnLoadResult
- type OnResolve
- type OnResolveArgs
- type OnResolveResult
- type Options
- type PathPlaceholder
- type PathPlaceholders
- type PathTemplate
- type Platform
- type Plugin
- type ProcessedDefines
- type SourceMap
- type StdinInfo
- type StrictOptions
- type TSOptions
- type WildcardPattern
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompileFilterForPlugin ¶ added in v0.8.1
func HasPlaceholder ¶ added in v0.8.53
func HasPlaceholder(template []PathTemplate, placeholder PathPlaceholder) bool
func IsTreeShakingEnabled ¶ added in v0.8.31
func PluginAppliesToPath ¶ added in v0.8.1
func TemplateToString ¶ added in v0.8.53
func TemplateToString(template []PathTemplate) string
Types ¶
type DefineArgs ¶ added in v0.8.27
type DefineData ¶ added in v0.5.22
type DefineData struct {
DefineFunc DefineFunc
// True if accessing this value is known to not have any side effects. For
// example, a bare reference to "Object.create" can be removed because it
// does not have any observable side effects.
CanBeRemovedIfUnused bool
// True if a call to this value is known to not have any side effects. For
// example, a bare call to "Object()" can be removed because it does not
// have any observable side effects.
CallCanBeUnwrappedIfUnused bool
// Set to true to warn users that this should be defined if it's not already.
WarnAboutLackOfDefine bool
}
type DefineFunc ¶
type DefineFunc func(DefineArgs) js_ast.E
type DotDefine ¶
type DotDefine struct {
Parts []string
Data DefineData
}
type ExternalModules ¶ added in v0.5.20
type ExternalModules struct {
NodeModules map[string]bool
AbsPaths map[string]bool
Patterns []WildcardPattern
}
type Format ¶
type Format uint8
const ( // This is used when not bundling. It means to preserve whatever form the // import or export was originally in. ES6 syntax stays ES6 syntax and // CommonJS syntax stays CommonJS syntax. FormatPreserve Format = iota // IIFE stands for immediately-invoked function expression. That looks like // this: // // (() => { // ... bundled code ... // })(); // // If the optional GlobalName is configured, then we'll write out this: // // let globalName = (() => { // ... bundled code ... // return exports; // })(); // FormatIIFE // The CommonJS format looks like this: // // ... bundled code ... // module.exports = exports; // FormatCommonJS // The ES module format looks like this: // // ... bundled code ... // export {...}; // FormatESModule )
func (Format) KeepES6ImportExportSyntax ¶
type InjectedDefine ¶ added in v0.8.27
type InjectedFile ¶ added in v0.7.17
type JSXOptions ¶
type LanguageTarget ¶
type LanguageTarget int8
type Loader ¶
type Loader int
func (Loader) CanHaveSourceMap ¶ added in v0.6.13
func (Loader) IsTypeScript ¶ added in v0.6.13
type OnLoad ¶ added in v0.8.1
type OnLoad struct {
Name string
Filter *regexp.Regexp
Namespace string
Callback func(OnLoadArgs) OnLoadResult
}
type OnLoadArgs ¶ added in v0.8.1
type OnLoadResult ¶ added in v0.8.1
type OnResolve ¶ added in v0.8.1
type OnResolve struct {
Name string
Filter *regexp.Regexp
Namespace string
Callback func(OnResolveArgs) OnResolveResult
}
type OnResolveArgs ¶ added in v0.8.1
type OnResolveResult ¶ added in v0.8.1
type Options ¶
type Options struct {
Mode Mode
PreserveSymlinks bool
RemoveWhitespace bool
MinifyIdentifiers bool
MangleSyntax bool
CodeSplitting bool
WatchMode bool
// Setting this to true disables warnings about code that is very likely to
// be a bug. This is used to ignore issues inside "node_modules" directories.
// This has caught real issues in the past. However, it's not esbuild's job
// to find bugs in other libraries, and these warnings are problematic for
// people using these libraries with esbuild. The only fix is to either
// disable all esbuild warnings and not get warnings about your own code, or
// to try to get the warning fixed in the affected library. This is
// especially annoying if the warning is a false positive as was the case in
// https://github.com/firebase/firebase-js-sdk/issues/3814. So these warnings
// are now disabled for code inside "node_modules" directories.
SuppressWarningsAboutWeirdCode bool
// If true, make sure to generate a single file that can be written to stdout
WriteToStdout bool
OmitRuntimeForTests bool
PreserveUnusedImportsTS bool
UseDefineForClassFields bool
ASCIIOnly bool
KeepNames bool
IgnoreDCEAnnotations bool
Defines *ProcessedDefines
TS TSOptions
JSX JSXOptions
Platform Platform
UnsupportedJSFeatures compat.JSFeature
UnsupportedCSSFeatures compat.CSSFeature
// This is the original information that was used to generate the
// unsupported feature sets above. It's used for error messages.
OriginalTargetEnv string
ExtensionOrder []string
MainFields []string
Conditions []string
AbsNodePaths []string // The "NODE_PATH" variable from Node.js
ExternalModules ExternalModules
AbsOutputFile string
AbsOutputDir string
AbsOutputBase string
OutputExtensionJS string
OutputExtensionCSS string
GlobalName []string
TsConfigOverride string
ExtensionToLoader map[string]Loader
OutputFormat Format
PublicPath string
InjectAbsPaths []string
InjectedDefines []InjectedDefine
InjectedFiles []InjectedFile
JSBanner string
CSSBanner string
ChunkPathTemplate []PathTemplate
AssetPathTemplate []PathTemplate
Plugins []Plugin
NeedsMetafile bool
SourceMap SourceMap
ExcludeSourcesContent bool
Stdin *StdinInfo
}
type PathPlaceholder ¶ added in v0.8.53
type PathPlaceholder uint8
const ( NoPlaceholder PathPlaceholder = iota // The original name of the file, or the manual chunk name, or the name of // the type of output file ("entry" or "chunk" or "asset") NamePlaceholder // A hash of the contents of this file, and the contents and output paths of // all dependencies (except for their hash placeholders) HashPlaceholder )
type PathPlaceholders ¶ added in v0.8.53
func (PathPlaceholders) Get ¶ added in v0.8.53
func (placeholders PathPlaceholders) Get(placeholder PathPlaceholder) *string
type PathTemplate ¶ added in v0.8.53
type PathTemplate struct {
Data string
Placeholder PathPlaceholder
}
func SubstituteTemplate ¶ added in v0.8.53
func SubstituteTemplate(template []PathTemplate, placeholders PathPlaceholders) []PathTemplate
type ProcessedDefines ¶
type ProcessedDefines struct {
IdentifierDefines map[string]DefineData
DotDefines map[string][]DotDefine
}
func ProcessDefines ¶
func ProcessDefines(userDefines map[string]DefineData) ProcessedDefines
This transformation is expensive, so we only want to do it once. Make sure to only call processDefines() once per compilation. Unfortunately Golang doesn't have an efficient way to copy a map and the overhead of copying all of the properties into a new map once for every new parser noticeably slows down our benchmarks.
type StrictOptions ¶
type StrictOptions struct {
// Loose: "class Foo { foo = 1 }" => "class Foo { constructor() { this.foo = 1; } }"
// Strict: "class Foo { foo = 1 }" => "class Foo { constructor() { __publicField(this, 'foo', 1); } }"
//
// The disadvantage of strictness here is code bloat and performance. The
// advantage is following the class field specification accurately. For
// example, loose mode will incorrectly trigger setter methods while strict
// mode won't.
ClassFields bool
}
type WildcardPattern ¶ added in v0.8.11
Click to show internal directories.
Click to hide internal directories.