API

The remaining types specified in `@parcel/types`

The most important data types are listed on the page of the relevant plugin type.

AST parcel/packages/core/types/index.js:18

Plugin-specific AST, any

Type
type AST = _AST;
Referenced by:
BaseAsset, BundleResult, MutableAsset, Transformer, TransformerResult

ConfigResult parcel/packages/core/types/index.js:19

Type
type ConfigResult = _ConfigResult;
Referenced by:
MultiThreadValidator

ConfigResultWithFilePath parcel/packages/core/types/index.js:21

Plugin-specific config result, any

type ConfigResultWithFilePath<T> = {|
  contents: T,
  filePath: FilePath,
|}
Referenced by:
Config

EnvMap parcel/packages/core/types/index.js:26

process.env

Type
type EnvMap = typeof process.env;
Referenced by:
InitialParcelOptions, PluginOptions

JSONValue parcel/packages/core/types/index.js:28

Type
type JSONValue = null | void | boolean | number | string | Array<JSONValue> | JSONObject;

JSONObject parcel/packages/core/types/index.js:38

A JSON object (as in "map")

type JSONObject = {
}
Referenced by:
JSONValue, Meta, ResolveResult

Semver parcel/packages/core/types/index.js:43

Type
type Semver = string;
Referenced by:
ASTGenerator, PackageJSON

GlobMap parcel/packages/core/types/index.js:49

A pipeline as specified in the config mapping to T

type GlobMap<T> = {
}

RawParcelConfigPipeline parcel/packages/core/types/index.js:51

Type
type RawParcelConfigPipeline = Array<PackageName>;
Referenced by:
RawParcelConfig

HMROptions parcel/packages/core/types/index.js:53

type HMROptions = {
  port?: number,
  host?: string,
}
Referenced by:
InitialParcelOptions, PluginOptions

RawParcelConfig parcel/packages/core/types/index.js:56

The format of .parcelrc

type RawParcelConfig = {|
  extends?: PackageName | FilePath | Array<PackageName | FilePath>,
  resolvers?: RawParcelConfigPipeline,
  transformers?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  bundler?: PackageName,
  namers?: RawParcelConfigPipeline,
  runtimes?: RawParcelConfigPipeline,
  packagers?: {
    [Glob]: PackageName,
    ...
  },
  optimizers?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  compressors?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  reporters?: RawParcelConfigPipeline,
  validators?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
|}
Referenced by:
ResolvedParcelConfigFile

ResolvedParcelConfigFile parcel/packages/core/types/index.js:71

A .parcelrc where all package names are resolved

type ResolvedParcelConfigFile = {|
  ...RawParcelConfig,
  +filePath: FilePath,
  +resolveFrom?: FilePath,
|}

Engines parcel/packages/core/types/index.js:78

Corresponds to pkg#engines

type Engines = {
  +browsers?: string | Array<string>,
  +electron?: SemverRange,
  +node?: SemverRange,
  +parcel?: SemverRange,
}
Referenced by:
Environment, EnvironmentOptions, InitialParcelOptions, PackageJSON, PackageTargetDescriptor

TargetSourceMapOptions parcel/packages/core/types/index.js:87

Corresponds to pkg#targets.*.sourceMap

type TargetSourceMapOptions = {|
  +sourceRoot?: string,
  +inline?: boolean,
  +inlineSources?: boolean,
|}
Referenced by:
Environment, EnvironmentOptions, PackageTargetDescriptor

Target parcel/packages/core/types/index.js:96

A parsed version of PackageTargetDescriptor

interface Target {
  +distEntry: ?FilePath,

The output filename of the entry

  +distDir: FilePath,

The output folder

  +env: Environment,
  +name: string,
  +publicUrl: string,
  +loc: ?SourceLocation,

The location that created this Target, e.g. package.json#main

}
Referenced by:
Bundle, BundleGraph, BundleGroup, CreateBundleOpts, Dependency, MutableBundleGraph, PackageTargetDescriptor

EnvironmentContext parcel/packages/core/types/index.js:109

In which environment the output should run (influces e.g. bundle loaders)

Type
type EnvironmentContext = 'browser' | 'web-worker' | 'service-worker' | 'worklet' | 'node' | 'electron-main' | 'electron-renderer';
Referenced by:
Environment, EnvironmentOptions, PackageTargetDescriptor

OutputFormat parcel/packages/core/types/index.js:119

The JS module format for the bundle output

Type
type OutputFormat = 'esmodule' | 'commonjs' | 'global';
Referenced by:
Environment, EnvironmentOptions, InitialParcelOptions, PackageTargetDescriptor

PackageTargetDescriptor parcel/packages/core/types/index.js:126

The format of pkg#targets.*
See Environment and Target.

