@walkeros/cli 0.7.0-next.0 → 0.8.0
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/README.md +123 -37
- package/dist/examples/flow-order-complete.json +0 -1
- package/dist/examples/flow-simple.json +0 -3
- package/dist/examples/flow.json +0 -1
- package/dist/index.d.ts +23 -13
- package/dist/index.js +882 -846
- package/dist/index.js.map +1 -1
- package/dist/runtime/main.d.ts +2 -0
- package/dist/runtime/main.js +271 -0
- package/dist/runtime/main.js.map +1 -0
- package/dist/walker.js +1 -1
- package/examples/flow-order-complete.json +0 -1
- package/examples/flow-simple.json +0 -3
- package/examples/flow.json +0 -1
- package/package.json +10 -7
- package/CHANGELOG.md +0 -159
- package/dist/__tests__/bundle/bundler-helpers.test.d.ts +0 -2
- package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/bundler-helpers.test.js +0 -151
- package/dist/__tests__/bundle/bundler-helpers.test.js.map +0 -1
- package/dist/__tests__/bundle/bundler.test.d.ts +0 -2
- package/dist/__tests__/bundle/bundler.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/bundler.test.js +0 -353
- package/dist/__tests__/bundle/bundler.test.js.map +0 -1
- package/dist/__tests__/bundle/programmatic.test.d.ts +0 -2
- package/dist/__tests__/bundle/programmatic.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/programmatic.test.js +0 -148
- package/dist/__tests__/bundle/programmatic.test.js.map +0 -1
- package/dist/__tests__/cli-e2e.test.d.ts +0 -8
- package/dist/__tests__/cli-e2e.test.d.ts.map +0 -1
- package/dist/__tests__/cli-e2e.test.js +0 -130
- package/dist/__tests__/cli-e2e.test.js.map +0 -1
- package/dist/__tests__/cli.test.d.ts +0 -2
- package/dist/__tests__/cli.test.d.ts.map +0 -1
- package/dist/__tests__/cli.test.js +0 -180
- package/dist/__tests__/cli.test.js.map +0 -1
- package/dist/__tests__/config-loader.test.d.ts +0 -7
- package/dist/__tests__/config-loader.test.d.ts.map +0 -1
- package/dist/__tests__/config-loader.test.js +0 -414
- package/dist/__tests__/config-loader.test.js.map +0 -1
- package/dist/__tests__/core/asset-resolver.test.d.ts +0 -2
- package/dist/__tests__/core/asset-resolver.test.d.ts.map +0 -1
- package/dist/__tests__/core/asset-resolver.test.js +0 -14
- package/dist/__tests__/core/asset-resolver.test.js.map +0 -1
- package/dist/__tests__/core/build-cache.test.d.ts +0 -2
- package/dist/__tests__/core/build-cache.test.d.ts.map +0 -1
- package/dist/__tests__/core/build-cache.test.js +0 -55
- package/dist/__tests__/core/build-cache.test.js.map +0 -1
- package/dist/__tests__/core/cache-utils.test.d.ts +0 -2
- package/dist/__tests__/core/cache-utils.test.d.ts.map +0 -1
- package/dist/__tests__/core/cache-utils.test.js +0 -70
- package/dist/__tests__/core/cache-utils.test.js.map +0 -1
- package/dist/__tests__/core/config.test.d.ts +0 -2
- package/dist/__tests__/core/config.test.d.ts.map +0 -1
- package/dist/__tests__/core/config.test.js +0 -72
- package/dist/__tests__/core/config.test.js.map +0 -1
- package/dist/__tests__/core/docker-url.test.d.ts +0 -2
- package/dist/__tests__/core/docker-url.test.d.ts.map +0 -1
- package/dist/__tests__/core/docker-url.test.js +0 -54
- package/dist/__tests__/core/docker-url.test.js.map +0 -1
- package/dist/__tests__/core/logger.test.d.ts +0 -2
- package/dist/__tests__/core/logger.test.d.ts.map +0 -1
- package/dist/__tests__/core/logger.test.js +0 -53
- package/dist/__tests__/core/logger.test.js.map +0 -1
- package/dist/__tests__/integration/bundle-run.integration.test.d.ts +0 -8
- package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +0 -1
- package/dist/__tests__/integration/bundle-run.integration.test.js +0 -54
- package/dist/__tests__/integration/bundle-run.integration.test.js.map +0 -1
- package/dist/__tests__/push/push.test.d.ts +0 -7
- package/dist/__tests__/push/push.test.d.ts.map +0 -1
- package/dist/__tests__/push/push.test.js +0 -197
- package/dist/__tests__/push/push.test.js.map +0 -1
- package/dist/__tests__/simulate/env-loader.test.d.ts +0 -2
- package/dist/__tests__/simulate/env-loader.test.d.ts.map +0 -1
- package/dist/__tests__/simulate/env-loader.test.js +0 -47
- package/dist/__tests__/simulate/env-loader.test.js.map +0 -1
- package/dist/__tests__/simulate/node-executor.test.d.ts +0 -5
- package/dist/__tests__/simulate/node-executor.test.d.ts.map +0 -1
- package/dist/__tests__/simulate/node-executor.test.js +0 -25
- package/dist/__tests__/simulate/node-executor.test.js.map +0 -1
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +0 -5
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +0 -1
- package/dist/__tests__/simulate/server-simulate.integration.test.js +0 -58
- package/dist/__tests__/simulate/server-simulate.integration.test.js.map +0 -1
- package/dist/__tests__/smoke/production.smoke.test.d.ts +0 -8
- package/dist/__tests__/smoke/production.smoke.test.d.ts.map +0 -1
- package/dist/__tests__/smoke/production.smoke.test.js +0 -65
- package/dist/__tests__/smoke/production.smoke.test.js.map +0 -1
- package/dist/commands/bundle/bundler.d.ts +0 -32
- package/dist/commands/bundle/bundler.d.ts.map +0 -1
- package/dist/commands/bundle/bundler.js +0 -583
- package/dist/commands/bundle/bundler.js.map +0 -1
- package/dist/commands/bundle/index.d.ts +0 -57
- package/dist/commands/bundle/index.d.ts.map +0 -1
- package/dist/commands/bundle/index.js +0 -200
- package/dist/commands/bundle/index.js.map +0 -1
- package/dist/commands/bundle/package-manager.d.ts +0 -8
- package/dist/commands/bundle/package-manager.d.ts.map +0 -1
- package/dist/commands/bundle/package-manager.js +0 -197
- package/dist/commands/bundle/package-manager.js.map +0 -1
- package/dist/commands/bundle/stats.d.ts +0 -23
- package/dist/commands/bundle/stats.d.ts.map +0 -1
- package/dist/commands/bundle/stats.js +0 -52
- package/dist/commands/bundle/stats.js.map +0 -1
- package/dist/commands/cache.d.ts +0 -3
- package/dist/commands/cache.d.ts.map +0 -1
- package/dist/commands/cache.js +0 -44
- package/dist/commands/cache.js.map +0 -1
- package/dist/commands/push/index.d.ts +0 -7
- package/dist/commands/push/index.d.ts.map +0 -1
- package/dist/commands/push/index.js +0 -257
- package/dist/commands/push/index.js.map +0 -1
- package/dist/commands/push/types.d.ts +0 -21
- package/dist/commands/push/types.d.ts.map +0 -1
- package/dist/commands/push/types.js +0 -2
- package/dist/commands/push/types.js.map +0 -1
- package/dist/commands/run/__tests__/run.integration.test.d.ts +0 -8
- package/dist/commands/run/__tests__/run.integration.test.d.ts.map +0 -1
- package/dist/commands/run/__tests__/run.integration.test.js +0 -52
- package/dist/commands/run/__tests__/run.integration.test.js.map +0 -1
- package/dist/commands/run/__tests__/validators.test.d.ts +0 -2
- package/dist/commands/run/__tests__/validators.test.d.ts.map +0 -1
- package/dist/commands/run/__tests__/validators.test.js +0 -80
- package/dist/commands/run/__tests__/validators.test.js.map +0 -1
- package/dist/commands/run/execution.d.ts +0 -14
- package/dist/commands/run/execution.d.ts.map +0 -1
- package/dist/commands/run/execution.js +0 -41
- package/dist/commands/run/execution.js.map +0 -1
- package/dist/commands/run/index.d.ts +0 -39
- package/dist/commands/run/index.d.ts.map +0 -1
- package/dist/commands/run/index.js +0 -191
- package/dist/commands/run/index.js.map +0 -1
- package/dist/commands/run/types.d.ts +0 -60
- package/dist/commands/run/types.d.ts.map +0 -1
- package/dist/commands/run/types.js +0 -7
- package/dist/commands/run/types.js.map +0 -1
- package/dist/commands/run/utils.d.ts +0 -29
- package/dist/commands/run/utils.d.ts.map +0 -1
- package/dist/commands/run/utils.js +0 -52
- package/dist/commands/run/utils.js.map +0 -1
- package/dist/commands/run/validators.d.ts +0 -33
- package/dist/commands/run/validators.d.ts.map +0 -1
- package/dist/commands/run/validators.js +0 -58
- package/dist/commands/run/validators.js.map +0 -1
- package/dist/commands/simulate/env-loader.d.ts +0 -19
- package/dist/commands/simulate/env-loader.d.ts.map +0 -1
- package/dist/commands/simulate/env-loader.js +0 -46
- package/dist/commands/simulate/env-loader.js.map +0 -1
- package/dist/commands/simulate/index.d.ts +0 -48
- package/dist/commands/simulate/index.d.ts.map +0 -1
- package/dist/commands/simulate/index.js +0 -116
- package/dist/commands/simulate/index.js.map +0 -1
- package/dist/commands/simulate/jsdom-executor.d.ts +0 -37
- package/dist/commands/simulate/jsdom-executor.d.ts.map +0 -1
- package/dist/commands/simulate/jsdom-executor.js +0 -137
- package/dist/commands/simulate/jsdom-executor.js.map +0 -1
- package/dist/commands/simulate/node-executor.d.ts +0 -28
- package/dist/commands/simulate/node-executor.d.ts.map +0 -1
- package/dist/commands/simulate/node-executor.js +0 -94
- package/dist/commands/simulate/node-executor.js.map +0 -1
- package/dist/commands/simulate/simulator.d.ts +0 -14
- package/dist/commands/simulate/simulator.d.ts.map +0 -1
- package/dist/commands/simulate/simulator.js +0 -162
- package/dist/commands/simulate/simulator.js.map +0 -1
- package/dist/commands/simulate/tracker.d.ts +0 -30
- package/dist/commands/simulate/tracker.d.ts.map +0 -1
- package/dist/commands/simulate/tracker.js +0 -96
- package/dist/commands/simulate/tracker.js.map +0 -1
- package/dist/commands/simulate/types.d.ts +0 -18
- package/dist/commands/simulate/types.d.ts.map +0 -1
- package/dist/commands/simulate/types.js +0 -2
- package/dist/commands/simulate/types.js.map +0 -1
- package/dist/config/build-defaults.d.ts +0 -49
- package/dist/config/build-defaults.d.ts.map +0 -1
- package/dist/config/build-defaults.js +0 -70
- package/dist/config/build-defaults.js.map +0 -1
- package/dist/config/index.d.ts +0 -13
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -15
- package/dist/config/index.js.map +0 -1
- package/dist/config/loader.d.ts +0 -81
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -155
- package/dist/config/loader.js.map +0 -1
- package/dist/config/utils.d.ts +0 -114
- package/dist/config/utils.d.ts.map +0 -1
- package/dist/config/utils.js +0 -257
- package/dist/config/utils.js.map +0 -1
- package/dist/config/validators.d.ts +0 -52
- package/dist/config/validators.d.ts.map +0 -1
- package/dist/config/validators.js +0 -85
- package/dist/config/validators.js.map +0 -1
- package/dist/core/asset-resolver.d.ts +0 -34
- package/dist/core/asset-resolver.d.ts.map +0 -1
- package/dist/core/asset-resolver.js +0 -70
- package/dist/core/asset-resolver.js.map +0 -1
- package/dist/core/build-cache.d.ts +0 -23
- package/dist/core/build-cache.d.ts.map +0 -1
- package/dist/core/build-cache.js +0 -43
- package/dist/core/build-cache.js.map +0 -1
- package/dist/core/cache-utils.d.ts +0 -27
- package/dist/core/cache-utils.d.ts.map +0 -1
- package/dist/core/cache-utils.js +0 -60
- package/dist/core/cache-utils.js.map +0 -1
- package/dist/core/docker.d.ts +0 -102
- package/dist/core/docker.d.ts.map +0 -1
- package/dist/core/docker.js +0 -278
- package/dist/core/docker.js.map +0 -1
- package/dist/core/execution.d.ts +0 -34
- package/dist/core/execution.d.ts.map +0 -1
- package/dist/core/execution.js +0 -64
- package/dist/core/execution.js.map +0 -1
- package/dist/core/index.d.ts +0 -10
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -10
- package/dist/core/index.js.map +0 -1
- package/dist/core/local-packages.d.ts +0 -19
- package/dist/core/local-packages.d.ts.map +0 -1
- package/dist/core/local-packages.js +0 -60
- package/dist/core/local-packages.js.map +0 -1
- package/dist/core/logger.d.ts +0 -28
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js +0 -88
- package/dist/core/logger.js.map +0 -1
- package/dist/core/output.d.ts +0 -30
- package/dist/core/output.d.ts.map +0 -1
- package/dist/core/output.js +0 -46
- package/dist/core/output.js.map +0 -1
- package/dist/core/temp-manager.d.ts +0 -51
- package/dist/core/temp-manager.d.ts.map +0 -1
- package/dist/core/temp-manager.js +0 -73
- package/dist/core/temp-manager.js.map +0 -1
- package/dist/core/timer.d.ts +0 -14
- package/dist/core/timer.d.ts.map +0 -1
- package/dist/core/timer.js +0 -29
- package/dist/core/timer.js.map +0 -1
- package/dist/core/utils.d.ts +0 -10
- package/dist/core/utils.d.ts.map +0 -1
- package/dist/core/utils.js +0 -12
- package/dist/core/utils.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/schemas/index.d.ts +0 -9
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -9
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/primitives.d.ts +0 -37
- package/dist/schemas/primitives.d.ts.map +0 -1
- package/dist/schemas/primitives.js +0 -43
- package/dist/schemas/primitives.js.map +0 -1
- package/dist/schemas/run.d.ts +0 -23
- package/dist/schemas/run.d.ts.map +0 -1
- package/dist/schemas/run.js +0 -20
- package/dist/schemas/run.js.map +0 -1
- package/dist/types/bundle.d.ts +0 -141
- package/dist/types/bundle.d.ts.map +0 -1
- package/dist/types/bundle.js +0 -10
- package/dist/types/bundle.js.map +0 -1
- package/dist/types/global.d.ts +0 -51
- package/dist/types/global.d.ts.map +0 -1
- package/dist/types/global.js +0 -30
- package/dist/types/global.js.map +0 -1
- package/dist/types/index.d.ts +0 -8
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/version.d.ts +0 -3
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -27
- package/dist/version.js.map +0 -1
|
@@ -1,583 +0,0 @@
|
|
|
1
|
-
import esbuild from 'esbuild';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import fs from 'fs-extra';
|
|
4
|
-
import { packageNameToVariable } from '@walkeros/core';
|
|
5
|
-
import { downloadPackages } from './package-manager.js';
|
|
6
|
-
import { getTempDir } from '../../config/index.js';
|
|
7
|
-
import { isBuildCached, getCachedBuild, cacheBuild, } from '../../core/build-cache.js';
|
|
8
|
-
/**
|
|
9
|
-
* Copy included folders to output directory.
|
|
10
|
-
* Used to make credential files and other assets available alongside the bundle.
|
|
11
|
-
*/
|
|
12
|
-
async function copyIncludes(includes, sourceDir, outputDir, logger) {
|
|
13
|
-
for (const include of includes) {
|
|
14
|
-
const sourcePath = path.resolve(sourceDir, include);
|
|
15
|
-
const folderName = path.basename(include);
|
|
16
|
-
const destPath = path.join(outputDir, folderName);
|
|
17
|
-
if (await fs.pathExists(sourcePath)) {
|
|
18
|
-
await fs.copy(sourcePath, destPath);
|
|
19
|
-
logger.debug(`Copied ${include} to output`);
|
|
20
|
-
// TODO: Add logging for copied folders
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
logger.debug(`Include folder not found: ${include}`);
|
|
24
|
-
// TODO: Add logging for skipped folders (not found)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Generate cache key content from flow config and build options.
|
|
30
|
-
* Excludes non-deterministic fields (tempDir, output) from cache key.
|
|
31
|
-
*/
|
|
32
|
-
function generateCacheKeyContent(flowConfig, buildOptions) {
|
|
33
|
-
const configForCache = {
|
|
34
|
-
flow: flowConfig,
|
|
35
|
-
build: {
|
|
36
|
-
...buildOptions,
|
|
37
|
-
// Exclude non-deterministic fields from cache key
|
|
38
|
-
tempDir: undefined,
|
|
39
|
-
output: undefined,
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
return JSON.stringify(configForCache);
|
|
43
|
-
}
|
|
44
|
-
export async function bundleCore(flowConfig, buildOptions, logger, showStats = false) {
|
|
45
|
-
const bundleStartTime = Date.now();
|
|
46
|
-
// Only generate a new temp dir if one isn't explicitly provided
|
|
47
|
-
// This allows simulator to share its temp dir with the bundler
|
|
48
|
-
// Ensure TEMP_DIR is always absolute (esbuild requirement)
|
|
49
|
-
const TEMP_DIR = buildOptions.tempDir
|
|
50
|
-
? path.isAbsolute(buildOptions.tempDir)
|
|
51
|
-
? buildOptions.tempDir
|
|
52
|
-
: path.resolve(buildOptions.tempDir)
|
|
53
|
-
: getTempDir();
|
|
54
|
-
// Check build cache if caching is enabled
|
|
55
|
-
if (buildOptions.cache !== false) {
|
|
56
|
-
const configContent = generateCacheKeyContent(flowConfig, buildOptions);
|
|
57
|
-
const cached = await isBuildCached(configContent);
|
|
58
|
-
if (cached) {
|
|
59
|
-
const cachedBuild = await getCachedBuild(configContent);
|
|
60
|
-
if (cachedBuild) {
|
|
61
|
-
logger.info('✨ Using cached build');
|
|
62
|
-
// Write cached build to output
|
|
63
|
-
const outputPath = path.resolve(buildOptions.output);
|
|
64
|
-
await fs.ensureDir(path.dirname(outputPath));
|
|
65
|
-
await fs.writeFile(outputPath, cachedBuild);
|
|
66
|
-
logger.gray(`Output: ${outputPath}`);
|
|
67
|
-
logger.success('✅ Build completed (from cache)');
|
|
68
|
-
// Return stats if requested
|
|
69
|
-
if (showStats) {
|
|
70
|
-
const stats = await fs.stat(outputPath);
|
|
71
|
-
// Generate basic package stats from buildOptions
|
|
72
|
-
const packageStats = Object.entries(buildOptions.packages).map(([name, pkg]) => ({
|
|
73
|
-
name: `${name}@${pkg.version || 'latest'}`,
|
|
74
|
-
size: 0, // Size estimation not available for cached builds
|
|
75
|
-
}));
|
|
76
|
-
return {
|
|
77
|
-
totalSize: stats.size,
|
|
78
|
-
packages: packageStats,
|
|
79
|
-
buildTime: Date.now() - bundleStartTime,
|
|
80
|
-
treeshakingEffective: true,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
// Step 1: Prepare temporary directory
|
|
89
|
-
// Only clean if we created a new temp dir (don't clean shared simulator temp)
|
|
90
|
-
if (!buildOptions.tempDir) {
|
|
91
|
-
await fs.emptyDir(TEMP_DIR);
|
|
92
|
-
}
|
|
93
|
-
logger.debug('Cleaned temporary directory');
|
|
94
|
-
// Step 2: Download packages
|
|
95
|
-
logger.info('📥 Downloading packages...');
|
|
96
|
-
// Convert packages object to array format expected by downloadPackages
|
|
97
|
-
const packagesArray = Object.entries(buildOptions.packages).map(([name, packageConfig]) => ({
|
|
98
|
-
name,
|
|
99
|
-
version: packageConfig.version || 'latest',
|
|
100
|
-
path: packageConfig.path, // Pass local path if defined
|
|
101
|
-
}));
|
|
102
|
-
// downloadPackages adds 'node_modules' subdirectory automatically
|
|
103
|
-
const packagePaths = await downloadPackages(packagesArray, TEMP_DIR, logger, buildOptions.cache, buildOptions.configDir);
|
|
104
|
-
// Fix @walkeros packages to have proper ESM exports
|
|
105
|
-
// This ensures Node resolves to .mjs files instead of .js (CJS)
|
|
106
|
-
for (const [pkgName, pkgPath] of packagePaths.entries()) {
|
|
107
|
-
if (pkgName.startsWith('@walkeros/')) {
|
|
108
|
-
const pkgJsonPath = path.join(pkgPath, 'package.json');
|
|
109
|
-
const pkgJson = await fs.readJSON(pkgJsonPath);
|
|
110
|
-
// Add exports field to force ESM resolution
|
|
111
|
-
if (!pkgJson.exports && pkgJson.module) {
|
|
112
|
-
pkgJson.exports = {
|
|
113
|
-
'.': {
|
|
114
|
-
import: pkgJson.module,
|
|
115
|
-
require: pkgJson.main,
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
await fs.writeJSON(pkgJsonPath, pkgJson, { spaces: 2 });
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
// Step 3: Create package.json to enable ESM in temp directory
|
|
123
|
-
// This ensures Node treats all .js files as ESM and resolves @walkeros packages correctly
|
|
124
|
-
const packageJsonPath = path.join(TEMP_DIR, 'package.json');
|
|
125
|
-
await fs.writeFile(packageJsonPath, JSON.stringify({ type: 'module' }, null, 2));
|
|
126
|
-
// Step 4: Create entry point
|
|
127
|
-
logger.info('📝 Creating entry point...');
|
|
128
|
-
const entryContent = await createEntryPoint(flowConfig, buildOptions, packagePaths);
|
|
129
|
-
const entryPath = path.join(TEMP_DIR, 'entry.js');
|
|
130
|
-
await fs.writeFile(entryPath, entryContent);
|
|
131
|
-
// Step 4: Bundle with esbuild
|
|
132
|
-
logger.info('⚡ Bundling with esbuild...');
|
|
133
|
-
const outputPath = path.resolve(buildOptions.output);
|
|
134
|
-
// Ensure output directory exists
|
|
135
|
-
await fs.ensureDir(path.dirname(outputPath));
|
|
136
|
-
const esbuildOptions = createEsbuildOptions(buildOptions, entryPath, outputPath, TEMP_DIR, packagePaths, logger);
|
|
137
|
-
try {
|
|
138
|
-
await esbuild.build(esbuildOptions);
|
|
139
|
-
}
|
|
140
|
-
catch (buildError) {
|
|
141
|
-
// Enhanced error handling for build failures
|
|
142
|
-
throw createBuildError(buildError, buildOptions.code || '');
|
|
143
|
-
}
|
|
144
|
-
logger.gray(`Output: ${outputPath}`);
|
|
145
|
-
// Step 5: Cache the build result if caching is enabled
|
|
146
|
-
if (buildOptions.cache !== false) {
|
|
147
|
-
const configContent = generateCacheKeyContent(flowConfig, buildOptions);
|
|
148
|
-
const buildOutput = await fs.readFile(outputPath, 'utf-8');
|
|
149
|
-
await cacheBuild(configContent, buildOutput);
|
|
150
|
-
logger.debug('Build cached for future use');
|
|
151
|
-
}
|
|
152
|
-
// Step 6: Collect stats if requested
|
|
153
|
-
let stats;
|
|
154
|
-
if (showStats) {
|
|
155
|
-
stats = await collectBundleStats(outputPath, buildOptions.packages, bundleStartTime, entryContent);
|
|
156
|
-
}
|
|
157
|
-
// Step 7: Copy included folders to output directory
|
|
158
|
-
if (buildOptions.include && buildOptions.include.length > 0) {
|
|
159
|
-
const outputDir = path.dirname(outputPath);
|
|
160
|
-
await copyIncludes(buildOptions.include, buildOptions.configDir || process.cwd(), outputDir, logger);
|
|
161
|
-
}
|
|
162
|
-
// Step 8: Cleanup
|
|
163
|
-
// Only cleanup if we created our own temp dir (not shared with simulator)
|
|
164
|
-
if (!buildOptions.tempDir) {
|
|
165
|
-
await fs.remove(TEMP_DIR);
|
|
166
|
-
logger.debug('Cleaned up temporary files');
|
|
167
|
-
}
|
|
168
|
-
return stats;
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
// Cleanup on error (only if we created our own temp dir)
|
|
172
|
-
if (!buildOptions.tempDir) {
|
|
173
|
-
await fs.remove(TEMP_DIR).catch(() => { });
|
|
174
|
-
}
|
|
175
|
-
throw error;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
async function collectBundleStats(outputPath, packages, startTime, entryContent) {
|
|
179
|
-
const stats = await fs.stat(outputPath);
|
|
180
|
-
const totalSize = stats.size;
|
|
181
|
-
const buildTime = Date.now() - startTime;
|
|
182
|
-
// Estimate package sizes by analyzing imports in entry content
|
|
183
|
-
const packageStats = Object.entries(packages).map(([name, pkg]) => {
|
|
184
|
-
const importPattern = new RegExp(`from\\s+['"]${name}['"]`, 'g');
|
|
185
|
-
const namedImportPattern = new RegExp(`import\\s+\\{[^}]*\\}\\s+from\\s+['"]${name}['"]`, 'g');
|
|
186
|
-
const hasImports = importPattern.test(entryContent) || namedImportPattern.test(entryContent);
|
|
187
|
-
// Rough estimation: if package is imported, assign proportional size
|
|
188
|
-
const packagesCount = Object.keys(packages).length;
|
|
189
|
-
const estimatedSize = hasImports
|
|
190
|
-
? Math.floor(totalSize / packagesCount)
|
|
191
|
-
: 0;
|
|
192
|
-
return {
|
|
193
|
-
name: `${name}@${pkg.version || 'latest'}`,
|
|
194
|
-
size: estimatedSize,
|
|
195
|
-
};
|
|
196
|
-
});
|
|
197
|
-
// Tree-shaking is effective if we use named imports (not wildcard imports)
|
|
198
|
-
const hasWildcardImports = /import\s+\*\s+as\s+\w+\s+from/.test(entryContent);
|
|
199
|
-
const treeshakingEffective = !hasWildcardImports;
|
|
200
|
-
return {
|
|
201
|
-
totalSize,
|
|
202
|
-
packages: packageStats,
|
|
203
|
-
buildTime,
|
|
204
|
-
treeshakingEffective,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
function createEsbuildOptions(buildOptions, entryPath, outputPath, tempDir, packagePaths, logger) {
|
|
208
|
-
// Don't use aliases - they cause esbuild to bundle even external packages
|
|
209
|
-
// Instead, use absWorkingDir to point to temp directory where node_modules is
|
|
210
|
-
const alias = {};
|
|
211
|
-
const baseOptions = {
|
|
212
|
-
entryPoints: [entryPath],
|
|
213
|
-
bundle: true,
|
|
214
|
-
format: buildOptions.format,
|
|
215
|
-
platform: buildOptions.platform,
|
|
216
|
-
outfile: outputPath,
|
|
217
|
-
absWorkingDir: tempDir, // Resolve modules from temp directory
|
|
218
|
-
// alias removed - not needed with absWorkingDir
|
|
219
|
-
mainFields: ['module', 'main'], // Prefer ESM over CJS
|
|
220
|
-
treeShaking: true,
|
|
221
|
-
logLevel: 'error',
|
|
222
|
-
minify: buildOptions.minify,
|
|
223
|
-
sourcemap: buildOptions.sourcemap,
|
|
224
|
-
resolveExtensions: ['.mjs', '.js', '.ts', '.json'], // Prefer .mjs
|
|
225
|
-
// Enhanced minification options when minify is enabled
|
|
226
|
-
...(buildOptions.minify && {
|
|
227
|
-
minifyWhitespace: buildOptions.minifyOptions?.whitespace ?? true,
|
|
228
|
-
minifyIdentifiers: buildOptions.minifyOptions?.identifiers ?? true,
|
|
229
|
-
minifySyntax: buildOptions.minifyOptions?.syntax ?? true,
|
|
230
|
-
legalComments: buildOptions.minifyOptions?.legalComments ?? 'none',
|
|
231
|
-
keepNames: buildOptions.minifyOptions?.keepNames ?? false,
|
|
232
|
-
charset: 'utf8',
|
|
233
|
-
}),
|
|
234
|
-
};
|
|
235
|
-
// Platform-specific configurations
|
|
236
|
-
if (buildOptions.platform === 'browser') {
|
|
237
|
-
baseOptions.define = {
|
|
238
|
-
'process.env.NODE_ENV': '"production"',
|
|
239
|
-
global: 'globalThis',
|
|
240
|
-
};
|
|
241
|
-
// For browser bundles, let users handle Node.js built-ins as needed
|
|
242
|
-
baseOptions.external = buildOptions.external || [];
|
|
243
|
-
}
|
|
244
|
-
else if (buildOptions.platform === 'node') {
|
|
245
|
-
// For Node.js bundles, mark Node built-ins as external
|
|
246
|
-
const nodeBuiltins = [
|
|
247
|
-
'crypto',
|
|
248
|
-
'fs',
|
|
249
|
-
'path',
|
|
250
|
-
'os',
|
|
251
|
-
'util',
|
|
252
|
-
'stream',
|
|
253
|
-
'buffer',
|
|
254
|
-
'events',
|
|
255
|
-
'http',
|
|
256
|
-
'https',
|
|
257
|
-
'url',
|
|
258
|
-
'querystring',
|
|
259
|
-
'zlib',
|
|
260
|
-
];
|
|
261
|
-
// Mark runtime dependencies as external
|
|
262
|
-
// These packages are installed in the Docker container and should not be bundled
|
|
263
|
-
// - express/cors: Runtime dependencies for server sources
|
|
264
|
-
// Note: zod is bundled inline via @walkeros/core (not marked external)
|
|
265
|
-
// Use wildcard patterns to match both ESM and CJS imports
|
|
266
|
-
const npmPackages = ['express', 'express/*', 'cors', 'cors/*'];
|
|
267
|
-
// All downloaded @walkeros packages will be bundled into the output
|
|
268
|
-
// Only Node.js built-ins and runtime server packages (express/cors) are marked external
|
|
269
|
-
baseOptions.external = buildOptions.external
|
|
270
|
-
? [...nodeBuiltins, ...npmPackages, ...buildOptions.external]
|
|
271
|
-
: [...nodeBuiltins, ...npmPackages];
|
|
272
|
-
// Add createRequire shim for ESM bundles with CJS external dependencies
|
|
273
|
-
// This allows require() calls generated by esbuild to work in ESM context
|
|
274
|
-
if (buildOptions.format === 'esm') {
|
|
275
|
-
baseOptions.banner = {
|
|
276
|
-
js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
// Set target if specified
|
|
281
|
-
if (buildOptions.target) {
|
|
282
|
-
baseOptions.target = buildOptions.target;
|
|
283
|
-
}
|
|
284
|
-
else if (buildOptions.platform === 'node') {
|
|
285
|
-
baseOptions.target = 'node18';
|
|
286
|
-
}
|
|
287
|
-
else {
|
|
288
|
-
baseOptions.target = 'es2018';
|
|
289
|
-
}
|
|
290
|
-
return baseOptions;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Detects destination packages from flow configuration.
|
|
294
|
-
* Extracts package names from destinations that have explicit 'package' field.
|
|
295
|
-
*/
|
|
296
|
-
function detectDestinationPackages(flowConfig) {
|
|
297
|
-
const destinationPackages = new Set();
|
|
298
|
-
const destinations = flowConfig.destinations;
|
|
299
|
-
if (destinations) {
|
|
300
|
-
for (const [destKey, destConfig] of Object.entries(destinations)) {
|
|
301
|
-
// Require explicit package field - no inference for any packages
|
|
302
|
-
if (typeof destConfig === 'object' &&
|
|
303
|
-
destConfig !== null &&
|
|
304
|
-
'package' in destConfig &&
|
|
305
|
-
typeof destConfig.package === 'string') {
|
|
306
|
-
destinationPackages.add(destConfig.package);
|
|
307
|
-
}
|
|
308
|
-
// If no package field, skip auto-importing examples for this destination
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
return destinationPackages;
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Detects source packages from flow configuration.
|
|
315
|
-
* Extracts package names from sources that have explicit 'package' field.
|
|
316
|
-
*/
|
|
317
|
-
function detectSourcePackages(flowConfig) {
|
|
318
|
-
const sourcePackages = new Set();
|
|
319
|
-
const sources = flowConfig.sources;
|
|
320
|
-
if (sources) {
|
|
321
|
-
for (const [sourceKey, sourceConfig] of Object.entries(sources)) {
|
|
322
|
-
// Require explicit package field - no inference for any packages
|
|
323
|
-
if (typeof sourceConfig === 'object' &&
|
|
324
|
-
sourceConfig !== null &&
|
|
325
|
-
'package' in sourceConfig &&
|
|
326
|
-
typeof sourceConfig.package === 'string') {
|
|
327
|
-
sourcePackages.add(sourceConfig.package);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return sourcePackages;
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Detects explicit code imports from destinations and sources.
|
|
335
|
-
* Returns a map of package names to sets of export names.
|
|
336
|
-
*/
|
|
337
|
-
function detectExplicitCodeImports(flowConfig) {
|
|
338
|
-
const explicitCodeImports = new Map();
|
|
339
|
-
// Check destinations
|
|
340
|
-
const destinations = flowConfig.destinations;
|
|
341
|
-
if (destinations) {
|
|
342
|
-
for (const [destKey, destConfig] of Object.entries(destinations)) {
|
|
343
|
-
if (typeof destConfig === 'object' &&
|
|
344
|
-
destConfig !== null &&
|
|
345
|
-
'package' in destConfig &&
|
|
346
|
-
typeof destConfig.package === 'string' &&
|
|
347
|
-
'code' in destConfig &&
|
|
348
|
-
typeof destConfig.code === 'string') {
|
|
349
|
-
// Only treat as explicit if code doesn't match auto-generated pattern
|
|
350
|
-
// Auto-generated code starts with '_' (from packageNameToVariable)
|
|
351
|
-
const isAutoGenerated = destConfig.code.startsWith('_');
|
|
352
|
-
if (!isAutoGenerated) {
|
|
353
|
-
if (!explicitCodeImports.has(destConfig.package)) {
|
|
354
|
-
explicitCodeImports.set(destConfig.package, new Set());
|
|
355
|
-
}
|
|
356
|
-
explicitCodeImports.get(destConfig.package).add(destConfig.code);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
// Check sources
|
|
362
|
-
const sources = flowConfig.sources;
|
|
363
|
-
if (sources) {
|
|
364
|
-
for (const [sourceKey, sourceConfig] of Object.entries(sources)) {
|
|
365
|
-
if (typeof sourceConfig === 'object' &&
|
|
366
|
-
sourceConfig !== null &&
|
|
367
|
-
'package' in sourceConfig &&
|
|
368
|
-
typeof sourceConfig.package === 'string' &&
|
|
369
|
-
'code' in sourceConfig &&
|
|
370
|
-
typeof sourceConfig.code === 'string') {
|
|
371
|
-
// Only treat as explicit if code doesn't match auto-generated pattern
|
|
372
|
-
// Auto-generated code starts with '_' (from packageNameToVariable)
|
|
373
|
-
const isAutoGenerated = sourceConfig.code.startsWith('_');
|
|
374
|
-
if (!isAutoGenerated) {
|
|
375
|
-
if (!explicitCodeImports.has(sourceConfig.package)) {
|
|
376
|
-
explicitCodeImports.set(sourceConfig.package, new Set());
|
|
377
|
-
}
|
|
378
|
-
explicitCodeImports.get(sourceConfig.package).add(sourceConfig.code);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
return explicitCodeImports;
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* Generates import statements and examples mappings from build packages.
|
|
387
|
-
* Handles explicit imports, default imports for destinations/sources, and utility imports.
|
|
388
|
-
*/
|
|
389
|
-
function generateImportStatements(packages, destinationPackages, sourcePackages, explicitCodeImports) {
|
|
390
|
-
const importStatements = [];
|
|
391
|
-
const examplesMappings = [];
|
|
392
|
-
const usedPackages = new Set([...destinationPackages, ...sourcePackages]);
|
|
393
|
-
for (const [packageName, packageConfig] of Object.entries(packages)) {
|
|
394
|
-
const isUsedByDestOrSource = usedPackages.has(packageName);
|
|
395
|
-
const hasExplicitCode = explicitCodeImports.has(packageName);
|
|
396
|
-
if (packageConfig.imports && packageConfig.imports.length > 0) {
|
|
397
|
-
// Explicit imports (utilities) - existing logic
|
|
398
|
-
// Remove duplicates within the same package
|
|
399
|
-
const uniqueImports = [...new Set(packageConfig.imports)];
|
|
400
|
-
// Handle special "default as X" syntax
|
|
401
|
-
const defaultImports = [];
|
|
402
|
-
const namedImports = [];
|
|
403
|
-
for (const imp of uniqueImports) {
|
|
404
|
-
if (imp.startsWith('default as ')) {
|
|
405
|
-
defaultImports.push(imp.replace('default as ', ''));
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
namedImports.push(imp);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// Generate import statements
|
|
412
|
-
if (defaultImports.length > 0) {
|
|
413
|
-
for (const defaultImport of defaultImports) {
|
|
414
|
-
importStatements.push(`import ${defaultImport} from '${packageName}';`);
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
if (namedImports.length > 0) {
|
|
418
|
-
const importList = namedImports.join(', ');
|
|
419
|
-
importStatements.push(`import { ${importList} } from '${packageName}';`);
|
|
420
|
-
}
|
|
421
|
-
// Check if this package imports examples and create mappings
|
|
422
|
-
const examplesImport = uniqueImports.find((imp) => imp.includes('examples as '));
|
|
423
|
-
if (examplesImport) {
|
|
424
|
-
// Extract destination name and examples variable name
|
|
425
|
-
// Format: "examples as gtagExamples" -> gtagExamples
|
|
426
|
-
const examplesVarName = examplesImport.split(' as ')[1];
|
|
427
|
-
// Get destination name from package (assumes @walkeros/web-destination-xxx format)
|
|
428
|
-
const destinationMatch = packageName.match(/@walkeros\/web-destination-(.+)$/);
|
|
429
|
-
if (destinationMatch) {
|
|
430
|
-
const destinationName = destinationMatch[1];
|
|
431
|
-
examplesMappings.push(` ${destinationName}: typeof ${examplesVarName} !== 'undefined' ? ${examplesVarName} : undefined`);
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
else if (hasExplicitCode) {
|
|
436
|
-
// Package with explicit code specified in destinations/sources
|
|
437
|
-
// → Generate named imports
|
|
438
|
-
const codes = Array.from(explicitCodeImports.get(packageName));
|
|
439
|
-
importStatements.push(`import { ${codes.join(', ')} } from '${packageName}';`);
|
|
440
|
-
}
|
|
441
|
-
else if (isUsedByDestOrSource) {
|
|
442
|
-
// Package used by destination/source but no explicit imports or code
|
|
443
|
-
// → Generate default import
|
|
444
|
-
const varName = packageNameToVariable(packageName);
|
|
445
|
-
importStatements.push(`import ${varName} from '${packageName}';`);
|
|
446
|
-
}
|
|
447
|
-
// If package declared but not used by any dest/source, skip import
|
|
448
|
-
// Examples are no longer auto-imported - simulator loads them dynamically
|
|
449
|
-
}
|
|
450
|
-
return { importStatements, examplesMappings };
|
|
451
|
-
}
|
|
452
|
-
/**
|
|
453
|
-
* Creates the entry point code for the bundle.
|
|
454
|
-
* Generates imports, config object, and platform-specific wrapper programmatically.
|
|
455
|
-
*/
|
|
456
|
-
export async function createEntryPoint(flowConfig, buildOptions, packagePaths) {
|
|
457
|
-
// Detect packages used by destinations and sources
|
|
458
|
-
const destinationPackages = detectDestinationPackages(flowConfig);
|
|
459
|
-
const sourcePackages = detectSourcePackages(flowConfig);
|
|
460
|
-
const explicitCodeImports = detectExplicitCodeImports(flowConfig);
|
|
461
|
-
// Generate import statements
|
|
462
|
-
const { importStatements } = generateImportStatements(buildOptions.packages, destinationPackages, sourcePackages, explicitCodeImports);
|
|
463
|
-
const importsCode = importStatements.join('\n');
|
|
464
|
-
const hasFlow = destinationPackages.size > 0 || sourcePackages.size > 0;
|
|
465
|
-
// If no sources/destinations, just return user code with imports (no flow wrapper)
|
|
466
|
-
if (!hasFlow) {
|
|
467
|
-
const userCode = buildOptions.code || '';
|
|
468
|
-
return importsCode ? `${importsCode}\n\n${userCode}` : userCode;
|
|
469
|
-
}
|
|
470
|
-
// Build config object programmatically (DRY - single source of truth)
|
|
471
|
-
const configObject = buildConfigObject(flowConfig, explicitCodeImports);
|
|
472
|
-
// Generate platform-specific wrapper
|
|
473
|
-
const wrappedCode = generatePlatformWrapper(configObject, buildOptions.code || '', buildOptions);
|
|
474
|
-
// Assemble final code
|
|
475
|
-
return importsCode ? `${importsCode}\n\n${wrappedCode}` : wrappedCode;
|
|
476
|
-
}
|
|
477
|
-
function createBuildError(buildError, code) {
|
|
478
|
-
if (!buildError.errors || buildError.errors.length === 0) {
|
|
479
|
-
return new Error(`Build failed: ${buildError.message || buildError}`);
|
|
480
|
-
}
|
|
481
|
-
const firstError = buildError.errors[0];
|
|
482
|
-
const location = firstError.location;
|
|
483
|
-
if (location && location.file && location.file.includes('entry.js')) {
|
|
484
|
-
// Error is in our generated entry point (code)
|
|
485
|
-
const line = location.line;
|
|
486
|
-
const column = location.column;
|
|
487
|
-
const codeLines = code.split('\n');
|
|
488
|
-
const errorLine = codeLines[line - 1] || '';
|
|
489
|
-
return new Error(`Code syntax error at line ${line}, column ${column}:\n` +
|
|
490
|
-
` ${errorLine}\n` +
|
|
491
|
-
` ${' '.repeat(column - 1)}^\n` +
|
|
492
|
-
`${firstError.text}`);
|
|
493
|
-
}
|
|
494
|
-
// Error is in package code or other build issue
|
|
495
|
-
return new Error(`Build error: ${firstError.text}\n` +
|
|
496
|
-
(location
|
|
497
|
-
? ` at ${location.file}:${location.line}:${location.column}`
|
|
498
|
-
: ''));
|
|
499
|
-
}
|
|
500
|
-
/**
|
|
501
|
-
* Build config object string from flow configuration.
|
|
502
|
-
* Respects import strategy decisions from detectExplicitCodeImports.
|
|
503
|
-
*/
|
|
504
|
-
export function buildConfigObject(flowConfig, explicitCodeImports) {
|
|
505
|
-
const flowWithProps = flowConfig;
|
|
506
|
-
const sources = flowWithProps.sources || {};
|
|
507
|
-
const destinations = flowWithProps.destinations || {};
|
|
508
|
-
// Build sources
|
|
509
|
-
const sourcesEntries = Object.entries(sources).map(([key, source]) => {
|
|
510
|
-
const hasExplicitCode = source.code && explicitCodeImports.has(source.package);
|
|
511
|
-
const codeVar = hasExplicitCode
|
|
512
|
-
? source.code
|
|
513
|
-
: packageNameToVariable(source.package);
|
|
514
|
-
const configStr = source.config ? processConfigValue(source.config) : '{}';
|
|
515
|
-
const envStr = source.env
|
|
516
|
-
? `,\n env: ${processConfigValue(source.env)}`
|
|
517
|
-
: '';
|
|
518
|
-
return ` ${key}: {\n code: ${codeVar},\n config: ${configStr}${envStr}\n }`;
|
|
519
|
-
});
|
|
520
|
-
// Build destinations
|
|
521
|
-
const destinationsEntries = Object.entries(destinations).map(([key, dest]) => {
|
|
522
|
-
const hasExplicitCode = dest.code && explicitCodeImports.has(dest.package);
|
|
523
|
-
const codeVar = hasExplicitCode
|
|
524
|
-
? dest.code
|
|
525
|
-
: packageNameToVariable(dest.package);
|
|
526
|
-
const configStr = dest.config ? processConfigValue(dest.config) : '{}';
|
|
527
|
-
const envStr = dest.env
|
|
528
|
-
? `,\n env: ${processConfigValue(dest.env)}`
|
|
529
|
-
: '';
|
|
530
|
-
return ` ${key}: {\n code: ${codeVar},\n config: ${configStr}${envStr}\n }`;
|
|
531
|
-
});
|
|
532
|
-
// Build collector
|
|
533
|
-
const collectorStr = flowWithProps.collector
|
|
534
|
-
? `,\n ...${processConfigValue(flowWithProps.collector)}`
|
|
535
|
-
: '';
|
|
536
|
-
return `{
|
|
537
|
-
sources: {
|
|
538
|
-
${sourcesEntries.join(',\n')}
|
|
539
|
-
},
|
|
540
|
-
destinations: {
|
|
541
|
-
${destinationsEntries.join(',\n')}
|
|
542
|
-
}${collectorStr}
|
|
543
|
-
}`;
|
|
544
|
-
}
|
|
545
|
-
/**
|
|
546
|
-
* Process config value for serialization.
|
|
547
|
-
* Uses existing serializer utilities.
|
|
548
|
-
*/
|
|
549
|
-
function processConfigValue(value) {
|
|
550
|
-
return JSON.stringify(value, null, 2);
|
|
551
|
-
}
|
|
552
|
-
/**
|
|
553
|
-
* Generate platform-specific wrapper code.
|
|
554
|
-
*/
|
|
555
|
-
export function generatePlatformWrapper(configObject, userCode, buildOptions) {
|
|
556
|
-
if (buildOptions.platform === 'browser') {
|
|
557
|
-
// Web platform: IIFE with browser globals
|
|
558
|
-
const windowAssignments = [];
|
|
559
|
-
if (buildOptions.windowCollector) {
|
|
560
|
-
windowAssignments.push(` if (typeof window !== 'undefined') window['${buildOptions.windowCollector}'] = collector;`);
|
|
561
|
-
}
|
|
562
|
-
if (buildOptions.windowElb) {
|
|
563
|
-
windowAssignments.push(` if (typeof window !== 'undefined') window['${buildOptions.windowElb}'] = elb;`);
|
|
564
|
-
}
|
|
565
|
-
const assignments = windowAssignments.length > 0 ? '\n' + windowAssignments.join('\n') : '';
|
|
566
|
-
return `(async () => {
|
|
567
|
-
const config = ${configObject};
|
|
568
|
-
|
|
569
|
-
${userCode}
|
|
570
|
-
|
|
571
|
-
const { collector, elb } = await startFlow(config);${assignments}
|
|
572
|
-
})();`;
|
|
573
|
-
}
|
|
574
|
-
else {
|
|
575
|
-
// Server platform: Export default function
|
|
576
|
-
const codeSection = userCode ? `\n ${userCode}\n` : '';
|
|
577
|
-
return `export default async function(context = {}) {
|
|
578
|
-
const config = ${configObject};${codeSection}
|
|
579
|
-
return await startFlow(config);
|
|
580
|
-
}`;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
//# sourceMappingURL=bundler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/commands/bundle/bundler.ts"],"names":[],"mappings":"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"}
|