Documentation
¶
Index ¶
- func CompileFilterForPlugin(pluginName string, kind string, filter string) (*regexp.Regexp, error)
- func HasPlaceholder(template []PathTemplate, placeholder PathPlaceholder) bool
- func PluginAppliesToPath(path logger.Path, filter *regexp.Regexp, namespace string) bool
- func ShouldCallRuntimeRequire(mode Mode, outputFormat Format) bool
- func TemplateToString(template []PathTemplate) string
- type DefineArgs
- type DefineData
- type DefineFunc
- type DotDefine
- type ExternalMatchers
- type ExternalSettings
- type Format
- type InjectableExport
- type InjectedDefine
- type InjectedFile
- type JSXExpr
- type JSXOptions
- type LegalComments
- type Loader
- type MaybeBool
- type Mode
- type OnLoad
- type OnLoadArgs
- type OnLoadResult
- type OnResolve
- type OnResolveArgs
- type OnResolveResult
- type OnStart
- type OnStartResult
- type Options
- type PathPlaceholder
- type PathPlaceholders
- type PathTemplate
- type Platform
- type Plugin
- type ProcessedDefines
- type SourceMap
- type StdinInfo
- type TSOptions
- type TSTarget
- type TargetFromAPI
- type UnusedImportsTS
- 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 PluginAppliesToPath ¶ added in v0.8.1
func ShouldCallRuntimeRequire ¶ added in v0.11.23
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
// If true, the user has indicated that every direct calls to a property on
// this object and all of that call's arguments are to be removed from the
// output, even when the arguments have side effects. This is used to
// implement the "--drop:console" flag.
MethodCallsMustBeReplacedWithUndefined bool
}
type DefineFunc ¶
type DefineFunc func(DefineArgs) js_ast.E
type DotDefine ¶
type DotDefine struct {
Data DefineData
Parts []string
}
type ExternalMatchers ¶ added in v0.14.13
type ExternalMatchers struct {
Exact map[string]bool
Patterns []WildcardPattern
}
func (ExternalMatchers) HasMatchers ¶ added in v0.14.13
func (matchers ExternalMatchers) HasMatchers() bool
type ExternalSettings ¶ added in v0.14.13
type ExternalSettings struct {
PreResolve ExternalMatchers
PostResolve ExternalMatchers
}
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 InjectableExport ¶ added in v0.12.0
type InjectedDefine ¶ added in v0.8.27
type InjectedFile ¶ added in v0.7.17
type InjectedFile struct {
Exports []InjectableExport
DefineName string
Source logger.Source
}
type JSXOptions ¶
type LegalComments ¶ added in v0.11.15
type LegalComments uint8
const ( LegalCommentsInline LegalComments = iota LegalCommentsNone LegalCommentsEndOfFile LegalCommentsLinkedWithComment LegalCommentsExternalWithoutComment )
func (LegalComments) HasExternalFile ¶ added in v0.11.15
func (lc LegalComments) HasExternalFile() bool
type Loader ¶
type Loader uint8
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 {
Filter *regexp.Regexp
Callback func(OnLoadArgs) OnLoadResult
Name string
Namespace string
}
type OnLoadArgs ¶ added in v0.8.1
type OnLoadResult ¶ added in v0.8.1
type OnResolve ¶ added in v0.8.1
type OnResolve struct {
Filter *regexp.Regexp
Callback func(OnResolveArgs) OnResolveResult
Name string
Namespace string
}
type OnResolveArgs ¶ added in v0.8.1
type OnResolveResult ¶ added in v0.8.1
type OnStart ¶ added in v0.11.15
type OnStart struct {
Callback func() OnStartResult
Name string
}
type OnStartResult ¶ added in v0.11.15
type Options ¶
type Options struct {
ModuleTypeData js_ast.ModuleTypeData
Defines *ProcessedDefines
TSTarget *TSTarget
MangleProps *regexp.Regexp
ReserveProps *regexp.Regexp
// When mangling property names, call this function with a callback and do
// the property name mangling inside the callback. The callback takes an
// argument which is the mangle cache map to mutate. These callbacks are
// serialized so mutating the map does not require extra synchronization.
//
// This is a callback for determinism reasons. We may be building multiple
// entry points in parallel that are supposed to share a single cache. We
// don't want the order that each entry point mangles properties in to cause
// the output to change, so we serialize the property mangling over all entry
// points in entry point order. However, we still want to link everything in
// parallel so only property mangling is serialized, which is implemented by
// this function blocking until the previous entry point's property mangling
// has finished.
ExclusiveMangleCacheUpdate func(cb func(mangleCache map[string]interface{}))
// 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
ExternalSettings ExternalSettings
AbsOutputFile string
AbsOutputDir string
AbsOutputBase string
OutputExtensionJS string
OutputExtensionCSS string
GlobalName []string
TsConfigOverride string
ExtensionToLoader map[string]Loader
PublicPath string
InjectAbsPaths []string
InjectedDefines []InjectedDefine
InjectedFiles []InjectedFile
JSBanner string
CSSBanner string
EntryPathTemplate []PathTemplate
ChunkPathTemplate []PathTemplate
AssetPathTemplate []PathTemplate
Plugins []Plugin
SourceRoot string
Stdin *StdinInfo
JSX JSXOptions
UnsupportedJSFeatures compat.JSFeature
UnsupportedCSSFeatures compat.CSSFeature
TS TSOptions
Mode Mode
PreserveSymlinks bool
MinifyWhitespace bool
MinifyIdentifiers bool
MinifySyntax bool
ProfilerNames bool
CodeSplitting bool
WatchMode bool
AllowOverwrite bool
LegalComments LegalComments
// If true, make sure to generate a single file that can be written to stdout
WriteToStdout bool
OmitRuntimeForTests bool
UnusedImportsTS UnusedImportsTS
UseDefineForClassFields MaybeBool
ASCIIOnly bool
KeepNames bool
IgnoreDCEAnnotations bool
TreeShaking bool
DropDebugger bool
Platform Platform
TargetFromAPI TargetFromAPI
OutputFormat Format
NeedsMetafile bool
SourceMap SourceMap
ExcludeSourcesContent bool
}
type PathPlaceholder ¶ added in v0.8.53
type PathPlaceholder uint8
const ( NoPlaceholder PathPlaceholder = iota // The relative path from the original parent directory to the configured // "outbase" directory, or to the lowest common ancestor directory DirPlaceholder // 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 // The original extension of the file, or the name of the output file // (e.g. "css", "svg", "png") ExtPlaceholder )
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 TargetFromAPI ¶ added in v0.14.0
type TargetFromAPI uint8
const ( // In this state, the "target" field in "tsconfig.json" is respected TargetWasUnconfigured TargetFromAPI = iota // In this state, the "target" field in "tsconfig.json" is overridden TargetWasConfigured // In this state, "useDefineForClassFields" is true unless overridden TargetWasConfiguredIncludingESNext )
type UnusedImportsTS ¶ added in v0.14.0
type UnusedImportsTS uint8
const ( // "import { unused } from 'foo'" => "" (TypeScript's default behavior) UnusedImportsRemoveStmt UnusedImportsTS = iota // "import { unused } from 'foo'" => "import 'foo'" ("importsNotUsedAsValues" != "remove") UnusedImportsKeepStmtRemoveValues // "import { unused } from 'foo'" => "import { unused } from 'foo'" ("preserveValueImports" == true) UnusedImportsKeepValues )
func UnusedImportsFromTsconfigValues ¶ added in v0.14.0
func UnusedImportsFromTsconfigValues(preserveImportsNotUsedAsValues bool, preserveValueImports bool) UnusedImportsTS
type WildcardPattern ¶ added in v0.8.11
Click to show internal directories.
Click to hide internal directories.