type PackageTargetDescriptor = {|
  +context?: EnvironmentContext,
  +engines?: Engines,
  +includeNodeModules?: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },
  +outputFormat?: OutputFormat,
  +publicUrl?: string,
  +distDir?: FilePath,
  +sourceMap?: boolean | TargetSourceMapOptions,
  +isLibrary?: boolean,
  +optimize?: boolean,
  +scopeHoist?: boolean,
  +source?: FilePath | Array<FilePath>,
|}
Referenced by:
PackageJSON, Target, TargetDescriptor

TargetDescriptor parcel/packages/core/types/index.js:148

The target format when using the JS API.
(Same as PackageTargetDescriptor, but distDir is required.)

type TargetDescriptor = {|
  ...PackageTargetDescriptor,
  +distDir: FilePath,
  +distEntry?: FilePath,
|}
Referenced by:
InitialParcelOptions

SourceType parcel/packages/core/types/index.js:154

Type
type SourceType = 'script' | 'module';
Referenced by:
Environment, EnvironmentOptions

EnvironmentOptions parcel/packages/core/types/index.js:159

This is used when creating an Environment (see that).

type EnvironmentOptions = {|
  +context?: EnvironmentContext,
  +engines?: Engines,
  +includeNodeModules?: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },
  +outputFormat?: OutputFormat,
  +sourceType?: SourceType,
  +isLibrary?: boolean,
  +shouldOptimize?: boolean,
  +shouldScopeHoist?: boolean,
  +sourceMap?: ?TargetSourceMapOptions,
  +loc?: ?SourceLocation,
|}
Referenced by:
DependencyOptions, MutableAsset, RuntimeAsset, TransformerResult

VersionMap parcel/packages/core/types/index.js:187

A resolved browserslist, e.g.:


{
  edge: '76',
  firefox: '67',
  chrome: '63',
  safari: '11.1',
  opera: '50',
}
type VersionMap = {
}
Referenced by:
Environment

EnvironmentFeature parcel/packages/core/types/index.js:192

Type
type EnvironmentFeature = 'esmodules' | 'dynamic-import' | 'worker-module' | 'service-worker-module' | 'import-meta-url' | 'arrow-functions';
Referenced by:
Environment

Environment parcel/packages/core/types/index.js:203

Defines the environment in for the output bundle

interface Environment {
  +id: string,
  +context: EnvironmentContext,
  +engines: Engines,
  +includeNodeModules: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },

