@quilted/rollup 0.4.4 → 0.4.6
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 +114 -0
- package/build/esm/app.mjs +6 -4
- package/build/esm/features/assets.mjs +74 -28
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/typescript/app.d.ts +9 -3
- package/build/typescript/app.d.ts.map +1 -1
- package/build/typescript/features/assets.d.ts.map +1 -1
- package/package.json +2 -2
- package/source/app.ts +20 -6
- package/source/features/assets.ts +130 -34
|
@@ -294,7 +294,9 @@ export interface AppRuntime {
|
|
|
294
294
|
/**
|
|
295
295
|
* The directory to output the application’s assets into.
|
|
296
296
|
*/
|
|
297
|
-
directory?: string
|
|
297
|
+
directory?: string | ((options: {
|
|
298
|
+
baseURL: string;
|
|
299
|
+
}) => string);
|
|
298
300
|
};
|
|
299
301
|
/**
|
|
300
302
|
* Customizations to the server for this runtime.
|
|
@@ -309,7 +311,11 @@ export interface AppRuntime {
|
|
|
309
311
|
* This function receives the current Rollup options and can return
|
|
310
312
|
* modified options or a partial override.
|
|
311
313
|
*/
|
|
312
|
-
rollup?(options: RollupOptions
|
|
314
|
+
rollup?(options: RollupOptions, quilt: {
|
|
315
|
+
assets: {
|
|
316
|
+
baseURL: string;
|
|
317
|
+
} & Omit<AppBrowserAssetsOptions, 'baseURL'>;
|
|
318
|
+
}): InputPluginOption;
|
|
313
319
|
};
|
|
314
320
|
}
|
|
315
321
|
export interface AppServerRuntime extends Omit<ServerRuntime, 'hono'> {
|
|
@@ -515,7 +521,7 @@ export declare function nodeAppServerRuntime({ host, port, format, }?: NodeAppSe
|
|
|
515
521
|
env: string;
|
|
516
522
|
output: {
|
|
517
523
|
options: {
|
|
518
|
-
format: "
|
|
524
|
+
format: "cjs" | "esm";
|
|
519
525
|
};
|
|
520
526
|
};
|
|
521
527
|
hono(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../source/app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../source/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../source/features/assets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKV,MAAM,EACN,aAAa,EACd,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../source/features/assets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKV,MAAM,EACN,aAAa,EACd,MAAM,QAAQ,CAAC;AAShB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,OAAO,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,MAAM,CAAC;CAChD;AAED,wBAAgB,aAAa,CAAC,eAAe,EAAE,oBAAoB,GAAG,MAAM,CAO3E;AA0WD,wBAAgB,SAAS,IAAI,MAAM,CAmBlC;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAW,EACX,OAAa,EACb,UAA4C,EAC5C,WAAkC,EAClC,aAAsC,GACvC,GAAE;IACD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB;;;EA+DL"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"access": "public",
|
|
7
7
|
"@quilted/registry": "https://registry.npmjs.org"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.6",
|
|
10
10
|
"engines": {
|
|
11
11
|
"node": ">=20.10.0"
|
|
12
12
|
},
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"@babel/preset-react": "^7.26.0",
|
|
138
138
|
"@babel/preset-typescript": "^7.26.0",
|
|
139
139
|
"@mdn/browser-compat-data": "^5.6.0",
|
|
140
|
-
"@quilted/assets": "^0.1.
|
|
140
|
+
"@quilted/assets": "^0.1.10",
|
|
141
141
|
"@quilted/babel": "^0.2.4",
|
|
142
142
|
"@quilted/graphql": "^3.3.9",
|
|
143
143
|
"@rollup/plugin-alias": "^5.1.0",
|
package/source/app.ts
CHANGED
|
@@ -376,7 +376,7 @@ export interface AppRuntime {
|
|
|
376
376
|
/**
|
|
377
377
|
* The directory to output the application’s assets into.
|
|
378
378
|
*/
|
|
379
|
-
directory?: string;
|
|
379
|
+
directory?: string | ((options: {baseURL: string}) => string);
|
|
380
380
|
};
|
|
381
381
|
|
|
382
382
|
/**
|
|
@@ -393,7 +393,12 @@ export interface AppRuntime {
|
|
|
393
393
|
* This function receives the current Rollup options and can return
|
|
394
394
|
* modified options or a partial override.
|
|
395
395
|
*/
|
|
396
|
-
rollup?(
|
|
396
|
+
rollup?(
|
|
397
|
+
options: RollupOptions,
|
|
398
|
+
quilt: {
|
|
399
|
+
assets: {baseURL: string} & Omit<AppBrowserAssetsOptions, 'baseURL'>;
|
|
400
|
+
},
|
|
401
|
+
): InputPluginOption;
|
|
397
402
|
};
|
|
398
403
|
}
|
|
399
404
|
|
|
@@ -499,6 +504,7 @@ export async function quiltApp({
|
|
|
499
504
|
export async function quiltAppBrowser(options: AppBrowserOptions = {}) {
|
|
500
505
|
const {root = process.cwd(), assets, runtime} = options;
|
|
501
506
|
const project = Project.load(root);
|
|
507
|
+
const baseURL = assets?.baseURL ?? '/assets/';
|
|
502
508
|
|
|
503
509
|
const [plugins, browserGroup] = await Promise.all([
|
|
504
510
|
quiltAppBrowserPlugins(options),
|
|
@@ -513,13 +519,19 @@ export async function quiltAppBrowser(options: AppBrowserOptions = {}) {
|
|
|
513
519
|
rollupGenerateOptionsForBrowsers(browserGroup.browsers),
|
|
514
520
|
]);
|
|
515
521
|
|
|
522
|
+
const outputDirectory = assets?.directory
|
|
523
|
+
? assets.directory
|
|
524
|
+
: runtime?.assets?.directory
|
|
525
|
+
? typeof runtime.assets.directory === 'function'
|
|
526
|
+
? runtime.assets.directory({baseURL})
|
|
527
|
+
: runtime.assets.directory
|
|
528
|
+
: `build/assets`;
|
|
529
|
+
|
|
516
530
|
const rollupOptions = {
|
|
517
531
|
plugins,
|
|
518
532
|
output: {
|
|
519
533
|
format: isESM ? 'esm' : 'systemjs',
|
|
520
|
-
dir: project.resolve(
|
|
521
|
-
assets?.directory ?? runtime?.assets?.directory ?? `build/assets`,
|
|
522
|
-
),
|
|
534
|
+
dir: project.resolve(outputDirectory),
|
|
523
535
|
entryFileNames: `[name]${targetFilenamePart}.[hash].js`,
|
|
524
536
|
assetFileNames: `[name]${targetFilenamePart}.[hash].[ext]`,
|
|
525
537
|
chunkFileNames: `[name]${targetFilenamePart}.[hash].js`,
|
|
@@ -533,7 +545,9 @@ export async function quiltAppBrowser(options: AppBrowserOptions = {}) {
|
|
|
533
545
|
} satisfies RollupOptions;
|
|
534
546
|
|
|
535
547
|
if (runtime?.browser?.rollup) {
|
|
536
|
-
rollupOptions.plugins.push(
|
|
548
|
+
rollupOptions.plugins.push(
|
|
549
|
+
runtime.browser.rollup(rollupOptions, {assets: {baseURL, ...assets}}),
|
|
550
|
+
);
|
|
537
551
|
}
|
|
538
552
|
|
|
539
553
|
return rollupOptions;
|
|
@@ -12,7 +12,11 @@ import type {
|
|
|
12
12
|
} from 'rollup';
|
|
13
13
|
import * as mime from 'mrmime';
|
|
14
14
|
|
|
15
|
-
import type {
|
|
15
|
+
import type {
|
|
16
|
+
AssetBuildManifest,
|
|
17
|
+
AssetBuildAsset,
|
|
18
|
+
AssetBuildModuleEntry,
|
|
19
|
+
} from '@quilted/assets';
|
|
16
20
|
|
|
17
21
|
export interface AssetManifestOptions {
|
|
18
22
|
file: string;
|
|
@@ -56,6 +60,7 @@ async function writeManifestForBundle(
|
|
|
56
60
|
throw new Error(`Could not find any entries in your rollup bundle...`);
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
// Map chunk fileName → its imports (JS chunks + CSS assets), for recursive dep walking
|
|
59
64
|
const dependencyMap = new Map<string, string[]>();
|
|
60
65
|
|
|
61
66
|
for (const output of outputs) {
|
|
@@ -63,6 +68,14 @@ async function writeManifestForBundle(
|
|
|
63
68
|
dependencyMap.set(output.fileName, output.imports);
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
// Map facadeModuleId → chunk fileName, for resolving dynamic imports
|
|
72
|
+
const facadeToChunk = new Map<string, string>();
|
|
73
|
+
for (const output of outputs) {
|
|
74
|
+
if (output.type === 'chunk' && output.facadeModuleId) {
|
|
75
|
+
facadeToChunk.set(output.facadeModuleId, output.fileName);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
66
79
|
const assets: Promise<AssetBuildAsset>[] = [];
|
|
67
80
|
const assetIdMap = new Map<string, number>();
|
|
68
81
|
|
|
@@ -91,9 +104,9 @@ async function writeManifestForBundle(
|
|
|
91
104
|
for (const output of outputs) {
|
|
92
105
|
if (output.type === 'asset') {
|
|
93
106
|
if (output.name && output.fileName.endsWith('.js')) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
getAssetId,
|
|
107
|
+
// Standalone JS asset (e.g. system.js loader) — treated as a single-script entry
|
|
108
|
+
manifest.modules[output.name] = makeEntry({
|
|
109
|
+
script: getAssetId(output.fileName),
|
|
97
110
|
});
|
|
98
111
|
|
|
99
112
|
manifest.entries[`./${output.name}`] = output.name;
|
|
@@ -124,18 +137,30 @@ async function writeManifestForBundle(
|
|
|
124
137
|
}
|
|
125
138
|
|
|
126
139
|
const isCSS = moduleID.endsWith('.css');
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
140
|
+
|
|
141
|
+
if (isCSS) {
|
|
142
|
+
// CSS-only entry: rollup creates a JS wrapper we exclude; keep only the CSS file
|
|
143
|
+
const cssFiles = [output.fileName, ...output.imports].filter((f) =>
|
|
144
|
+
f.endsWith('.css'),
|
|
145
|
+
);
|
|
146
|
+
manifest.modules[moduleID] = makeEntry({
|
|
147
|
+
style: cssFiles[0] != null ? getAssetId(cssFiles[0]) : undefined,
|
|
148
|
+
styleSync:
|
|
149
|
+
cssFiles.length > 1 ? cssFiles.slice(1).map(getAssetId) : undefined,
|
|
150
|
+
});
|
|
151
|
+
} else {
|
|
152
|
+
// JS entry: separate sync deps from CSS, and resolve dynamic imports
|
|
153
|
+
const asyncFileNames = (output.dynamicImports ?? [])
|
|
154
|
+
.map((mid) => facadeToChunk.get(mid))
|
|
155
|
+
.filter((f): f is string => f != null);
|
|
156
|
+
|
|
157
|
+
manifest.modules[moduleID] = buildModuleEntry(
|
|
158
|
+
output.fileName,
|
|
159
|
+
output.imports,
|
|
160
|
+
asyncFileNames,
|
|
161
|
+
{dependencyMap, getAssetId},
|
|
162
|
+
);
|
|
163
|
+
}
|
|
139
164
|
}
|
|
140
165
|
|
|
141
166
|
manifest.assets = await Promise.all(assets);
|
|
@@ -228,8 +253,48 @@ function defaultModuleID({imported}: {imported: string}) {
|
|
|
228
253
|
: imported;
|
|
229
254
|
}
|
|
230
255
|
|
|
231
|
-
|
|
232
|
-
|
|
256
|
+
/**
|
|
257
|
+
* Creates a compact `AssetBuildModuleEntry` object with numeric string keys,
|
|
258
|
+
* omitting any positions that are undefined or empty.
|
|
259
|
+
*
|
|
260
|
+
* The result is typed as the tuple `AssetBuildModuleEntry` but serialized as
|
|
261
|
+
* a plain object so the manifest stays compact (no JSON nulls for gaps).
|
|
262
|
+
*/
|
|
263
|
+
function makeEntry({
|
|
264
|
+
script,
|
|
265
|
+
style,
|
|
266
|
+
scriptSync,
|
|
267
|
+
styleSync,
|
|
268
|
+
scriptAsync,
|
|
269
|
+
styleAsync,
|
|
270
|
+
}: {
|
|
271
|
+
script?: number;
|
|
272
|
+
style?: number;
|
|
273
|
+
scriptSync?: number[];
|
|
274
|
+
styleSync?: number[];
|
|
275
|
+
scriptAsync?: number[];
|
|
276
|
+
styleAsync?: number[];
|
|
277
|
+
}): AssetBuildModuleEntry {
|
|
278
|
+
const entry: Record<number, number | number[]> = {};
|
|
279
|
+
if (script != null) entry[0] = script;
|
|
280
|
+
if (style != null) entry[1] = style;
|
|
281
|
+
if (scriptSync?.length) entry[2] = scriptSync;
|
|
282
|
+
if (styleSync?.length) entry[3] = styleSync;
|
|
283
|
+
if (scriptAsync?.length) entry[4] = scriptAsync;
|
|
284
|
+
if (styleAsync?.length) entry[5] = styleAsync;
|
|
285
|
+
return entry as unknown as AssetBuildModuleEntry;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Builds a module entry for a JS chunk, separating sync/async JS and CSS deps.
|
|
290
|
+
*
|
|
291
|
+
* `output.imports` may contain both JS chunks and CSS assets — rollup CSS plugins
|
|
292
|
+
* emit CSS as synthetic imports on the JS chunk that owns them.
|
|
293
|
+
*/
|
|
294
|
+
function buildModuleEntry(
|
|
295
|
+
entryFileName: string,
|
|
296
|
+
syncImports: string[],
|
|
297
|
+
asyncFileNames: string[],
|
|
233
298
|
{
|
|
234
299
|
dependencyMap,
|
|
235
300
|
getAssetId,
|
|
@@ -238,27 +303,58 @@ function createAssetsEntry(
|
|
|
238
303
|
getAssetId(file: string): number;
|
|
239
304
|
},
|
|
240
305
|
) {
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
306
|
+
const syncJsFiles = new Set<string>();
|
|
307
|
+
const entryStyleFiles: string[] = [];
|
|
308
|
+
const syncStyleFiles = new Set<string>();
|
|
309
|
+
|
|
310
|
+
for (const file of syncImports) {
|
|
311
|
+
if (file.endsWith('.css')) {
|
|
312
|
+
entryStyleFiles.push(file);
|
|
313
|
+
} else {
|
|
314
|
+
visitJsDep(file, syncJsFiles, syncStyleFiles, dependencyMap);
|
|
250
315
|
}
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
for (const file of files) {
|
|
254
|
-
addFile(file);
|
|
255
316
|
}
|
|
256
317
|
|
|
257
|
-
|
|
258
|
-
|
|
318
|
+
// CSS from each dynamic import chunk and its transitive sync deps
|
|
319
|
+
const asyncStyleFiles = new Set<string>();
|
|
320
|
+
const visitedAsync = new Set<string>();
|
|
321
|
+
for (const asyncFileName of asyncFileNames) {
|
|
322
|
+
visitJsDep(asyncFileName, visitedAsync, asyncStyleFiles, dependencyMap);
|
|
259
323
|
}
|
|
260
324
|
|
|
261
|
-
return
|
|
325
|
+
return makeEntry({
|
|
326
|
+
script: getAssetId(entryFileName),
|
|
327
|
+
style:
|
|
328
|
+
entryStyleFiles[0] != null ? getAssetId(entryStyleFiles[0]) : undefined,
|
|
329
|
+
scriptSync:
|
|
330
|
+
syncJsFiles.size > 0 ? [...syncJsFiles].map(getAssetId) : undefined,
|
|
331
|
+
styleSync:
|
|
332
|
+
syncStyleFiles.size > 0 ? [...syncStyleFiles].map(getAssetId) : undefined,
|
|
333
|
+
scriptAsync:
|
|
334
|
+
asyncFileNames.length > 0 ? asyncFileNames.map(getAssetId) : undefined,
|
|
335
|
+
styleAsync:
|
|
336
|
+
asyncStyleFiles.size > 0
|
|
337
|
+
? [...asyncStyleFiles].map(getAssetId)
|
|
338
|
+
: undefined,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function visitJsDep(
|
|
343
|
+
file: string,
|
|
344
|
+
visitedJs: Set<string>,
|
|
345
|
+
styleFiles: Set<string>,
|
|
346
|
+
dependencyMap: Map<string, string[]>,
|
|
347
|
+
) {
|
|
348
|
+
if (visitedJs.has(file)) return;
|
|
349
|
+
visitedJs.add(file);
|
|
350
|
+
|
|
351
|
+
for (const dep of dependencyMap.get(file) ?? []) {
|
|
352
|
+
if (dep.endsWith('.css')) {
|
|
353
|
+
styleFiles.add(dep);
|
|
354
|
+
} else {
|
|
355
|
+
visitJsDep(dep, visitedJs, styleFiles, dependencyMap);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
262
358
|
}
|
|
263
359
|
|
|
264
360
|
const QUERY_PATTERN = /\?.*$/s;
|