@walkeros/cli 0.4.1 → 0.5.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/CHANGELOG.md +26 -0
- package/README.md +247 -46
- package/dist/__tests__/bundle/bundler-helpers.test.js +0 -134
- package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -1
- package/dist/__tests__/bundle/bundler.test.js +253 -183
- package/dist/__tests__/bundle/bundler.test.js.map +1 -1
- package/dist/__tests__/bundle/programmatic.test.js +74 -53
- package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
- package/dist/__tests__/cli.test.js +58 -46
- package/dist/__tests__/cli.test.js.map +1 -1
- package/dist/__tests__/config-loader.test.d.ts +1 -1
- package/dist/__tests__/config-loader.test.js +229 -212
- package/dist/__tests__/config-loader.test.js.map +1 -1
- package/dist/__tests__/core/build-cache.test.d.ts +2 -0
- package/dist/__tests__/core/build-cache.test.d.ts.map +1 -0
- package/dist/__tests__/core/build-cache.test.js +55 -0
- package/dist/__tests__/core/build-cache.test.js.map +1 -0
- package/dist/__tests__/core/cache-utils.test.d.ts +2 -0
- package/dist/__tests__/core/cache-utils.test.d.ts.map +1 -0
- package/dist/__tests__/core/cache-utils.test.js +70 -0
- package/dist/__tests__/core/cache-utils.test.js.map +1 -0
- package/dist/__tests__/integration/bundle-run.integration.test.js +8 -4
- package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -1
- package/dist/__tests__/simulate/node-executor.test.d.ts +5 -0
- package/dist/__tests__/simulate/node-executor.test.d.ts.map +1 -0
- package/dist/__tests__/simulate/node-executor.test.js +25 -0
- package/dist/__tests__/simulate/node-executor.test.js.map +1 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +5 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +1 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.js +58 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -0
- package/dist/__tests__/smoke/production.smoke.test.js +9 -2
- package/dist/__tests__/smoke/production.smoke.test.js.map +1 -1
- package/dist/commands/bundle/bundler.d.ts +18 -0
- package/dist/commands/bundle/bundler.d.ts.map +1 -1
- package/dist/commands/bundle/bundler.js +286 -80
- package/dist/commands/bundle/bundler.js.map +1 -1
- package/dist/commands/bundle/index.d.ts +16 -10
- package/dist/commands/bundle/index.d.ts.map +1 -1
- package/dist/commands/bundle/index.js +44 -32
- package/dist/commands/bundle/index.js.map +1 -1
- package/dist/commands/bundle/package-manager.d.ts +2 -1
- package/dist/commands/bundle/package-manager.d.ts.map +1 -1
- package/dist/commands/bundle/package-manager.js +34 -7
- package/dist/commands/bundle/package-manager.js.map +1 -1
- package/dist/commands/cache.d.ts +3 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +44 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/push/index.d.ts.map +1 -1
- package/dist/commands/push/index.js +49 -44
- package/dist/commands/push/index.js.map +1 -1
- package/dist/commands/push/types.d.ts +1 -1
- package/dist/commands/push/types.d.ts.map +1 -1
- package/dist/commands/run/__tests__/run.integration.test.js +14 -15
- package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
- package/dist/commands/run/execution.d.ts.map +1 -1
- package/dist/commands/run/execution.js +6 -2
- package/dist/commands/run/execution.js.map +1 -1
- package/dist/commands/run/utils.d.ts +4 -1
- package/dist/commands/run/utils.d.ts.map +1 -1
- package/dist/commands/run/utils.js +18 -24
- package/dist/commands/run/utils.js.map +1 -1
- package/dist/commands/run/validators.d.ts +9 -5
- package/dist/commands/run/validators.d.ts.map +1 -1
- package/dist/commands/run/validators.js +14 -11
- package/dist/commands/run/validators.js.map +1 -1
- package/dist/commands/simulate/index.d.ts +1 -0
- package/dist/commands/simulate/index.d.ts.map +1 -1
- package/dist/commands/simulate/index.js +1 -0
- package/dist/commands/simulate/index.js.map +1 -1
- package/dist/commands/simulate/node-executor.d.ts +28 -0
- package/dist/commands/simulate/node-executor.d.ts.map +1 -0
- package/dist/commands/simulate/node-executor.js +94 -0
- package/dist/commands/simulate/node-executor.js.map +1 -0
- package/dist/commands/simulate/simulator.d.ts.map +1 -1
- package/dist/commands/simulate/simulator.js +36 -32
- package/dist/commands/simulate/simulator.js.map +1 -1
- package/dist/config/build-defaults.d.ts +49 -0
- package/dist/config/build-defaults.d.ts.map +1 -0
- package/dist/config/build-defaults.js +70 -0
- package/dist/config/build-defaults.js.map +1 -0
- package/dist/config/index.d.ts +6 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +34 -27
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +107 -92
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators.d.ts +34 -8
- package/dist/config/validators.d.ts.map +1 -1
- package/dist/config/validators.js +59 -21
- package/dist/config/validators.js.map +1 -1
- package/dist/core/asset-resolver.d.ts +9 -16
- package/dist/core/asset-resolver.d.ts.map +1 -1
- package/dist/core/asset-resolver.js +30 -41
- package/dist/core/asset-resolver.js.map +1 -1
- package/dist/core/build-cache.d.ts +23 -0
- package/dist/core/build-cache.d.ts.map +1 -0
- package/dist/core/build-cache.js +43 -0
- package/dist/core/build-cache.js.map +1 -0
- package/dist/core/cache-utils.d.ts +27 -0
- package/dist/core/cache-utils.d.ts.map +1 -0
- package/dist/core/cache-utils.js +60 -0
- package/dist/core/cache-utils.js.map +1 -0
- package/dist/core/docker.d.ts.map +1 -1
- package/dist/core/docker.js +14 -27
- package/dist/core/docker.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/local-packages.d.ts +19 -0
- package/dist/core/local-packages.d.ts.map +1 -0
- package/dist/core/local-packages.js +60 -0
- package/dist/core/local-packages.js.map +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/0d/2d/7581c288670eaf8538ddd9df145b78756ce3be0791c6e0b9cd33429b3bae894525b9bda287a3cedffbcdd2c7b3107bafc03f2b0367eea489eee1cc042abb +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/12/20/bc4f5acca143809f7e07da1fdafb38137d93243de4d5b403e6e10b92d0d3a6e51eab24fe9dbc9d3ed1cd72e8f7a406085e99c422bb2c7d1166cf9f1f564e +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/22/ee/fb2695b01871c1d36946bdcfb49f1b520a57200d0a0b221b1e7d5f047ab38a8b2ab0e5f0e25a00acde1f3f2f9d24430a18f1092d438bc1a9e9891cc45f75 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/24/89/da1ce6a61bca6de7e132f241a675c01c83738bf6b78af25b5cce01d3030361332b3fe938571e2b721f1555da9ddf930fdcf8c02f0471556071590e68cc09 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/47/fd/c6be997da99228c3e279b95d4a46d6913947078a178f54ac71795a159f3513b1483232f4c2d0a1f403178bf9f96bb19615de32a9e2133e949880c6bc15e2 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/4b/1c/c1cb7f8b32102071a89fef97158daa32080ebaedfbbd596880d2213d84e305abc76d2a95a412ded55c1c3d487adcb1ceff87fc2c85d7e2856ebd9d3f16f3 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/6e/53/ff864769671f44f39d8a3bf904cd646535b745cc4824a8bb3189193b474678049f43b5178ba15cad7f0289046105e70f1565afc84e907120b35a466690fd +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/70/4c/4c8837d446965c5551b4ea527e95fa011744fb727581d82cf35bb5599ea0b57d18baa490f7af93ef9a16e8e45e5c0802737da20575f4056a4a5c9a3cd288 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/96/ad/05de3bbb12d7de8ea353f962bdaea7d2eb44f707f2973462a6635daf537c67b46cca7764fed7d464fe62152c3f783a07aba1ceb35e09ad446bff05a4b466 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/b5/20/52dde94e6cef7170f6089c64a4843e57be18be450d956f4e455905aed047ae6a368451c93035e6ac3ee59576b600f03f815afba0836b3a16e10a9aaca4ba +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/c7/a9/d166a1c39f97df312c59261319ba1cf9aac178bda0a0cb697d5ddd78bd8dd38ef1bf40017bcc8633c2049896c2d70696d9bff9280851f270792ff38bb3a0 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/e0/d0/8c14083b633e6adbd3c6a93da5fc0f6bbd456c5512ef276920bedd8d85d551052adff992de977aff326616a211aaa2d6ddcc801149e9b7f914f566359b6a +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/e7/c5/06ad3fd79ac4f1031fe0b16ea5e54e232ca397bbcd7592c679021cbfb027276099f8c848f3f7a7691f0102ad53aa64f9141e61d729b037a678bd60440d17 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/f3/28/d5d32329604ed7d471a4949105daa2cc98858cf24f45b0b97c41d0eb0d5a9fe7bf1f69c792161cc6693e4fc1b52e886ac41875ebfb8fe47fafe417ca3e6e +0 -0
- package/dist/examples/.npm-cache/index-v5/04/5a/2b5d7a7c407d85d746baa0f5c9388a333e35a717a8a0a81943daa6cb1364 +3 -0
- package/dist/examples/.npm-cache/index-v5/12/9a/eba560cbace295d8ee04cf283015377bd77b379e70968fb6bc407c7fc410 +15 -0
- package/dist/examples/.npm-cache/index-v5/2f/a2/7b047564b0ee21ac835ec609e89153dd6549be554d098584d5bfd19fe043 +15 -0
- package/dist/examples/.npm-cache/index-v5/32/8e/322d58dd8d1e000be248ada51385bf96288e56039de9feec1a4c6a467653 +3 -0
- package/dist/examples/.npm-cache/index-v5/57/93/d1d7cd1402e3e26468db03f2870822bb2c9018a506cdfb3b405f38cd3e1c +3 -0
- package/dist/examples/.npm-cache/index-v5/5d/f8/0a1f4fa7149e4ff33e09eb6aea41ac8d1730c868a5d3ace91f762698acff +3 -0
- package/dist/examples/.npm-cache/index-v5/69/a4/a92c72d838259b051cdf8e0acfb2bc680b6d4cfc642314a7836c3f7b2c50 +15 -0
- package/dist/examples/.npm-cache/index-v5/71/31/6da3423bb203f3de5eb16c942431073f89be2cfcb40058ec91dcb5ce0abc +15 -0
- package/dist/examples/.npm-cache/index-v5/7b/94/72b6bffa050d9ef52a558dd220663695bc606f756be0dfa196ef4f3913ba +3 -0
- package/dist/examples/.npm-cache/index-v5/85/9e/99e97fdd562517e56285337db91d1a8f2f416b8d631cf4d7d754fa671299 +15 -0
- package/dist/examples/.npm-cache/index-v5/92/4c/9416ada81a9b3c679539fd1ab53f8de3d41ff268f35eba7a194389a85b06 +3 -0
- package/dist/examples/.npm-cache/index-v5/c1/5a/13df76b218deed8a6ef12961116af5183db98c53fad1b922fd9edc075247 +3 -0
- package/dist/examples/.npm-cache/index-v5/cb/11/253c55410a8ab7c4a9ea9d6e1bf8ef1450a581da64c478074dfd82c8bff6 +3 -0
- package/dist/examples/.npm-cache/index-v5/d5/ae/b57fad3a62b5ba2dbdf24b042a9e7b70820f3db00e5a630f02e1fea020dc +3 -0
- package/dist/examples/.npm-cache/index-v5/d6/32/2f620f83c7d14451de98de8298c2408e05a16cc0829bd16c891ac19d7a67 +3 -0
- package/dist/examples/.npm-cache/index-v5/dd/b5/01dc7a3cd8b6a03a69aee9af500d51ae19cb0aa12631a4aafd152148b8e5 +15 -0
- package/dist/examples/.npm-cache/index-v5/e0/cf/6b862c15d74630d3871cd813d305210ab741311deb10baf8813014e0bc30 +3 -0
- package/dist/examples/.npm-cache/index-v5/e2/be/e880ccd35950a814d3c1dded34d3938ac61b15a195321dc51357f801aad4 +15 -0
- package/dist/examples/.npm-cache/index-v5/e5/1f/f4affe0b392cd03288f23cc03abcb274ff11a2c8f8965299de681914abb2 +3 -0
- package/dist/examples/.npm-cache/index-v5/f3/5b/9ebe450958ff0d7cc44ab0a00080cb8a3ff1389744b5eab5f97b68a6a6af +3 -0
- package/dist/examples/.npm-cache/index-v5/fb/c1/0de405e902866d53e7c30cf36a97dc2578838622b261816f44dc377c9a80 +3 -0
- package/dist/examples/README.md +355 -0
- package/dist/examples/event.json +53 -0
- package/dist/examples/flow-order-complete.json +67 -0
- package/dist/examples/flow-simple.json +31 -0
- package/dist/examples/flow.json +82 -0
- package/dist/examples/server-collect.json +60 -0
- package/dist/examples/server-collect.mjs +13540 -0
- package/dist/examples/test.html +43 -0
- package/dist/examples/web-serve.js +25503 -0
- package/dist/examples/web-serve.json +74 -0
- package/dist/index.d.ts +80 -310
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +924 -736
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +9 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/primitives.d.ts +37 -0
- package/dist/schemas/primitives.d.ts.map +1 -0
- package/dist/schemas/primitives.js +43 -0
- package/dist/schemas/primitives.js.map +1 -0
- package/dist/schemas/run.d.ts +23 -0
- package/dist/schemas/run.d.ts.map +1 -0
- package/dist/schemas/run.js +20 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/types/bundle.d.ts +64 -191
- package/dist/types/bundle.d.ts.map +1 -1
- package/dist/types/bundle.js +2 -2
- package/dist/walker.js +1 -0
- package/examples/README.md +55 -30
- package/examples/flow-order-complete.json +56 -57
- package/examples/flow-simple.json +24 -25
- package/examples/flow.json +69 -69
- package/examples/server-collect.json +51 -44
- package/examples/server-collect.mjs +1 -1
- package/examples/web-serve.json +62 -63
- package/package.json +2 -4
- package/dist/__tests__/bundle/serializer.test.d.ts +0 -2
- package/dist/__tests__/bundle/serializer.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/serializer.test.js +0 -173
- package/dist/__tests__/bundle/serializer.test.js.map +0 -1
- package/dist/__tests__/bundle/template-engine.test.d.ts +0 -2
- package/dist/__tests__/bundle/template-engine.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/template-engine.test.js +0 -107
- package/dist/__tests__/bundle/template-engine.test.js.map +0 -1
- package/dist/commands/bundle/serializer.d.ts +0 -23
- package/dist/commands/bundle/serializer.d.ts.map +0 -1
- package/dist/commands/bundle/serializer.js +0 -127
- package/dist/commands/bundle/serializer.js.map +0 -1
- package/dist/commands/bundle/template-engine.d.ts +0 -20
- package/dist/commands/bundle/template-engine.d.ts.map +0 -1
- package/dist/commands/bundle/template-engine.js +0 -54
- package/dist/commands/bundle/template-engine.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -33
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -69
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/parser.d.ts +0 -128
- package/dist/config/parser.d.ts.map +0 -1
- package/dist/config/parser.js +0 -256
- package/dist/config/parser.js.map +0 -1
- package/dist/types/template.d.ts +0 -108
- package/dist/types/template.d.ts.map +0 -1
- package/dist/types/template.js +0 -10
- package/dist/types/template.js.map +0 -1
- package/templates/server.hbs +0 -29
- package/templates/web.hbs +0 -45
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { serializeToJS, serializeConfig, processTemplateVariables, } from '../../commands/bundle/serializer.js';
|
|
2
|
-
describe('Serializer', () => {
|
|
3
|
-
describe('serializeToJS', () => {
|
|
4
|
-
it('should serialize primitives correctly', () => {
|
|
5
|
-
expect(serializeToJS(null)).toBe('null');
|
|
6
|
-
expect(serializeToJS(undefined)).toBe('undefined');
|
|
7
|
-
expect(serializeToJS(true)).toBe('true');
|
|
8
|
-
expect(serializeToJS(false)).toBe('false');
|
|
9
|
-
expect(serializeToJS(42)).toBe('42');
|
|
10
|
-
expect(serializeToJS('hello')).toBe('"hello"');
|
|
11
|
-
});
|
|
12
|
-
it('should serialize strings with single quotes when specified', () => {
|
|
13
|
-
expect(serializeToJS('test', { singleQuotes: true })).toBe("'test'");
|
|
14
|
-
});
|
|
15
|
-
it('should detect and preserve arrow functions', () => {
|
|
16
|
-
const fn1 = '(x) => x * 2';
|
|
17
|
-
const fn2 = 'entity => entity.type === "product"';
|
|
18
|
-
const fn3 = '() => { return true; }';
|
|
19
|
-
expect(serializeToJS(fn1)).toBe(fn1);
|
|
20
|
-
expect(serializeToJS(fn2)).toBe(fn2);
|
|
21
|
-
expect(serializeToJS(fn3)).toBe(fn3);
|
|
22
|
-
});
|
|
23
|
-
it('should serialize arrays correctly', () => {
|
|
24
|
-
expect(serializeToJS([])).toBe('[]');
|
|
25
|
-
expect(serializeToJS([1, 2, 3])).toBe('[\n 1,\n 2,\n 3\n]');
|
|
26
|
-
expect(serializeToJS(['a', 'b'])).toBe('[\n "a",\n "b"\n]');
|
|
27
|
-
});
|
|
28
|
-
it('should serialize objects correctly', () => {
|
|
29
|
-
expect(serializeToJS({})).toBe('{}');
|
|
30
|
-
const simple = { name: 'test', value: 42 };
|
|
31
|
-
expect(serializeToJS(simple)).toBe('{\n name: "test",\n value: 42\n}');
|
|
32
|
-
});
|
|
33
|
-
it('should handle nested objects and arrays', () => {
|
|
34
|
-
const complex = {
|
|
35
|
-
settings: {
|
|
36
|
-
ga4: {
|
|
37
|
-
measurementId: 'G-123',
|
|
38
|
-
enabled: true,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
items: [
|
|
42
|
-
{ id: 1, name: 'item1' },
|
|
43
|
-
{ id: 2, name: 'item2' },
|
|
44
|
-
],
|
|
45
|
-
};
|
|
46
|
-
const result = serializeToJS(complex);
|
|
47
|
-
expect(result).toContain('settings: {');
|
|
48
|
-
expect(result).toContain('ga4: {');
|
|
49
|
-
expect(result).toContain('measurementId: "G-123"');
|
|
50
|
-
expect(result).toContain('items: [');
|
|
51
|
-
});
|
|
52
|
-
it('should handle keys that need quotes', () => {
|
|
53
|
-
const obj = {
|
|
54
|
-
'key-with-dash': 'value1',
|
|
55
|
-
'123numeric': 'value2',
|
|
56
|
-
'key with space': 'value3',
|
|
57
|
-
normalKey: 'value4',
|
|
58
|
-
};
|
|
59
|
-
const result = serializeToJS(obj);
|
|
60
|
-
expect(result).toContain('"key-with-dash": "value1"');
|
|
61
|
-
expect(result).toContain('"123numeric": "value2"');
|
|
62
|
-
expect(result).toContain('"key with space": "value3"');
|
|
63
|
-
expect(result).toContain('normalKey: "value4"');
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
describe('serializeConfig', () => {
|
|
67
|
-
it('should handle empty config', () => {
|
|
68
|
-
expect(serializeConfig({})).toBe('{}');
|
|
69
|
-
});
|
|
70
|
-
it('should serialize config with single quotes', () => {
|
|
71
|
-
const config = {
|
|
72
|
-
settings: {
|
|
73
|
-
endpoint: 'https://api.example.com',
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
const result = serializeConfig(config);
|
|
77
|
-
expect(result).toContain("endpoint: 'https://api.example.com'");
|
|
78
|
-
});
|
|
79
|
-
it('should handle complex mapping configurations', () => {
|
|
80
|
-
const config = {
|
|
81
|
-
mapping: {
|
|
82
|
-
order: {
|
|
83
|
-
complete: {
|
|
84
|
-
name: 'purchase',
|
|
85
|
-
data: {
|
|
86
|
-
map: {
|
|
87
|
-
transaction_id: 'data.id',
|
|
88
|
-
condition: '(entity) => entity.entity === "product"',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
const result = serializeConfig(config);
|
|
96
|
-
expect(result).toContain("name: 'purchase'");
|
|
97
|
-
expect(result).toContain("transaction_id: 'data.id'");
|
|
98
|
-
expect(result).toContain('(entity) => entity.entity === "product"');
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('processTemplateVariables', () => {
|
|
102
|
-
it('should process sources and destinations config objects', () => {
|
|
103
|
-
const variables = {
|
|
104
|
-
sources: {
|
|
105
|
-
browser: {
|
|
106
|
-
code: 'sourceBrowser',
|
|
107
|
-
config: { debug: true },
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
destinations: {
|
|
111
|
-
gtag: {
|
|
112
|
-
code: 'destinationGtag',
|
|
113
|
-
config: {
|
|
114
|
-
settings: {
|
|
115
|
-
ga4: { measurementId: 'G-123' },
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
const result = processTemplateVariables(variables);
|
|
122
|
-
expect(result.sources?.browser?.config).toBe('{\n debug: true\n}');
|
|
123
|
-
expect(result.destinations?.gtag?.config).toContain("measurementId: 'G-123'");
|
|
124
|
-
});
|
|
125
|
-
it('should handle string configs (pass through)', () => {
|
|
126
|
-
const variables = {
|
|
127
|
-
sources: {
|
|
128
|
-
test: {
|
|
129
|
-
code: 'source',
|
|
130
|
-
config: '{ debug: true }',
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
const result = processTemplateVariables(variables);
|
|
135
|
-
expect(result.sources?.test?.config).toBe('{ debug: true }');
|
|
136
|
-
});
|
|
137
|
-
it('should handle undefined env values', () => {
|
|
138
|
-
const variables = {
|
|
139
|
-
sources: {
|
|
140
|
-
test: {
|
|
141
|
-
code: 'source',
|
|
142
|
-
config: {},
|
|
143
|
-
env: undefined,
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
const result = processTemplateVariables(variables);
|
|
148
|
-
expect(result.sources?.test?.env).toBeUndefined();
|
|
149
|
-
expect('env' in result.sources.test).toBe(false);
|
|
150
|
-
});
|
|
151
|
-
it('should handle collector configuration', () => {
|
|
152
|
-
const variables = {
|
|
153
|
-
collector: {
|
|
154
|
-
settings: {
|
|
155
|
-
debug: true,
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
const result = processTemplateVariables(variables);
|
|
160
|
-
expect(result.collector).toContain('debug: true');
|
|
161
|
-
});
|
|
162
|
-
it('should preserve other variables', () => {
|
|
163
|
-
const variables = {
|
|
164
|
-
title: 'My App',
|
|
165
|
-
version: '1.0.0',
|
|
166
|
-
};
|
|
167
|
-
const result = processTemplateVariables(variables);
|
|
168
|
-
expect(result.title).toBe('My App');
|
|
169
|
-
expect(result.version).toBe('1.0.0');
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
//# sourceMappingURL=serializer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/serializer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import fs from 'fs-extra';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { TemplateEngine } from '../../commands/bundle/template-engine.js';
|
|
4
|
-
import { getId } from '@walkeros/core';
|
|
5
|
-
describe('TemplateEngine', () => {
|
|
6
|
-
const testOutputDir = path.join('.tmp', `template-${Date.now()}-${getId()}`);
|
|
7
|
-
const engine = new TemplateEngine();
|
|
8
|
-
beforeEach(async () => {
|
|
9
|
-
await fs.ensureDir(testOutputDir);
|
|
10
|
-
});
|
|
11
|
-
afterEach(async () => {
|
|
12
|
-
await fs.remove(testOutputDir);
|
|
13
|
-
});
|
|
14
|
-
describe('Templates', () => {
|
|
15
|
-
it('should process template with sources and destinations', async () => {
|
|
16
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
17
|
-
await fs.writeFile(templatePath, '{{{CODE}}}\nSources: {{#each sources}}{{@key}} {{/each}}\nDestinations: {{#each destinations}}{{@key}} {{/each}}');
|
|
18
|
-
const sources = {
|
|
19
|
-
browser: { code: 'sourceBrowser', config: {} },
|
|
20
|
-
};
|
|
21
|
-
const destinations = {
|
|
22
|
-
gtag: { code: 'destinationGtag', config: {} },
|
|
23
|
-
};
|
|
24
|
-
const collector = {};
|
|
25
|
-
const result = await engine.process(templatePath, 'console.log("test");', sources, destinations, collector, {});
|
|
26
|
-
expect(result).toContain('console.log("test");');
|
|
27
|
-
expect(result).toContain('Sources: browser');
|
|
28
|
-
expect(result).toContain('Destinations: gtag');
|
|
29
|
-
});
|
|
30
|
-
it('should replace bundle placeholder', async () => {
|
|
31
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
32
|
-
await fs.writeFile(templatePath, 'Start\n{{{CODE}}}\nEnd');
|
|
33
|
-
const result = await engine.process(templatePath, 'const x = 42;', {}, {}, {}, {});
|
|
34
|
-
expect(result).toBe('Start\nconst x = 42;\nEnd');
|
|
35
|
-
});
|
|
36
|
-
it('should handle missing variables gracefully', async () => {
|
|
37
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
38
|
-
await fs.writeFile(templatePath, '{{{CODE}}} - {{MISSING}}');
|
|
39
|
-
const result = await engine.process(templatePath, 'code', {}, {}, {}, {});
|
|
40
|
-
expect(result).toBe('code - ');
|
|
41
|
-
});
|
|
42
|
-
it('should handle config serialization', async () => {
|
|
43
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
44
|
-
await fs.writeFile(templatePath, '{{{CODE}}}\n{{#each sources}}Code: {{{code}}}, Config: {{{config}}}\n{{/each}}');
|
|
45
|
-
const sources = {
|
|
46
|
-
browser: {
|
|
47
|
-
code: 'sourceBrowser',
|
|
48
|
-
config: { settings: { prefix: 'data-elb' } },
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
const result = await engine.process(templatePath, 'const test = true;', sources, {}, {}, {});
|
|
52
|
-
expect(result).toContain('Code: sourceBrowser');
|
|
53
|
-
expect(result).toContain('Config: {');
|
|
54
|
-
expect(result).toContain('prefix');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('Object Iteration', () => {
|
|
58
|
-
it('should iterate over sources and destinations objects', async () => {
|
|
59
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
60
|
-
await fs.writeFile(templatePath, '{{#each sources}}Source {{@key}}: {{code}}\n{{/each}}{{#each destinations}}Destination {{@key}}: {{code}}\n{{/each}}{{{CODE}}}');
|
|
61
|
-
const sources = {
|
|
62
|
-
browser: { code: 'sourceBrowser' },
|
|
63
|
-
dataLayer: { code: 'sourceDataLayer' },
|
|
64
|
-
};
|
|
65
|
-
const destinations = {
|
|
66
|
-
gtag: { code: 'destinationGtag' },
|
|
67
|
-
api: { code: 'destinationAPI' },
|
|
68
|
-
};
|
|
69
|
-
const result = await engine.process(templatePath, 'const bundle = true;', sources, destinations, {});
|
|
70
|
-
expect(result).toContain('Source browser: sourceBrowser');
|
|
71
|
-
expect(result).toContain('Source dataLayer: sourceDataLayer');
|
|
72
|
-
expect(result).toContain('Destination gtag: destinationGtag');
|
|
73
|
-
expect(result).toContain('Destination api: destinationAPI');
|
|
74
|
-
expect(result).toContain('const bundle = true;');
|
|
75
|
-
});
|
|
76
|
-
it('should handle collector configuration', async () => {
|
|
77
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
78
|
-
await fs.writeFile(templatePath, '{{{CODE}}}{{#if collector}}\nCollector: {{{collector}}}{{/if}}');
|
|
79
|
-
const collector = { settings: { debug: true } };
|
|
80
|
-
const result = await engine.process(templatePath, 'const code = 1;', {}, {}, collector, {});
|
|
81
|
-
expect(result).toContain('const code = 1;');
|
|
82
|
-
expect(result).toContain('Collector: {');
|
|
83
|
-
expect(result).toContain('debug');
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
describe('Edge Cases', () => {
|
|
87
|
-
it('should handle template without CODE placeholder', async () => {
|
|
88
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
89
|
-
await fs.writeFile(templatePath, 'Header only');
|
|
90
|
-
const result = await engine.process(templatePath, 'const code = true;', {}, {}, {}, {});
|
|
91
|
-
expect(result).toBe('Header only');
|
|
92
|
-
});
|
|
93
|
-
it('should handle minimal template content', async () => {
|
|
94
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
95
|
-
await fs.writeFile(templatePath, '{{{CODE}}}');
|
|
96
|
-
const result = await engine.process(templatePath, 'just code', {}, {}, {}, {});
|
|
97
|
-
expect(result).toBe('just code');
|
|
98
|
-
});
|
|
99
|
-
it('should handle empty bundle code', async () => {
|
|
100
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
101
|
-
await fs.writeFile(templatePath, 'Template: {{{CODE}}}');
|
|
102
|
-
const result = await engine.process(templatePath, '', {}, {}, {}, {});
|
|
103
|
-
expect(result).toBe('Template: ');
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
//# sourceMappingURL=template-engine.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON to JavaScript serializer for config objects
|
|
3
|
-
* Converts JSON objects to valid JavaScript code for use in templates
|
|
4
|
-
*/
|
|
5
|
-
import type { ProcessedTemplateVariables } from '../../types/template.js';
|
|
6
|
-
export interface SerializerOptions {
|
|
7
|
-
indent?: number;
|
|
8
|
-
singleQuotes?: boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Serialize a value to JavaScript code
|
|
12
|
-
*/
|
|
13
|
-
export declare function serializeToJS(value: unknown, options?: SerializerOptions): string;
|
|
14
|
-
/**
|
|
15
|
-
* Serialize config object for template usage
|
|
16
|
-
* Handles special cases for walkerOS configurations
|
|
17
|
-
*/
|
|
18
|
-
export declare function serializeConfig(config: Record<string, unknown>): string;
|
|
19
|
-
/**
|
|
20
|
-
* Process template variables to serialize config objects
|
|
21
|
-
*/
|
|
22
|
-
export declare function processTemplateVariables(variables: Record<string, unknown>): ProcessedTemplateVariables;
|
|
23
|
-
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAGV,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAyER;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,0BAA0B,CAmD5B"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON to JavaScript serializer for config objects
|
|
3
|
-
* Converts JSON objects to valid JavaScript code for use in templates
|
|
4
|
-
*/
|
|
5
|
-
import { isObject } from '../../config/index.js';
|
|
6
|
-
/**
|
|
7
|
-
* Serialize a value to JavaScript code
|
|
8
|
-
*/
|
|
9
|
-
export function serializeToJS(value, options = {}) {
|
|
10
|
-
const { indent = 2, singleQuotes = false } = options;
|
|
11
|
-
const quote = singleQuotes ? "'" : '"';
|
|
12
|
-
function serialize(val, currentIndent = 0) {
|
|
13
|
-
if (val === null)
|
|
14
|
-
return 'null';
|
|
15
|
-
if (val === undefined)
|
|
16
|
-
return 'undefined';
|
|
17
|
-
if (typeof val === 'boolean' || typeof val === 'number') {
|
|
18
|
-
return String(val);
|
|
19
|
-
}
|
|
20
|
-
if (typeof val === 'string') {
|
|
21
|
-
// Check if string contains arrow function syntax
|
|
22
|
-
if (val.includes('=>')) {
|
|
23
|
-
// More comprehensive check for arrow function patterns
|
|
24
|
-
const arrowPatterns = [
|
|
25
|
-
/^\s*\([^)]*\)\s*=>/, // (param) => or () =>
|
|
26
|
-
/^\s*\w+\s*=>/, // param =>
|
|
27
|
-
/^\s*\([^)]*\)\s*=>\s*\{/, // (param) => {
|
|
28
|
-
/^\s*\w+\s*=>\s*\{/, // param => {
|
|
29
|
-
];
|
|
30
|
-
if (arrowPatterns.some((pattern) => pattern.test(val))) {
|
|
31
|
-
// Likely a function - return as-is without quotes
|
|
32
|
-
return val;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// Regular string - escape and quote
|
|
36
|
-
return (quote +
|
|
37
|
-
val.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/"/g, '\\"') +
|
|
38
|
-
quote);
|
|
39
|
-
}
|
|
40
|
-
if (Array.isArray(val)) {
|
|
41
|
-
if (val.length === 0)
|
|
42
|
-
return '[]';
|
|
43
|
-
const nextIndent = currentIndent + indent;
|
|
44
|
-
const spacing = ' '.repeat(nextIndent);
|
|
45
|
-
const items = val
|
|
46
|
-
.map((item) => spacing + serialize(item, nextIndent))
|
|
47
|
-
.join(',\n');
|
|
48
|
-
return `[\n${items}\n${' '.repeat(currentIndent)}]`;
|
|
49
|
-
}
|
|
50
|
-
if (isObject(val)) {
|
|
51
|
-
const entries = Object.entries(val);
|
|
52
|
-
if (entries.length === 0)
|
|
53
|
-
return '{}';
|
|
54
|
-
const nextIndent = currentIndent + indent;
|
|
55
|
-
const spacing = ' '.repeat(nextIndent);
|
|
56
|
-
const props = entries
|
|
57
|
-
.map(([key, value]) => {
|
|
58
|
-
// Check if key needs quotes (contains special characters or starts with number)
|
|
59
|
-
const needsQuotes = /[^a-zA-Z0-9_$]/.test(key) || /^[0-9]/.test(key);
|
|
60
|
-
const keyStr = needsQuotes ? quote + key + quote : key;
|
|
61
|
-
return spacing + keyStr + ': ' + serialize(value, nextIndent);
|
|
62
|
-
})
|
|
63
|
-
.join(',\n');
|
|
64
|
-
return `{\n${props}\n${' '.repeat(currentIndent)}}`;
|
|
65
|
-
}
|
|
66
|
-
// Fallback for other types
|
|
67
|
-
return String(val);
|
|
68
|
-
}
|
|
69
|
-
return serialize(value);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Serialize config object for template usage
|
|
73
|
-
* Handles special cases for walkerOS configurations
|
|
74
|
-
*/
|
|
75
|
-
export function serializeConfig(config) {
|
|
76
|
-
// Handle empty config
|
|
77
|
-
if (!config || Object.keys(config).length === 0) {
|
|
78
|
-
return '{}';
|
|
79
|
-
}
|
|
80
|
-
return serializeToJS(config, { indent: 2, singleQuotes: true });
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Process template variables to serialize config objects
|
|
84
|
-
*/
|
|
85
|
-
export function processTemplateVariables(variables) {
|
|
86
|
-
const processed = { ...variables };
|
|
87
|
-
// Process sources object
|
|
88
|
-
if (isObject(processed.sources)) {
|
|
89
|
-
const sourcesObj = processed.sources;
|
|
90
|
-
const processedSources = {};
|
|
91
|
-
for (const [name, source] of Object.entries(sourcesObj)) {
|
|
92
|
-
const typedSource = source;
|
|
93
|
-
const { env: _, ...sourceWithoutEnv } = typedSource;
|
|
94
|
-
processedSources[name] = {
|
|
95
|
-
...sourceWithoutEnv,
|
|
96
|
-
config: isObject(typedSource.config)
|
|
97
|
-
? serializeConfig(typedSource.config)
|
|
98
|
-
: typedSource.config, // Pass through string configs unchanged
|
|
99
|
-
...(typedSource.env !== undefined && { env: typedSource.env }),
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
processed.sources = processedSources;
|
|
103
|
-
}
|
|
104
|
-
// Process destinations object
|
|
105
|
-
if (isObject(processed.destinations)) {
|
|
106
|
-
const destinationsObj = processed.destinations;
|
|
107
|
-
const processedDestinations = {};
|
|
108
|
-
for (const [name, dest] of Object.entries(destinationsObj)) {
|
|
109
|
-
const typedDest = dest;
|
|
110
|
-
const { env: _, ...destWithoutEnv } = typedDest;
|
|
111
|
-
processedDestinations[name] = {
|
|
112
|
-
...destWithoutEnv,
|
|
113
|
-
config: isObject(typedDest.config)
|
|
114
|
-
? serializeConfig(typedDest.config)
|
|
115
|
-
: typedDest.config,
|
|
116
|
-
...(typedDest.env !== undefined && { env: typedDest.env }),
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
processed.destinations = processedDestinations;
|
|
120
|
-
}
|
|
121
|
-
// Process collector object (if present)
|
|
122
|
-
if (isObject(processed.collector)) {
|
|
123
|
-
processed.collector = serializeConfig(processed.collector);
|
|
124
|
-
}
|
|
125
|
-
return processed;
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=serializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { SourceDestinationItem } from '../../types/template.js';
|
|
2
|
-
export declare class TemplateEngine {
|
|
3
|
-
private handlebars;
|
|
4
|
-
constructor();
|
|
5
|
-
/**
|
|
6
|
-
* Load template content from file path
|
|
7
|
-
*
|
|
8
|
-
* @param templatePath - Template path (bare name, relative, or absolute)
|
|
9
|
-
*/
|
|
10
|
-
loadTemplate(templatePath: string): Promise<string>;
|
|
11
|
-
/**
|
|
12
|
-
* Apply template with user code and variable substitution
|
|
13
|
-
*/
|
|
14
|
-
applyTemplate(template: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): string;
|
|
15
|
-
/**
|
|
16
|
-
* Process template with user code
|
|
17
|
-
*/
|
|
18
|
-
process(templatePath: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): Promise<string>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=template-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/template-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAoB;;IAUtC;;;;OAIG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWzD;;OAEG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM;IAoBT;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAWnB"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import fs from 'fs-extra';
|
|
2
|
-
import Handlebars from 'handlebars';
|
|
3
|
-
import { processTemplateVariables } from './serializer.js';
|
|
4
|
-
import { resolveAsset } from '../../core/asset-resolver.js';
|
|
5
|
-
export class TemplateEngine {
|
|
6
|
-
handlebars;
|
|
7
|
-
constructor() {
|
|
8
|
-
// Create a new Handlebars instance
|
|
9
|
-
this.handlebars = Handlebars.create();
|
|
10
|
-
// Register equality helper for conditional window assignment
|
|
11
|
-
this.handlebars.registerHelper('eq', (a, b) => a === b);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Load template content from file path
|
|
15
|
-
*
|
|
16
|
-
* @param templatePath - Template path (bare name, relative, or absolute)
|
|
17
|
-
*/
|
|
18
|
-
async loadTemplate(templatePath) {
|
|
19
|
-
// Use unified asset resolver (works in both local and Docker)
|
|
20
|
-
const resolvedPath = resolveAsset(templatePath, 'template');
|
|
21
|
-
if (!(await fs.pathExists(resolvedPath))) {
|
|
22
|
-
throw new Error(`Template file not found: ${resolvedPath}`);
|
|
23
|
-
}
|
|
24
|
-
return await fs.readFile(resolvedPath, 'utf-8');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Apply template with user code and variable substitution
|
|
28
|
-
*/
|
|
29
|
-
applyTemplate(template, userCode, sources, destinations, collector, build) {
|
|
30
|
-
// Process template variables to serialize config objects
|
|
31
|
-
const processedVariables = processTemplateVariables({
|
|
32
|
-
sources,
|
|
33
|
-
destinations,
|
|
34
|
-
collector,
|
|
35
|
-
});
|
|
36
|
-
// Prepare template data for Handlebars
|
|
37
|
-
const templateData = {
|
|
38
|
-
CODE: userCode,
|
|
39
|
-
build: build || {},
|
|
40
|
-
...processedVariables,
|
|
41
|
-
};
|
|
42
|
-
// Compile and execute the template
|
|
43
|
-
const compiledTemplate = this.handlebars.compile(template);
|
|
44
|
-
return compiledTemplate(templateData);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Process template with user code
|
|
48
|
-
*/
|
|
49
|
-
async process(templatePath, userCode, sources, destinations, collector, build) {
|
|
50
|
-
const template = await this.loadTemplate(templatePath);
|
|
51
|
-
return this.applyTemplate(template, userCode, sources, destinations, collector, build);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=template-engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/commands/bundle/template-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,OAAO,cAAc;IACjB,UAAU,CAAoB;IAEtC;QACE,mCAAmC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QAEtC,6DAA6D;QAC7D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,YAAoB;QACrC,8DAA8D;QAC9D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,aAAa,CACX,QAAgB,EAChB,QAAgB,EAChB,OAA8C,EAC9C,YAAmD,EACnD,SAAkC,EAClC,KAA+B;QAE/B,yDAAyD;QACzD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;YAClD,OAAO;YACP,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,GAAG,kBAAkB;SACtB,CAAC;QAEF,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,QAAgB,EAChB,OAA8C,EAC9C,YAAmD,EACnD,SAAkC,EAClC,KAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,aAAa,CACvB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Defaults
|
|
3
|
-
*
|
|
4
|
-
* Platform-specific default build options.
|
|
5
|
-
*/
|
|
6
|
-
import type { BuildOptions } from '../types/bundle.js';
|
|
7
|
-
/**
|
|
8
|
-
* Get default build configuration for platform.
|
|
9
|
-
*
|
|
10
|
-
* @param platform - Target platform ('web' or 'server')
|
|
11
|
-
* @param code - User code to include (required for BuildOptions)
|
|
12
|
-
* @param output - Output file path (optional, uses platform default)
|
|
13
|
-
* @returns Platform-specific default build options
|
|
14
|
-
*
|
|
15
|
-
* @remarks
|
|
16
|
-
* Provides sensible defaults for each platform:
|
|
17
|
-
* - web: IIFE format for browser, ES2020 target
|
|
18
|
-
* - server: ESM format for Node.js, Node18 target
|
|
19
|
-
*/
|
|
20
|
-
export declare function getDefaultBuildOptions(platform: 'web' | 'server', code: string, output?: string): Partial<BuildOptions>;
|
|
21
|
-
/**
|
|
22
|
-
* Ensure build options have all required fields.
|
|
23
|
-
*
|
|
24
|
-
* @param buildOptions - Build options (possibly incomplete)
|
|
25
|
-
* @param flowPlatform - Platform from Flow.Config
|
|
26
|
-
* @returns Complete build options with defaults filled in
|
|
27
|
-
*
|
|
28
|
-
* @remarks
|
|
29
|
-
* Validates and fills in missing required fields using platform-specific defaults.
|
|
30
|
-
* Throws error if critical fields (code, output) are missing.
|
|
31
|
-
*/
|
|
32
|
-
export declare function ensureBuildOptions(buildOptions: Partial<BuildOptions>, flowPlatform: 'web' | 'server'): BuildOptions;
|
|
33
|
-
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,EACnC,YAAY,EAAE,KAAK,GAAG,QAAQ,GAC7B,YAAY,CAmBd"}
|