UNPKG

18.3 kBSource Map (JSON)View Raw
1{"version":3,"file":"bundlib-cli.js","sources":["../src/cli/one-by-one.ts","../src/cli/build.ts","../src/cli/watch.ts","../src/cli/bundlib.ts","../src/cli/console.ts","../src/cli/action.ts","../src/cli/index.ts"],"sourcesContent":["type OneByOneNext = () => void;\r\ntype OneByOneCallback<T> = (item: T, next: OneByOneNext | null) => unknown;\r\n\r\nfunction oneByOne<T>(arr: ArrayLike<T>, callback: OneByOneCallback<T>): void {\r\n\r\n let index = 0\r\n const len = arr.length\r\n const last = len - 1\r\n\r\n const next: OneByOneNext = () => {\r\n\r\n if (index > last) {\r\n return\r\n }\r\n\r\n callback(\r\n arr[index],\r\n (index < last) ? next : null,\r\n )\r\n\r\n index++\r\n\r\n }\r\n\r\n next()\r\n\r\n}\r\n\r\nexport default oneByOne\r\n","import { statSync } from 'fs'\r\nimport { rollup, RollupCache } from 'rollup'\r\n\r\nimport { BundlibRollupModuleOutputOptions, BundlibRollupOptions } from '../api/types'\r\n\r\nimport oneByOne from './one-by-one'\r\nimport { BuildCallbackObject } from './types'\r\n\r\nfunction build(\r\n configs: Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>>,\r\n callbacks: BuildCallbackObject,\r\n): void {\r\n\r\n if (callbacks.start) {\r\n callbacks.start()\r\n }\r\n\r\n const cache: Partial<Record<string, RollupCache>> = {}\r\n\r\n oneByOne(configs, async (config, next) => {\r\n\r\n const { input, output } = config\r\n const { file: outputFile, format } = output\r\n\r\n const cacheKey = `${format}:${input}`\r\n config.cache = cache[cacheKey]\r\n\r\n if (callbacks.buildStart) {\r\n callbacks.buildStart(input, outputFile)\r\n }\r\n\r\n try {\r\n\r\n const currentTime = Date.now()\r\n\r\n const buildResult = await rollup(config)\r\n config.cache = cache[cacheKey] = buildResult.cache\r\n await buildResult.write(output)\r\n\r\n const { size } = statSync(outputFile)\r\n const totalTime = Date.now() - currentTime\r\n\r\n if (callbacks.buildEnd) {\r\n callbacks.buildEnd(\r\n outputFile,\r\n size,\r\n totalTime,\r\n )\r\n }\r\n\r\n } catch (err) {\r\n\r\n if (callbacks.error) {\r\n callbacks.error(err)\r\n }\r\n\r\n if (callbacks.end) {\r\n callbacks.end()\r\n }\r\n\r\n throw err\r\n\r\n }\r\n\r\n if (next) {\r\n return next()\r\n }\r\n\r\n if (callbacks.end) {\r\n callbacks.end()\r\n }\r\n\r\n })\r\n\r\n}\r\n\r\nexport default build\r\n","import { statSync } from 'fs'\r\nimport { RollupError, RollupOptions, RollupWatcherEvent, watch as rollupWatch } from 'rollup'\r\nimport { BuildCallbackObject } from './types'\r\n\r\nfunction watch(configs: RollupOptions[], callbacks: BuildCallbackObject): void {\r\n\r\n const { start, end, buildStart, buildEnd, error } = callbacks\r\n\r\n const ERROR = error && ((event: RollupWatcherEvent & { error: RollupError }) => {\r\n error(event.error)\r\n })\r\n\r\n const table: Record<string, ((event: RollupWatcherEvent) => void) | null | undefined> = {\r\n\r\n START: start && (() => {\r\n start()\r\n }),\r\n\r\n END: end && (() => {\r\n end()\r\n }),\r\n\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\r\n // @ts-ignore\r\n BUNDLE_START: buildStart && ((event: RollupWatcherEvent & { output: string; input: string }) => {\r\n const { output: out } = event\r\n const { length: len } = out\r\n for (let i = 0; i < len; i++) {\r\n buildStart(event.input, out[i])\r\n }\r\n }),\r\n\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\r\n // @ts-ignore\r\n BUNDLE_END: buildEnd && ((event: RollupWatcherEvent & { output: string; duration: number }) => {\r\n const { output: out } = event\r\n const { length: len } = out\r\n for (let i = 0; i < len; i++) {\r\n const stats = statSync(out[i])\r\n buildEnd(\r\n out[i],\r\n stats.size,\r\n event.duration || 0,\r\n )\r\n }\r\n }),\r\n\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\r\n // @ts-ignore\r\n ERROR,\r\n\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\r\n // @ts-ignore\r\n FATAL: ERROR,\r\n\r\n }\r\n\r\n const watcher = rollupWatch(configs)\r\n\r\n watcher.on('event', (event) => {\r\n\r\n const { code } = event\r\n const handle = table[code]\r\n\r\n if (handle) {\r\n handle(event)\r\n }\r\n\r\n })\r\n\r\n}\r\n\r\nexport default watch\r\n","import { BundlibPkgJson, configsFromPkg } from '../api'\r\n\r\nimport { RollupWarning } from 'rollup'\r\nimport build from './build'\r\nimport { BuildCallbackObject, BundlibOptions } from './types'\r\nimport watch from './watch'\r\n\r\nasync function bundlib(\r\n cwd: string,\r\n options: BundlibOptions,\r\n callbacks: BuildCallbackObject,\r\n pkg?: BundlibPkgJson,\r\n): Promise<void> {\r\n\r\n const configs = await configsFromPkg(cwd, options, pkg)\r\n\r\n const { warn } = callbacks\r\n\r\n const onwarn = warn ? (warning: string | RollupWarning) => warn(warning) : (() => null)\r\n\r\n configs.forEach((config) => {\r\n config.onwarn = onwarn\r\n });\r\n\r\n (options.watch ? watch : build)(\r\n configs,\r\n callbacks,\r\n )\r\n\r\n}\r\n\r\nexport default bundlib\r\n","import chalk from 'chalk'\r\nimport { RollupError } from 'rollup'\r\n\r\nfunction create(name: Extract<keyof typeof console, 'log' | 'error'>) {\r\n const method = console[name]\r\n return (msg: string) => (\r\n method(chalk.cyan(msg))\r\n )\r\n}\r\n\r\nexport const log = create('log')\r\nexport const error = create('error')\r\n\r\nexport function logError(err: Error | RollupError) {\r\n if (err.stack) {\r\n error(err.stack)\r\n }\r\n const tag = chalk.bold.bgWhite.red.inverse(' error ')\r\n error(`${tag} ${err.message || err}`)\r\n}\r\n","import chalk from 'chalk'\r\nimport fileSize from 'filesize'\r\nimport { relative } from 'path'\r\nimport prettyMs from 'pretty-ms'\r\nimport readPkg from 'read-pkg'\r\nimport { RollupError } from 'rollup'\r\nimport slash from 'slash'\r\nimport { BundlibPkgJson } from '../api'\r\nimport bundlib from './bundlib'\r\nimport { log, logError } from './console'\r\nimport { BuildCallbackObject, BundlibOptions } from './types'\r\n\r\nconst { bold } = chalk\r\nconst green = bold.green\r\nconst yellow = bold.yellow\r\nconst magenta = bold.magenta\r\n\r\nfunction prjInfo(name: string, ver: string) {\r\n const projName = green(name)\r\n const projVer = yellow(`v${ver}`)\r\n return `${projName} ${projVer}`\r\n}\r\n\r\n// ENABLE COLORS ON GIT BASH FOR WINDOWS\r\nif (!chalk.level && 'MINGW_CHOST' in process.env) {\r\n chalk.level = 1\r\n}\r\n\r\nexport async function action(displayName: string, version: string, silent: boolean, options: BundlibOptions) {\r\n\r\n const cwd = process.cwd()\r\n\r\n let pkg: BundlibPkgJson | undefined\r\n\r\n if (!silent) {\r\n\r\n const appInfo = prjInfo(displayName, version)\r\n log(`${appInfo}\r\n`)\r\n\r\n const filename = yellow('package.json')\r\n log(`reading: ${filename}`)\r\n\r\n pkg = await readPkg({\r\n cwd,\r\n normalize: false,\r\n })\r\n\r\n const { name: prjName, displayName: prjDispName, version: prjVer } = pkg\r\n const prjInfoName = prjDispName as (string | undefined) || prjName\r\n\r\n if (prjInfoName && prjVer) {\r\n\r\n const info = prjInfo(prjInfoName, prjVer)\r\n log(`building: ${info}\r\n`)\r\n\r\n }\r\n\r\n }\r\n\r\n let buildIndex = 0\r\n\r\n const error = options.watch ? logError : (err: RollupError) => {\r\n logError(err)\r\n process.exit(1)\r\n }\r\n\r\n const callbacks: BuildCallbackObject = { error }\r\n\r\n if (!silent) {\r\n\r\n Object.assign(callbacks, {\r\n\r\n buildEnd(filename, size, duration) {\r\n const tag = green.bgBlack.inverse(' built ')\r\n const path = yellow(slash(relative(cwd, filename)))\r\n const colorSize = magenta(fileSize(size))\r\n const colorTime = magenta(prettyMs(duration, { secondsDecimalDigits: 2 }))\r\n log(`${tag} ${path} ( ${colorSize} in ${colorTime} )`)\r\n },\r\n\r\n warn(warning) {\r\n\r\n let message = warning\r\n\r\n if (typeof message === 'object') {\r\n\r\n const { plugin, message: msg } = message\r\n\r\n message = msg\r\n\r\n if (plugin) {\r\n message = `(plugin ${magenta(plugin)}) ${message}`\r\n }\r\n\r\n }\r\n\r\n const tag = magenta('warning:')\r\n\r\n log(`${tag} ${message}`)\r\n\r\n },\r\n\r\n } as BuildCallbackObject)\r\n\r\n if (options.watch) {\r\n\r\n Object.assign(callbacks, {\r\n\r\n start() {\r\n if (buildIndex) {\r\n log(`rebuilding...\r\n`)\r\n }\r\n buildIndex++\r\n },\r\n\r\n end() {\r\n log(`\r\nwaiting for changes...`)\r\n },\r\n\r\n } as BuildCallbackObject)\r\n\r\n }\r\n\r\n }\r\n\r\n try {\r\n await bundlib(cwd, options, callbacks, pkg)\r\n } catch (err) {\r\n logError(err)\r\n process.exit(1)\r\n }\r\n\r\n}\r\n","#!/usr/bin/env node\r\n\r\nimport program from 'commander'\r\nimport { name, displayName, version } from '../../package.json'\r\n\r\nimport { action } from './action'\r\n\r\nprogram\r\n .version(version, '-v, --version')\r\n .name(name)\r\n .option('-d, --dev', 'create development builds')\r\n .option('-w, --watch', 'run bundlib in watch mode')\r\n .option('-s, --silent', 'prevent messages from showing in the console')\r\n .action(async () => {\r\n const { dev, watch, silent } = program\r\n await action(displayName, version, silent, {\r\n dev,\r\n watch,\r\n })\r\n })\r\n .parseAsync(process.argv)\r\n"],"names":["oneByOne","arr","callback","index","len","length","last","next","build","configs","callbacks","start","cache","config","input","output","file","outputFile","format","cacheKey","buildStart","currentTime","Date","now","buildResult","rollup","write","size","statSync","totalTime","buildEnd","err","error","end","watch","ERROR","event","table","START","END","BUNDLE_START","out","i","BUNDLE_END","stats","duration","FATAL","watcher","rollupWatch","on","code","handle","bundlib","cwd","options","pkg","configsFromPkg","warn","onwarn","warning","forEach","create","name","method","console","msg","chalk","cyan","log","logError","stack","tag","bold","bgWhite","red","inverse","message","green","yellow","magenta","prjInfo","ver","projName","projVer","level","process","env","action","displayName","version","silent","appInfo","filename","readPkg","normalize","prjName","prjDispName","prjVer","prjInfoName","info","buildIndex","exit","Object","assign","bgBlack","path","slash","relative","colorSize","fileSize","colorTime","prettyMs","secondsDecimalDigits","plugin","program","option","dev","parseAsync","argv"],"mappings":"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"}
\No newline at end of file