UNPKG

34.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"bundlib.cjs.js","sources":["../src/resolve.ts","../src/console.ts","../src/errors.ts","../src/type-check.ts","../src/validate-fmt.ts","../src/validate-min.ts","../src/analize-pkg.ts","../src/events.ts","../src/create-config.ts","../src/rename-min.ts","../src/pkg-to-configs.ts","../src/one-by-one.ts","../src/build.ts","../src/watch.ts","../src/roll-it-up.ts","../src/bundlib.ts"],"sourcesContent":["import { resolve } from \"path\";\n\nconst resolvePath = (filename: string, cwd: string) => resolve(cwd, filename);\n\nexport default resolvePath;\n","import { relative } from \"path\";\n\nexport function log(pattern: string | Error, ...args: any[]): void {\n // tslint:disable-next-line: no-console\n console.log(pattern, ...args);\n}\n\nexport function logFilename(filename: string, cwd: string, pattern: string) {\n log(pattern, relative(cwd, filename));\n}\n","export function error(msg: string): TypeError {\n return new TypeError(msg);\n}\n\nexport function invalidPkgField(fieldName: string): TypeError {\n return error(`Invalid package.json ${fieldName} field.`);\n}\n\nexport function invalidOption(optionName: string): TypeError {\n return error(`Invalid ${optionName} options.`);\n}\n","export function isNull(value: unknown): value is null | undefined {\n return value == null;\n}\n\nexport function isObject<V = any>(value: unknown): value is Record<keyof any, V> {\n return typeof value === \"object\" && !!value;\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function isBool(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport const isArray = Array.isArray;\n","import { BrowserBuildFormat } from \"./types\";\n\nexport function isBrowserFormat(value: unknown): value is BrowserBuildFormat {\n return !!value && (\n value === \"iife\" || value === \"amd\" || value === \"umd\"\n );\n}\n","import { PkgJsonModuleOutputFields } from \"./pkg\";\nimport { isArray, isBool } from \"./type-check\";\n\nexport function isValidMin(value: unknown): value is PkgJsonModuleOutputFields {\n return !!value && (\n value === \"main\" || value === \"module\" || value === \"browser\"\n );\n}\n\ntype ValidMin = PkgJsonModuleOutputFields | PkgJsonModuleOutputFields[];\n\nexport function isValidMinOption(value: unknown): value is ValidMin {\n return isBool(value) || isValidMin(value) || (\n isArray(value) && value.every((item) => (\n isValidMin(item)\n ))\n );\n}\n","import builtinModules from \"builtin-modules\";\nimport readPkg from \"read-pkg\";\nimport resolvePath from \"./resolve\";\n\nimport { log } from \"./console\";\nimport { error, invalidOption, invalidPkgField } from \"./errors\";\nimport {\n AnalizedPkg,\n BrowserOptions,\n BundlibDependencies,\n BundlibOutputFiles,\n BundlibPkgJson,\n BundlibPkgOptions,\n MinifyOutOptions,\n PkgJsonModuleOutputFields,\n} from \"./pkg\";\nimport { isArray, isNull, isObject, isString } from \"./type-check\";\nimport { BrowserBuildFormat } from \"./types\";\nimport { isBrowserFormat } from \"./validate-fmt\";\nimport { isValidMinOption } from \"./validate-min\";\n\nconst analizePkg = async (cwd: string, pkg?: BundlibPkgJson): Promise<AnalizedPkg> => {\n\n const resolvedPkg: BundlibPkgJson = pkg || await readPkg({ cwd });\n\n const {\n name: pkgName,\n main: cjsModuleFile,\n module: esModuleFile,\n browser: browserFile,\n types: pkgTypes,\n typings,\n dependencies: runtimeDependencies,\n peerDependencies,\n bundledDependencies,\n bundleDependencies,\n bundlib: bundlibOptions,\n } = resolvedPkg;\n\n if (browserFile && !isString(browserFile)) {\n throw invalidPkgField(\"browser\");\n }\n\n if (!isNull(bundlibOptions) && (!isObject(bundlibOptions) || isArray(bundlibOptions))) {\n throw invalidPkgField(\"bundlib\");\n }\n\n const {\n input: pkgInput,\n sourcemap: sourcemapFlag,\n esModule: esModuleFlag,\n interop: interopFlag,\n extend: extendFlag,\n equals: equalsFlag,\n browser: pkgBrowserFormat,\n name: browserName,\n id: amdId,\n globals: browserGlobals,\n iife,\n amd,\n umd,\n min,\n } = (bundlibOptions || {}) as BundlibPkgOptions;\n\n if (!isNull(pkgInput) && !isString(pkgInput)) {\n throw invalidOption(\"input\");\n }\n\n if (!isNull(pkgBrowserFormat) && !isBrowserFormat(pkgBrowserFormat)) {\n throw invalidOption(\"browser\");\n }\n\n if (!isNull(browserName) && !isString(browserName)) {\n throw invalidOption(\"name\");\n }\n\n if (!isNull(amdId) && !isString(amdId)) {\n throw invalidOption(\"id\");\n }\n\n if (!isNull(browserGlobals) && !isObject(browserGlobals)) {\n throw invalidOption(\"globals\");\n }\n\n if (!isNull(min) && !isValidMinOption(min)) {\n throw invalidOption(\"min\");\n }\n\n // compatible with version <0.3\n\n if ((iife && amd) || (iife && umd) || (amd && umd)) {\n throw error(\"multiple browser builds are no longer supported in bundlib >= 0.3.\");\n }\n\n if (iife || amd || umd) {\n // warn about deprecated options\n log(\"options iife, amd & umd are deprecated in version >= 0.3\");\n }\n\n const deprecatedBrowserFormat: BrowserBuildFormat | null = iife ? \"iife\" : amd ? \"amd\" : null;\n\n // get format from deprecated options if no format specified\n\n const browserFormat: BrowserBuildFormat = pkgBrowserFormat || deprecatedBrowserFormat || \"umd\";\n\n //\n\n const input = resolvePath(\n pkgInput || \"src/index.ts\",\n cwd,\n );\n\n const typesPath = pkgTypes || typings;\n\n const output: BundlibOutputFiles = {\n main: cjsModuleFile ? resolvePath(cjsModuleFile, cwd) : null,\n module: esModuleFile ? resolvePath(esModuleFile, cwd) : null,\n browser: browserFile ? resolvePath(browserFile, cwd) : null,\n types: typesPath ? resolvePath(typesPath, cwd) : null,\n };\n\n const dependencies: BundlibDependencies = {\n builtin: builtinModules,\n runtime: runtimeDependencies ? Object.keys(runtimeDependencies) : [],\n peer: peerDependencies ? Object.keys(peerDependencies) : [],\n bundled: bundledDependencies || bundleDependencies || [],\n };\n\n const buildName = browserName || pkgName || null;\n\n const minify: MinifyOutOptions = !min\n ? {}\n : min as unknown as boolean === true\n ? { main: true, module: true, browser: true }\n : isArray(min)\n ? min.reduce((result, value) => {\n result[value] = true;\n return result;\n }, {} as MinifyOutOptions)\n : {\n [min as PkgJsonModuleOutputFields]: true,\n };\n\n const globals = !browserGlobals\n ? null\n : isArray(browserGlobals)\n ? browserGlobals.reduce<Record<string, string>>((result, value) => {\n if (isString(value)) {\n result[value] = value;\n }\n return result;\n }, {})\n : browserGlobals as Record<string, string>;\n\n const browser: BrowserOptions = {\n format: browserFormat,\n name: buildName,\n id: amdId || null,\n globals,\n };\n\n const options = {\n sourcemap: sourcemapFlag !== false,\n esModule: !!esModuleFlag,\n interop: !!interopFlag,\n extend: !!extendFlag,\n equals: !!equalsFlag,\n };\n\n return { cwd, pkg: resolvedPkg, dependencies, input, output, minify, browser, options };\n\n};\n\nexport default analizePkg;\n","import {\n EventBuilding,\n EventBuilt,\n EventError,\n EventWriting,\n EventWritten,\n} from \"./types\";\n\nexport const BUILDING: EventBuilding = \"BUILDING\";\nexport const BUILT: EventBuilt = \"BUILT\";\n\nexport const WRITING: EventWriting = \"WRITING\";\nexport const WRITTEN: EventWritten = \"WRITTEN\";\n\nexport const ERROR: EventError = \"ERROR\";\n","import { ExternalOption, OutputOptions as RollupOutputOptions, Plugin, RollupOptions } from \"rollup\";\nimport {\n BrowserBuildFormat,\n BuildFormat,\n ConfigExtra,\n FilterablePlugins,\n ModuleBuildFormat,\n OutputExtra,\n} from \"./types\";\n\nexport function createOutput(\n format: BuildFormat,\n file: string,\n sourcemap: boolean,\n esModule: boolean,\n interop: boolean,\n extra?: OutputExtra,\n): RollupOutputOptions {\n\n const output: RollupOutputOptions = {\n\n file,\n format,\n\n sourcemap,\n esModule,\n interop,\n\n ...extra,\n\n };\n\n return output;\n\n}\n\nexport function createConfig(\n input: string,\n output: RollupOutputOptions,\n external: ExternalOption,\n plugins: FilterablePlugins,\n extra?: ConfigExtra,\n): RollupOptions {\n\n const config: RollupOptions = {\n\n input,\n output,\n external,\n\n plugins: plugins.filter<Plugin>(Boolean as any),\n\n ...extra,\n\n };\n\n return config;\n\n}\n\nexport function createModuleConfig(\n input: string,\n format: ModuleBuildFormat,\n file: string,\n sourcemap: boolean,\n esModule: boolean,\n interop: boolean,\n external: ExternalOption,\n plugins: FilterablePlugins,\n): RollupOptions {\n\n const output = createOutput(format, file, sourcemap, esModule, interop);\n\n return createConfig(\n input,\n output,\n external,\n plugins,\n );\n\n}\n\nexport function createBrowserConfig(\n input: string,\n format: BrowserBuildFormat,\n file: string,\n sourcemap: boolean,\n esModule: boolean,\n interop: boolean,\n plugins: Array<Plugin | null | false>,\n name: string,\n extend: boolean,\n globals?: Record<string, string>,\n id?: string | null,\n) {\n\n const output = createOutput(format, file, sourcemap, esModule, interop, {\n name,\n extend,\n globals,\n });\n\n if (id && (format === \"umd\" || format === \"amd\")) {\n output.amd = {\n id,\n };\n }\n\n const external = globals ? Object.keys(globals) : [];\n\n return createConfig(\n input,\n output,\n external,\n plugins,\n );\n\n}\n","import { join, parse } from \"path\";\n\nfunction renameMin(filename: string): string {\n const { dir, name, ext } = parse(filename);\n return join(dir, name + \".min\" + ext);\n}\n\nexport default renameMin;\n","import { dirname, extname, join as joinPath } from \"path\";\nimport { Plugin, RollupOptions } from \"rollup\";\n\nimport { createBrowserConfig, createModuleConfig } from \"./create-config\";\nimport { AnalizedPkg } from \"./pkg\";\nimport renameMin from \"./rename-min\";\nimport resolvePath from \"./resolve\";\n\nimport babel from \"rollup-plugin-babel\";\nimport buble from \"rollup-plugin-buble\";\nimport commonjs from \"rollup-plugin-commonjs\";\nimport exportEquals from \"rollup-plugin-export-equals\";\nimport json from \"rollup-plugin-json\";\nimport nodeResolve from \"rollup-plugin-node-resolve\";\nimport { terser } from \"rollup-plugin-terser\";\nimport ts2 from \"rollup-plugin-typescript2\";\n\nconst pkgToConfigs = (\n {\n cwd,\n input: apiInput,\n output,\n minify,\n dependencies,\n browser: browserOptions,\n options,\n }: AnalizedPkg,\n dev?: boolean,\n): RollupOptions[] => {\n\n const apiFolder = dirname(apiInput);\n\n const {\n main: cjsOutputFile,\n module: esOutputFile,\n browser: browserOutputFile,\n types: typesOutputFile,\n } = output;\n\n const {\n builtin: builtinDependencies,\n runtime: runtimeDependencies,\n peer: peerDependencies,\n } = dependencies;\n\n const {\n sourcemap,\n esModule,\n interop,\n extend,\n equals,\n } = options;\n\n const {\n format: browserFormat,\n name: pkgName,\n id,\n globals,\n } = browserOptions;\n\n const prod = !dev;\n\n const configs: RollupOptions[] = [];\n\n let typesOutputDir = typesOutputFile;\n if (typesOutputDir && extname(typesOutputDir) === \".ts\") {\n typesOutputDir = dirname(typesOutputDir);\n }\n\n const modulePlugins = (mini: boolean): Array<Plugin | null | false> => {\n\n const declarationDir = !configs.length && typesOutputDir;\n const srcFolderContent = resolvePath(\"**/*.ts\", apiFolder);\n\n return [\n\n ts2({\n include: srcFolderContent,\n cacheRoot: resolvePath(\".cache/rpt2\", cwd),\n useTsconfigDeclarationDir: true,\n tsconfigDefaults: {\n include: [\n srcFolderContent,\n ],\n exclude: [],\n },\n tsconfigOverride: {\n compilerOptions: {\n target: \"esnext\",\n module: \"esnext\",\n moduleResolution: \"node\",\n sourceMap: sourcemap,\n declaration: !!declarationDir,\n declarationDir: declarationDir || \"\",\n emitDeclarationOnly: false,\n },\n },\n }),\n\n json() as Plugin,\n\n declarationDir && equals && exportEquals({\n file: resolvePath(joinPath(declarationDir, \"index.d.ts\"), cwd),\n }) || null,\n\n babel({\n extensions: [\".ts\", \".js\"],\n exclude: /node_modules/,\n babelrc: false,\n plugins: [require.resolve(\"babel-plugin-transform-async-to-promises\")],\n }),\n\n buble({\n exclude: /node_modules/,\n target: {\n node: 0.12,\n },\n objectAssign: true,\n }) as Plugin,\n\n mini && terser({\n sourcemap,\n toplevel: true,\n module: true,\n }),\n\n ];\n\n };\n\n const browserPlugins = (mini: boolean) => [\n\n nodeResolve(),\n commonjs(),\n\n ...modulePlugins(mini),\n\n ];\n\n const external = [\n ...builtinDependencies,\n ...runtimeDependencies,\n ...peerDependencies,\n ];\n\n if (esOutputFile) {\n\n const config: RollupOptions = createModuleConfig(\n apiInput,\n \"es\",\n esOutputFile,\n sourcemap,\n true,\n false,\n external,\n modulePlugins(prod && !minify.module),\n );\n\n configs.push(config);\n\n if (minify.module) {\n\n const configMin: RollupOptions = createModuleConfig(\n apiInput,\n \"es\",\n renameMin(esOutputFile),\n sourcemap,\n true,\n false,\n external,\n modulePlugins(true),\n );\n\n configs.push(configMin);\n\n }\n\n }\n\n if (cjsOutputFile) {\n\n const config: RollupOptions = createModuleConfig(\n apiInput,\n \"cjs\",\n cjsOutputFile,\n sourcemap,\n esModule,\n interop,\n external,\n modulePlugins(prod && !minify.main),\n );\n\n configs.push(config);\n\n if (minify.main) {\n\n const configMin: RollupOptions = createModuleConfig(\n apiInput,\n \"cjs\",\n renameMin(cjsOutputFile),\n sourcemap,\n esModule,\n interop,\n external,\n modulePlugins(true),\n );\n\n configs.push(configMin);\n\n }\n\n }\n\n if (!pkgName && browserOutputFile) {\n throw new Error(\"name option is required for IIFE and UMD builds\");\n }\n\n if (browserOutputFile) {\n\n const config = createBrowserConfig(\n apiInput,\n browserFormat,\n browserOutputFile,\n sourcemap,\n esModule,\n interop,\n browserPlugins(prod && !minify.browser),\n pkgName as string,\n extend,\n globals || {},\n id,\n );\n\n configs.push(config);\n\n if (minify.browser) {\n\n const configMin = createBrowserConfig(\n apiInput,\n browserFormat,\n renameMin(browserOutputFile),\n sourcemap,\n esModule,\n interop,\n browserPlugins(true),\n pkgName as string,\n extend,\n globals || {},\n id,\n );\n\n configs.push(configMin);\n\n }\n\n }\n\n return configs;\n\n};\n\nexport default pkgToConfigs;\n","type OneByOneNext = (err?: Error) => Promise<any> | any;\ntype OneByOneCallback<T> = (item: T, next: OneByOneNext, index: number) => Promise<any> | any;\n\nfunction createNext<T>(arr: ArrayLike<T>, callback: OneByOneCallback<T>) {\n\n let index = 0;\n\n const next: OneByOneNext = async (err) => {\n\n if (!(index in arr)) {\n return;\n }\n\n const currentIndex = index++;\n const item = arr[currentIndex];\n\n callback(item, next, currentIndex);\n\n };\n\n return next;\n\n}\n\nfunction oneByOne<T>(arr: ArrayLike<T>, callback: OneByOneCallback<T>) {\n\n const next = createNext(arr, callback);\n next();\n\n}\n\nexport default oneByOne;\n","import { EventEmitter } from \"events\";\nimport { OutputOptions, rollup } from \"rollup\";\nimport { BUILDING, BUILT, WRITING, WRITTEN } from \"./events\";\nimport oneByOne from \"./one-by-one\";\nimport { BuildEventEmitter, BuldFunction } from \"./types\";\n\nconst build: BuldFunction = async (configs) => {\n\n const result: BuildEventEmitter = new EventEmitter();\n\n setImmediate(() => {\n\n result.emit(BUILDING);\n\n oneByOne(configs, async (config, next, index) => {\n\n const output = config.output as OutputOptions;\n const filename = output.file as string;\n\n result.emit(WRITING, filename);\n\n const buildResult = await rollup(config);\n await buildResult.write(output);\n\n result.emit(WRITTEN, filename);\n\n next();\n\n if (index + 1 >= configs.length) {\n result.emit(BUILT);\n }\n\n });\n\n });\n\n return result;\n\n};\n\nexport default build;\n","import { EventEmitter } from \"events\";\nimport { watch as rollupWatch } from \"rollup\";\nimport { BUILDING, BUILT, ERROR, WRITING, WRITTEN } from \"./events\";\nimport { BuildEventEmitter, BuldFunction } from \"./types\";\n\ninterface WatchEvent {\n output: any;\n error: any;\n}\n\ntype EmitMethod = (result: EventEmitter, event: WatchEvent) => void;\n\nconst ERR: EmitMethod = (result, { error }) => {\n result.emit(\n ERROR,\n error,\n );\n};\n\nconst map: Record<string, EmitMethod> = {\n\n START(result) {\n result.emit(BUILDING);\n },\n\n END(result) {\n result.emit(BUILT);\n },\n\n BUNDLE_START(result, { output }) {\n for (const filename of output) {\n result.emit(\n WRITING,\n filename,\n );\n }\n },\n\n BUNDLE_END(result, { output }) {\n for (const filename of output) {\n result.emit(\n WRITTEN,\n filename,\n );\n }\n },\n\n ERROR: ERR,\n FATAL: ERR,\n\n};\n\nconst watch: BuldFunction = (configs) => {\n\n const watcher = rollupWatch(configs);\n const result: BuildEventEmitter = new EventEmitter();\n\n watcher.on(\"event\", (event) => {\n\n const { code } = event;\n\n const emit: EmitMethod | undefined = map[code];\n if (emit) {\n emit(result, event);\n }\n\n });\n\n return result;\n\n};\n\nexport default watch;\n","import { RollupOptions } from \"rollup\";\n\nimport build from \"./build\";\nimport { BuildEventEmitterOrPromise } from \"./types\";\nimport watchBuild from \"./watch\";\n\nconst rollItUp = (configs: RollupOptions[], watch?: boolean): BuildEventEmitterOrPromise => {\n\n return watch\n ? watchBuild(configs)\n : build(configs);\n\n};\n\nexport default rollItUp;\n","import analizePkg from \"./analize-pkg\";\nimport { log, logFilename } from \"./console\";\nimport { BUILT, ERROR, WRITING, WRITTEN } from \"./events\";\nimport pkgToConfigs from \"./pkg-to-configs\";\nimport rollItUp from \"./roll-it-up\";\nimport { BundlibOptions } from \"./types\";\n\n// import { version } from \"../package.json\";\n// version has to be hardcoded due to issue #7\n// https://github.com/manferlo81/bundlib/issues/7\nconst version = 0.4;\n\nconst bundlib = async (cwd: string, { dev, watch, silent }: BundlibOptions = {}) => {\n\n if (!silent) {\n log(\"bundlib v%s\\r\\n\", version);\n log(\"> reading package.json...\");\n }\n\n const pkg = await analizePkg(cwd);\n\n const configs = pkgToConfigs(pkg, dev);\n\n const buildProcess = await rollItUp(\n configs,\n watch,\n );\n\n if (!silent) {\n\n buildProcess.on(WRITING, (filename) => {\n logFilename(filename, cwd, \"building > %s...\");\n });\n\n buildProcess.on(WRITTEN, (filename) => {\n logFilename(filename, cwd, \"built > %s\");\n });\n\n buildProcess.on(ERROR, (err) => {\n log(err);\n });\n\n if (watch) {\n\n buildProcess.on(BUILT, () => {\n log(\"> watching for changes...\");\n });\n\n }\n\n }\n\n return buildProcess;\n\n};\n\nexport default bundlib;\n"],"names":["const","resolvePath","filename","cwd","resolve","log","pattern","console","args","logFilename","relative","error","msg","TypeError","invalidPkgField","fieldName","invalidOption","optionName","isNull","value","isObject","isString","isBool","isArray","Array","isBrowserFormat","isValidMin","isValidMinOption","every","item","then","analizePkg","pkg","readPkg","resolvedPkg","cjsModuleFile","esModuleFile","browserFile","pkgTypes","typings","runtimeDependencies","peerDependencies","bundledDependencies","bundleDependencies","bundlibOptions","pkgInput","sourcemapFlag","esModuleFlag","interopFlag","extendFlag","equalsFlag","pkgBrowserFormat","browserName","amdId","browserGlobals","iife","amd","umd","min","deprecatedBrowserFormat","browserFormat","input","typesPath","output","main","module","browser","types","dependencies","builtin","builtinModules","runtime","Object","keys","peer","bundled","buildName","pkgName","minify","reduce","result","globals","format","name","id","options","sourcemap","esModule","interop","extend","equals","Promise","e","BUILDING","BUILT","WRITING","WRITTEN","ERROR","createOutput","file","extra","createConfig","external","plugins","config","filter","Boolean","createModuleConfig","createBrowserConfig","renameMin","parse","dir","ext","join","pkgToConfigs","dev","apiInput","browserOptions","apiFolder","dirname","esOutputFile","browserOutputFile","typesOutputFile","prod","configs","typesOutputDir","extname","modulePlugins","mini","declarationDir","length","srcFolderContent","ts2","include","cacheRoot","useTsconfigDeclarationDir","tsconfigDefaults","exclude","tsconfigOverride","compilerOptions","target","moduleResolution","sourceMap","declaration","emitDeclarationOnly","json","exportEquals","joinPath","babel","extensions","babelrc","require","buble","node","objectAssign","terser","toplevel","browserPlugins","nodeResolve","commonjs","push","configMin","cjsOutputFile","Error","createNext","arr","callback","index","next","err","currentIndex","oneByOne","build","EventEmitter","setImmediate","emit","rollup","buildResult","write","ERR","map","START","END","BUNDLE_START","BUNDLE_END","FATAL","watch","watcher","rollupWatch","on","event","code","rollItUp","watchBuild","version","bundlib","silent","buildProcess"],"mappings":"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"}
\No newline at end of file