Whether to include all/none packages (true / false), an array of package names to include, or an object (of a package is not specified, it's included).

  +outputFormat: OutputFormat,
  +sourceType: SourceType,
  +isLibrary: boolean,

Whether this is a library build (e.g. less loaders)

  +shouldOptimize: boolean,

Whether the output should be minified.

  +shouldScopeHoist: boolean,

Whether scope hoisting is enabled.

  +sourceMap: ?TargetSourceMapOptions,
  +loc: ?SourceLocation,
  isBrowser(): boolean,

Whether context specifies a browser context.

  isNode(): boolean,

Whether context specifies a node context.

  isElectron(): boolean,

Whether context specifies an electron context.

  isWorker(): boolean,

Whether context specifies a worker context.

  isWorklet(): boolean,

Whether context specifies a worklet context.

  isIsolated(): boolean,

Whether context specifies an isolated context (can't access other loaded ancestor bundles).

  matchesEngines(minVersions: VersionMap, defaultValue?: boolean): boolean,
  supports(feature: EnvironmentFeature, defaultValue?: boolean): boolean,
}
Referenced by:
BaseAsset, Bundle, Config, CreateBundleOpts, Dependency, EnvironmentOptions, PackageTargetDescriptor, Target, TransformerResult

PackageDependencies parcel/packages/core/types/index.js:245

Format of pkg#dependencies, pkg#devDependencies, pkg#peerDependencies

type PackageDependencies = {|
|}
Referenced by:
PackageJSON

PackageJSON parcel/packages/core/types/index.js:252

Format of package.json

type PackageJSON = {
  name: PackageName,
  version: Semver,
  type?: 'module',
  main?: FilePath,
  module?: FilePath,
  types?: FilePath,
  browser?: FilePath | {
    [FilePath]: FilePath | boolean,
    ...
  },
  source?: FilePath | Array<FilePath>,
  alias?: {
    [PackageName | FilePath | Glob]: PackageName | FilePath | {|
      global: string
    |},
    ...
  },
  browserslist?: Array<string> | {
    [string]: Array<string>
  },
  engines?: Engines,
  targets?: {
    [string]: PackageTargetDescriptor,
    ...
  },
  dependencies?: PackageDependencies,
  devDependencies?: PackageDependencies,
  peerDependencies?: PackageDependencies,
  sideEffects?: boolean | FilePath | Array<FilePath>,
  bin?: string | {|
    [string]: FilePath
  |},
}
Referenced by:
Config

LogLevel parcel/packages/core/types/index.js:279

Type
type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'verbose';
Referenced by:
InitialParcelOptions, PluginOptions

BuildMode parcel/packages/core/types/index.js:280

Type
type BuildMode = 'development' | 'production' | string;
Referenced by:
InitialParcelOptions, PluginOptions

DetailedReportOptions parcel/packages/core/types/index.js:281

type DetailedReportOptions = {|
  assetsPerBundle?: number,
|}
Referenced by:
InitialParcelOptions, PluginOptions

InitialParcelOptions parcel/packages/core/types/index.js:285

type InitialParcelOptions = {|
  +entries?: FilePath | Array<FilePath>,
  +config?: DependencySpecifier,
  +defaultConfig?: DependencySpecifier,
  +env?: EnvMap,
  +targets?: ?(Array<string> | {
    +[string]: TargetDescriptor,
    ...
  }),
  +shouldDisableCache?: boolean,
  +cacheDir?: FilePath,
  +mode?: BuildMode,
  +hmrOptions?: ?HMROptions,
  +shouldContentHash?: boolean,
  +serveOptions?: InitialServerOptions | false,
  +shouldAutoInstall?: boolean,
  +logLevel?: LogLevel,
  +shouldProfile?: boolean,
  +shouldPatchConsole?: boolean,
  +shouldBuildLazily?: boolean,
  +shouldBundleIncrementally?: boolean,
  +inputFS?: FileSystem,
  +outputFS?: FileSystem,
  +cache?: Cache,
  +workerFarm?: WorkerFarm,
  +packageManager?: PackageManager,
  +detailedReport?: ?DetailedReportOptions,
  +defaultTargetOptions?: {|
    +shouldOptimize?: boolean,
    +shouldScopeHoist?: boolean,
    +sourceMaps?: boolean,
    +publicUrl?: string,
    +distDir?: FilePath,
    +engines?: Engines,
    +outputFormat?: OutputFormat,
    +isLibrary?: boolean,
  |},
  +additionalReporters?: Array<{|
    packageName: DependencySpecifier,
    resolveFrom: FilePath,
  |}>,
|}

InitialServerOptions parcel/packages/core/types/index.js:332

type InitialServerOptions = {|
  +publicUrl?: string,
  +host?: string,
  +port: number,
  +https?: HTTPSOptions | boolean,
|}
Referenced by:
InitialParcelOptions

PluginOptions parcel/packages/core/types/index.js:339

interface PluginOptions {
  +mode: BuildMode,
  +env: EnvMap,
  +hmrOptions: ?HMROptions,
  +serveOptions: ServerOptions | false,
  +shouldBuildLazily: boolean,
  +shouldAutoInstall: boolean,
  +logLevel: LogLevel,
  +projectRoot: FilePath,
  +cacheDir: FilePath,
  +inputFS: FileSystem,
  +outputFS: FileSystem,
  +packageManager: PackageManager,
  +instanceId: string,
  +detailedReport: ?DetailedReportOptions,
}
Referenced by:
Bundler, Compressor, DedicatedThreadValidator, MultiThreadValidator, Namer, Optimizer, Packager, Reporter, Resolver, Runtime, Transformer

ServerOptions parcel/packages/core/types/index.js:356

type ServerOptions = {|
  +distDir: FilePath,
  +host?: string,
  +port: number,
  +https?: HTTPSOptions | boolean,
  +publicUrl?: string,
|}
Referenced by:
PluginOptions

HTTPSOptions parcel/packages/core/types/index.js:364

type HTTPSOptions = {|
  +cert: FilePath,
  +key: FilePath,
|}
Referenced by:
InitialServerOptions, ServerOptions

SourceLocation parcel/packages/core/types/index.js:372

Source locations are 1-based, meaning lines and columns start at 1

type SourceLocation = {|
  +filePath: string,
  +start: {|
    +line: number,
    +column: number,
  |},

inclusive

  +end: {|
    +line: number,
    +column: number,
  |},

exclusive

|}
Referenced by:
AssetSymbols, Dependency, DependencyOptions, Environment, EnvironmentOptions, MutableAssetSymbols, MutableDependencySymbols, SymbolResolution, Target, TransformerResult

AssetSymbols parcel/packages/core/types/index.js:399

A map of export names to the corresponding asset's local variable names.

interface AssetSymbols extends Iterable<[Symbol, {|
  local: Symbol,
  loc: ?SourceLocation,
  meta?: ?Meta,
|}]> {
  +isCleared: boolean,

The exports of the asset are unknown, rather than just empty. This is the default state.

  get(exportSymbol: Symbol): ?{|
    local: Symbol,
    loc: ?SourceLocation,
    meta?: ?Meta,
  |},
  hasExportSymbol(exportSymbol: Symbol): boolean,
  hasLocalSymbol(local: Symbol): boolean,
  exportSymbols(): Iterable<Symbol>,
}
Referenced by:
BaseAsset, MutableAssetSymbols

MutableAssetSymbols parcel/packages/core/types/index.js:418

interface MutableAssetSymbols extends AssetSymbols {
  ensure(): void,

Initilizes the map, sets isCleared to false.

  set(exportSymbol: Symbol, local: Symbol, loc: ?SourceLocation, meta?: ?Meta): void,
  delete(exportSymbol: Symbol): void,
}
Referenced by:
MutableAsset

MutableDependencySymbols parcel/packages/core/types/index.js:435

isWeak means: the symbol is not used by the parent asset itself and is merely reexported

interface MutableDependencySymbols extends Iterable<[Symbol, {|
  local: Symbol,
  loc: ?SourceLocation,
  isWeak: boolean,
  meta?: ?Meta,
|}]> {
  ensure(): void,

Initilizes the map, sets isCleared to false.

  +isCleared: boolean,

The symbols taht are imports are unknown, rather than just empty. This is the default state.

  get(exportSymbol: Symbol): ?{|
    local: Symbol,
    loc: ?SourceLocation,
    isWeak: boolean,
    meta?: ?Meta,
  |},
  hasExportSymbol(exportSymbol: Symbol): boolean,
  hasLocalSymbol(local: Symbol): boolean,
  exportSymbols(): Iterable<Symbol>,
  set(exportSymbol: Symbol, local: Symbol, loc: ?SourceLocation, isWeak: ?boolean): void,
  delete(exportSymbol: Symbol): void,
}
Referenced by:
Dependency

DependencyPriority parcel/packages/core/types/index.js:469

Type
type DependencyPriority = 'sync' | 'parallel' | 'lazy';
Referenced by:
Dependency, DependencyOptions, ResolveResult

SpecifierType parcel/packages/core/types/index.js:470

Type
type SpecifierType = 'commonjs' | 'esm' | 'url' | 'custom';
Referenced by:
Dependency, DependencyOptions, ResolveOptions

File parcel/packages/core/types/index.js:631

type File = {|
  +filePath: FilePath,
  +hash?: string,
|}

DevDepOptions parcel/packages/core/types/index.js:790

type DevDepOptions = {|
  specifier: DependencySpecifier,
  resolveFrom: FilePath,
  range?: ?SemverRange,
  additionalInvalidations?: Array<{|
    specifier: DependencySpecifier,
    resolveFrom: FilePath,
    range?: ?SemverRange,
  |}>,

When this dev dependency is invalidated, also invalidate these dependencies. This is useful if the parcel plugin or another parent dependency has its own cache for this dev dependency other than Node's require cache.

|}
Referenced by:
Config

Stats parcel/packages/core/types/index.js:874

type Stats = {|
  time: number,
  size: number,
|}
Referenced by:
Asset, PackagedBundle

Blob parcel/packages/core/types/index.js:887

Type
type Blob = string | Buffer | Readable;
Referenced by:
BundleResult, GenerateOutput, Optimizer, Packager, TransformerResult

PackagedBundle parcel/packages/core/types/index.js:1330

interface PackagedBundle extends NamedBundle {
  +filePath: FilePath,

The absolute file path of the written bundle, including the final content hash if any.

  +stats: Stats,

Statistics about the bundle.

}
Referenced by:
BuildSuccessEvent

GlobInvalidation parcel/packages/core/types/index.js:1518

type GlobInvalidation = {|
  glob: Glob,
|}
Referenced by:
FileCreateInvalidation

FileInvalidation parcel/packages/core/types/index.js:1522

type FileInvalidation = {|
  filePath: FilePath,
|}
Referenced by:
FileCreateInvalidation

FileAboveInvalidation parcel/packages/core/types/index.js:1526

type FileAboveInvalidation = {|
  fileName: string,
  aboveFilePath: FilePath,
|}
Referenced by:
FileCreateInvalidation

RuntimeAssetPriority parcel/packages/core/types/index.js:1613

Type
type RuntimeAssetPriority = 'sync' | 'parallel';
Referenced by:
RuntimeAsset

BundledProgressEvent parcel/packages/core/types/index.js:1826

type BundledProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'bundled',
  +bundleGraph: BundleGraph<NamedBundle>,
  +changedAssets: Map<string, Asset>,
|}
Referenced by:
BuildProgressEvent

ErrorWithCode parcel/packages/core/types/index.js:1923

interface ErrorWithCode extends Error {
  +code?: string,
}

IDisposable parcel/packages/core/types/index.js:1927

interface IDisposable {
  dispose(): mixed,
}

AsyncSubscription parcel/packages/core/types/index.js:1931

type AsyncSubscription = {|
  unsubscribe(): Promise<mixed>,
|}