@ms-cloudpack/bundler 0.27.7 → 0.27.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bundle.d.ts.map +1 -1
- package/lib/bundle.js +1 -0
- package/lib/bundle.js.map +1 -1
- package/lib/chooseBundler.d.ts +1 -0
- package/lib/chooseBundler.d.ts.map +1 -1
- package/lib/chooseBundler.js +4 -1
- package/lib/chooseBundler.js.map +1 -1
- package/package.json +1 -1
package/lib/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAQpC;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAQpC;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFlH;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAC1C,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,GAClG,OAAO,CAAC,YAAY,CAAC,CAgDvB"}
|
package/lib/bundle.js
CHANGED
|
@@ -78,6 +78,7 @@ export async function bundle(options, context) {
|
|
|
78
78
|
isTypescript,
|
|
79
79
|
targetEnvironment: options.targetEnvironment,
|
|
80
80
|
defaultBundler: context.config.defaultBundler,
|
|
81
|
+
hmr: options.hmr,
|
|
81
82
|
});
|
|
82
83
|
const bundleFunc = () => bundler.bundle(options, { ...context, moduleType, requiresTranspile: requiresTranspile(options) });
|
|
83
84
|
return bundleInternal(bundleFunc, {
|
package/lib/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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","sourcesContent":["import { chooseBundler } from './chooseBundler.js';\nimport type {\n BundleContext,\n BundleMessage,\n BundleOptions,\n Bundler,\n BundleResult,\n BundlerResult,\n CloudpackConfig,\n ModuleType,\n} from '@ms-cloudpack/common-types';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport path from 'path';\nimport { detectModuleType } from '@ms-cloudpack/package-utilities';\nimport { sourceRegex, typescriptRegex } from '@ms-cloudpack/path-utilities';\nimport { allBundlers } from './allBundlers.js';\nimport { requiresTranspile } from '@ms-cloudpack/bundler-utilities';\n\n/**\n * Abstracted consumer input to the bundle method for the appropriate bundler. Provides a more\n * advanced api surface.\n */\nexport async function bundle(options: BundleOptions, context: Pick<BundleContext, 'config'>): Promise<BundleResult> {\n const configErrors: BundleMessage[] = [];\n\n if (!options.inputPath?.length) {\n configErrors.push({\n text: 'No input path provided to bundle.',\n source: 'bundle',\n });\n } else if (!path.isAbsolute(options.inputPath)) {\n configErrors.push({\n text: 'Input path must be absolute.',\n source: 'bundle',\n });\n }\n\n if (!Object.keys(options.entries || {}).length) {\n configErrors.push({\n text: `No entries provided to bundle at inputPath \"${options.inputPath}\".`,\n source: 'bundle',\n });\n } else if (Object.entries(options.entries).some(([k, v]) => path.isAbsolute(k) || path.isAbsolute(v))) {\n configErrors.push({\n text: `Entry paths must be relative.`,\n source: 'bundle',\n });\n }\n\n if (options.bundlerOptions && !options.bundler) {\n configErrors.push({\n text: '`bundlerOptions` are bundler-specific, so a `bundler` must be specified.',\n source: 'bundle',\n });\n }\n\n if (options.targetEnvironment === 'node' && (options.bundler === 'ori' || options.bundler === 'rollup')) {\n configErrors.push({\n text: `The \"${options.bundler}\" bundler does not currently support \\`targetEnvironment: \"node\"\\` (use \"rspack\" or \"webpack\")`,\n source: 'bundle',\n });\n }\n\n if (options.bundler && !allBundlers[options.bundler]) {\n configErrors.push({\n text: `Unknown bundler \"${options.bundler}\".`,\n source: 'bundle',\n });\n }\n\n if (configErrors.length) {\n return { inputPath: options.inputPath, errors: configErrors };\n }\n\n // Choose the bundler type and bundle.\n let moduleType: ModuleType | undefined;\n let isTypescript = false;\n\n for (const fileName of Object.values(options.entries)) {\n isTypescript ||= typescriptRegex.test(fileName);\n\n // Check the module type of each entry, unless we've already found a cjs or amd file.\n if (!moduleType && sourceRegex.test(fileName)) {\n const sourceType = await detectModuleType(path.resolve(options.inputPath, fileName));\n if (sourceType === 'amd' || sourceType === 'cjs') {\n moduleType = sourceType;\n }\n }\n }\n\n // Default to esm if no cjs or amd files were found\n moduleType ??= 'esm';\n\n const bundler = await chooseBundler({\n bundler: options.bundler,\n mode: context.config.mode,\n moduleType,\n isTypescript,\n targetEnvironment: options.targetEnvironment,\n defaultBundler: context.config.defaultBundler,\n });\n const bundleFunc = () =>\n bundler.bundle(options, { ...context, moduleType, requiresTranspile: requiresTranspile(options) });\n return bundleInternal(bundleFunc, {\n ...options,\n name: bundler.name,\n version: bundler.version,\n logBundleInfo: context.config.logBundleInfo,\n });\n}\n\n/**\n * Wrapper for bundling and normalizing the result. This is separated to allow sharing the logic\n * between normal `bundle()` calls and `result.rebuild()` (if provided by the bundler plugin),\n * and helps with testing.\n */\nexport async function bundleInternal(\n pluginBundle: () => Promise<BundlerResult>,\n options: BundleOptions & Pick<Bundler, 'name' | 'version'> & Pick<CloudpackConfig, 'logBundleInfo'>,\n): Promise<BundleResult> {\n const bundler = options.name;\n const bundlerVersion = await options.version;\n let pluginResult: BundlerResult | undefined = undefined;\n\n try {\n pluginResult = await pluginBundle();\n } catch (e) {\n const errorMessage: BundleMessage = { text: `Exception while bundling: ${e}`, source: bundler };\n if (e instanceof Error && e.stack) {\n // remove the message from the stack\n errorMessage.notes = [{ text: e.stack.includes(e.message) ? e.stack.split(e.message)[1] : '' }];\n }\n pluginResult = {\n errors: [errorMessage],\n };\n }\n\n const { rawInput, rawOutput, rebuild, ...rest } = pluginResult || {};\n const { inputPath, entries, outputPath: logOutputPath = inputPath } = options;\n\n if (rest.errors?.length) {\n // If there are errors, always write them to a log file.\n await writeJson(path.join(logOutputPath, `${bundler}-errors.json`), rest.errors);\n }\n\n if (options.logBundleInfo) {\n // Only write the raw input and output to log files if requested.\n // (Raw output in particular can be very large, and it's only used for occasional debugging.)\n await Promise.all([\n rawInput && writeJson(path.join(logOutputPath, `${bundler}-input.json`), rawInput),\n rawOutput && writeJson(path.join(logOutputPath, `${bundler}-output.json`), rawOutput),\n ]);\n }\n\n const result: BundleResult = { bundler, bundlerVersion, inputPath, entries, ...rest };\n if (options.ignoredBundlerWarnings?.length && result.warnings?.length) {\n result.warnings = result.warnings.filter(\n (warning) => !options.ignoredBundlerWarnings?.some((suppressed) => warning.text.includes(suppressed)),\n );\n }\n\n if (rebuild) {\n // Wrap rebuild with proper result handling\n result.rebuild = () => bundleInternal(rebuild, options);\n }\n\n return result;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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","sourcesContent":["import { chooseBundler } from './chooseBundler.js';\nimport type {\n BundleContext,\n BundleMessage,\n BundleOptions,\n Bundler,\n BundleResult,\n BundlerResult,\n CloudpackConfig,\n ModuleType,\n} from '@ms-cloudpack/common-types';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport path from 'path';\nimport { detectModuleType } from '@ms-cloudpack/package-utilities';\nimport { sourceRegex, typescriptRegex } from '@ms-cloudpack/path-utilities';\nimport { allBundlers } from './allBundlers.js';\nimport { requiresTranspile } from '@ms-cloudpack/bundler-utilities';\n\n/**\n * Abstracted consumer input to the bundle method for the appropriate bundler. Provides a more\n * advanced api surface.\n */\nexport async function bundle(options: BundleOptions, context: Pick<BundleContext, 'config'>): Promise<BundleResult> {\n const configErrors: BundleMessage[] = [];\n\n if (!options.inputPath?.length) {\n configErrors.push({\n text: 'No input path provided to bundle.',\n source: 'bundle',\n });\n } else if (!path.isAbsolute(options.inputPath)) {\n configErrors.push({\n text: 'Input path must be absolute.',\n source: 'bundle',\n });\n }\n\n if (!Object.keys(options.entries || {}).length) {\n configErrors.push({\n text: `No entries provided to bundle at inputPath \"${options.inputPath}\".`,\n source: 'bundle',\n });\n } else if (Object.entries(options.entries).some(([k, v]) => path.isAbsolute(k) || path.isAbsolute(v))) {\n configErrors.push({\n text: `Entry paths must be relative.`,\n source: 'bundle',\n });\n }\n\n if (options.bundlerOptions && !options.bundler) {\n configErrors.push({\n text: '`bundlerOptions` are bundler-specific, so a `bundler` must be specified.',\n source: 'bundle',\n });\n }\n\n if (options.targetEnvironment === 'node' && (options.bundler === 'ori' || options.bundler === 'rollup')) {\n configErrors.push({\n text: `The \"${options.bundler}\" bundler does not currently support \\`targetEnvironment: \"node\"\\` (use \"rspack\" or \"webpack\")`,\n source: 'bundle',\n });\n }\n\n if (options.bundler && !allBundlers[options.bundler]) {\n configErrors.push({\n text: `Unknown bundler \"${options.bundler}\".`,\n source: 'bundle',\n });\n }\n\n if (configErrors.length) {\n return { inputPath: options.inputPath, errors: configErrors };\n }\n\n // Choose the bundler type and bundle.\n let moduleType: ModuleType | undefined;\n let isTypescript = false;\n\n for (const fileName of Object.values(options.entries)) {\n isTypescript ||= typescriptRegex.test(fileName);\n\n // Check the module type of each entry, unless we've already found a cjs or amd file.\n if (!moduleType && sourceRegex.test(fileName)) {\n const sourceType = await detectModuleType(path.resolve(options.inputPath, fileName));\n if (sourceType === 'amd' || sourceType === 'cjs') {\n moduleType = sourceType;\n }\n }\n }\n\n // Default to esm if no cjs or amd files were found\n moduleType ??= 'esm';\n\n const bundler = await chooseBundler({\n bundler: options.bundler,\n mode: context.config.mode,\n moduleType,\n isTypescript,\n targetEnvironment: options.targetEnvironment,\n defaultBundler: context.config.defaultBundler,\n hmr: options.hmr,\n });\n const bundleFunc = () =>\n bundler.bundle(options, { ...context, moduleType, requiresTranspile: requiresTranspile(options) });\n return bundleInternal(bundleFunc, {\n ...options,\n name: bundler.name,\n version: bundler.version,\n logBundleInfo: context.config.logBundleInfo,\n });\n}\n\n/**\n * Wrapper for bundling and normalizing the result. This is separated to allow sharing the logic\n * between normal `bundle()` calls and `result.rebuild()` (if provided by the bundler plugin),\n * and helps with testing.\n */\nexport async function bundleInternal(\n pluginBundle: () => Promise<BundlerResult>,\n options: BundleOptions & Pick<Bundler, 'name' | 'version'> & Pick<CloudpackConfig, 'logBundleInfo'>,\n): Promise<BundleResult> {\n const bundler = options.name;\n const bundlerVersion = await options.version;\n let pluginResult: BundlerResult | undefined = undefined;\n\n try {\n pluginResult = await pluginBundle();\n } catch (e) {\n const errorMessage: BundleMessage = { text: `Exception while bundling: ${e}`, source: bundler };\n if (e instanceof Error && e.stack) {\n // remove the message from the stack\n errorMessage.notes = [{ text: e.stack.includes(e.message) ? e.stack.split(e.message)[1] : '' }];\n }\n pluginResult = {\n errors: [errorMessage],\n };\n }\n\n const { rawInput, rawOutput, rebuild, ...rest } = pluginResult || {};\n const { inputPath, entries, outputPath: logOutputPath = inputPath } = options;\n\n if (rest.errors?.length) {\n // If there are errors, always write them to a log file.\n await writeJson(path.join(logOutputPath, `${bundler}-errors.json`), rest.errors);\n }\n\n if (options.logBundleInfo) {\n // Only write the raw input and output to log files if requested.\n // (Raw output in particular can be very large, and it's only used for occasional debugging.)\n await Promise.all([\n rawInput && writeJson(path.join(logOutputPath, `${bundler}-input.json`), rawInput),\n rawOutput && writeJson(path.join(logOutputPath, `${bundler}-output.json`), rawOutput),\n ]);\n }\n\n const result: BundleResult = { bundler, bundlerVersion, inputPath, entries, ...rest };\n if (options.ignoredBundlerWarnings?.length && result.warnings?.length) {\n result.warnings = result.warnings.filter(\n (warning) => !options.ignoredBundlerWarnings?.some((suppressed) => warning.text.includes(suppressed)),\n );\n }\n\n if (rebuild) {\n // Wrap rebuild with proper result handling\n result.rebuild = () => bundleInternal(rebuild, options);\n }\n\n return result;\n}\n"]}
|
package/lib/chooseBundler.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooseBundler.d.ts","sourceRoot":"","sources":["../src/chooseBundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGrG;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,IAAI,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"chooseBundler.d.ts","sourceRoot":"","sources":["../src/chooseBundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGrG;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1B,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BnB"}
|
package/lib/chooseBundler.js
CHANGED
|
@@ -4,7 +4,7 @@ import { allBundlers } from './allBundlers.js';
|
|
|
4
4
|
* @returns A bundler plugin.
|
|
5
5
|
*/
|
|
6
6
|
export async function chooseBundler(params) {
|
|
7
|
-
const { moduleType, isTypescript, mode, targetEnvironment, defaultBundler = 'ori' } = params;
|
|
7
|
+
const { moduleType, isTypescript, mode, targetEnvironment, defaultBundler = 'ori', hmr } = params;
|
|
8
8
|
let { bundler = 'auto' } = params;
|
|
9
9
|
if (bundler === 'auto') {
|
|
10
10
|
if (mode !== 'library' || moduleType === 'amd' || targetEnvironment === 'node') {
|
|
@@ -18,6 +18,9 @@ export async function chooseBundler(params) {
|
|
|
18
18
|
// (we can modify this in the future if there's an issue).
|
|
19
19
|
bundler = 'rollup';
|
|
20
20
|
}
|
|
21
|
+
else if (hmr) {
|
|
22
|
+
bundler = 'rspack';
|
|
23
|
+
}
|
|
21
24
|
else {
|
|
22
25
|
bundler = defaultBundler;
|
|
23
26
|
}
|
package/lib/chooseBundler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooseBundler.js","sourceRoot":"","sources":["../src/chooseBundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"chooseBundler.js","sourceRoot":"","sources":["../src/chooseBundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAUnC;IACC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAElG,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IAElC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YAC/E,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;aAAM,IAAI,UAAU,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACjD,+EAA+E;YAC/E,uFAAuF;YACvF,iFAAiF;YACjF,6FAA6F;YAC7F,0DAA0D;YAC1D,OAAO,GAAG,QAAQ,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,OAAO,GAAG,QAAQ,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,cAAc,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;AACtC,CAAC","sourcesContent":["import type { BundleMode, Bundler, ModuleType, TargetEnvironment } from '@ms-cloudpack/common-types';\nimport { allBundlers } from './allBundlers.js';\n\n/**\n * Determines which bundler plugin to use.\n * @returns A bundler plugin.\n */\nexport async function chooseBundler(params: {\n /** Bundler as specified in `BundleOptions` (if any) */\n bundler: string | undefined;\n /** Override for the default bundler from the app config */\n defaultBundler: string | undefined;\n moduleType: ModuleType;\n isTypescript: boolean;\n targetEnvironment: TargetEnvironment;\n mode: BundleMode;\n hmr: boolean | undefined;\n}): Promise<Bundler> {\n const { moduleType, isTypescript, mode, targetEnvironment, defaultBundler = 'ori', hmr } = params;\n\n let { bundler = 'auto' } = params;\n\n if (bundler === 'auto') {\n if (mode !== 'library' || moduleType === 'amd' || targetEnvironment === 'node') {\n bundler = 'webpack';\n } else if (moduleType === 'cjs' && !isTypescript) {\n // We can't use ori for CJS due to https://github.com/evanw/esbuild/issues/1148\n // (esbuild/ori is more pedantic on this point, whereas rollup/webpack/rspack will just\n // hoist the require to a top-level import even though it changes the semantics).\n // Ori is probably safe for .cts files, at least if they only use modern import/export syntax\n // (we can modify this in the future if there's an issue).\n bundler = 'rollup';\n } else if (hmr) {\n bundler = 'rspack';\n } else {\n bundler = defaultBundler;\n }\n }\n\n if (!allBundlers[bundler]) {\n throw new Error(`Bundler \"${bundler}\" not found.`);\n }\n\n return await allBundlers[bundler]();\n}\n"]}
|