@hozu/bundle 0.10.0 → 0.11.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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface ComponentBundle {
|
|
|
3
3
|
urls: Record<string, string>;
|
|
4
4
|
files: Record<string, string>;
|
|
5
5
|
diagnostics: Diagnostic[];
|
|
6
|
+
/** Each feature's fetch module for the browser (ADR 0049), by feature id. */
|
|
7
|
+
fetches: Record<string, string>;
|
|
6
8
|
}
|
|
7
9
|
export declare function bundleComponents(project: BuildResult, { minify }?: {
|
|
8
10
|
minify?: boolean;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,UAAU,EAAQ,MAAM,eAAe,CAAA;AAG9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,UAAU,EAAQ,MAAM,eAAe,CAAA;AAG9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAID,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,EAAE,MAAa,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,OAAO,CAAC,eAAe,CAAC,CAgD1B"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,8 @@ import { build } from 'esbuild';
|
|
|
4
4
|
const base = '/_hozu/c';
|
|
5
5
|
export async function bundleComponents(project, { minify = true } = {}) {
|
|
6
6
|
const entries = Object.entries(project.bindings.clients);
|
|
7
|
-
const out = { urls: {}, files: {}, diagnostics: [] };
|
|
7
|
+
const out = { urls: {}, files: {}, diagnostics: [], fetches: {} };
|
|
8
|
+
await bundleFetches(project, out, minify);
|
|
8
9
|
if (!entries.length)
|
|
9
10
|
return out;
|
|
10
11
|
const result = await build({
|
|
@@ -55,4 +56,45 @@ export async function bundleComponents(project, { minify = true } = {}) {
|
|
|
55
56
|
}
|
|
56
57
|
return out;
|
|
57
58
|
}
|
|
59
|
+
/** Each feature's fetch.ts, for the browser: one entry per feature, so a Node-only import names its feature (HZ081). */
|
|
60
|
+
async function bundleFetches(project, out, minify) {
|
|
61
|
+
for (const [feature, file] of Object.entries(project.bindings.fetches ?? {}).sort(([a], [b]) => a.localeCompare(b))) {
|
|
62
|
+
try {
|
|
63
|
+
const result = await build({
|
|
64
|
+
entryPoints: { [`fetch-${feature}`]: file },
|
|
65
|
+
bundle: true,
|
|
66
|
+
format: 'esm',
|
|
67
|
+
platform: 'browser',
|
|
68
|
+
target: 'es2022',
|
|
69
|
+
minify,
|
|
70
|
+
outdir: base,
|
|
71
|
+
entryNames: '[name]-[hash]',
|
|
72
|
+
define: { 'process.env.NODE_ENV': '"production"' },
|
|
73
|
+
metafile: true,
|
|
74
|
+
write: false,
|
|
75
|
+
logLevel: 'silent',
|
|
76
|
+
});
|
|
77
|
+
for (const f of result.outputFiles)
|
|
78
|
+
out.files[f.path.slice(f.path.indexOf(base))] = f.text;
|
|
79
|
+
const entry = Object.entries(result.metafile.outputs).find(([, meta]) => meta.entryPoint);
|
|
80
|
+
if (entry)
|
|
81
|
+
out.fetches[feature] = entry[0].slice(entry[0].indexOf(base));
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
const message = error.errors?.map((e) => e.text).join('; ') ?? String(error);
|
|
85
|
+
out.diagnostics.push({
|
|
86
|
+
code: 'HZ081',
|
|
87
|
+
severity: codes.HZ081.severity,
|
|
88
|
+
message: `fetch.ts of ${feature} does not bundle for the browser: ${message}`,
|
|
89
|
+
location: { feature, pointer: join('', 'features', feature, 'fetch'), source: null },
|
|
90
|
+
cause: "fetch.ts runs in the browser (and on the server for runs: 'either'), so it cannot import Node-only modules.",
|
|
91
|
+
fix: {
|
|
92
|
+
summary: "Move what needs Node (a database, node:fs, a secret) into a server resolver and mark that effect runs: 'server'",
|
|
93
|
+
snippet: "runs: 'server'",
|
|
94
|
+
patch: null,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
58
100
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAoB,KAAK,EAAmB,IAAI,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hozu/bundle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Bundles the client modules of Hozu client components with esbuild",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hozu",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"esbuild": "0.28.2",
|
|
43
|
-
"@hozu/core": "0.
|
|
43
|
+
"@hozu/core": "0.11.0"
|
|
44
44
|
},
|
|
45
45
|
"sideEffects": false
|
|
46
46
|
}
|