@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.
@@ -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): InputPluginOption;
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: "esm" | "cjs";
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;AAKhB,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;AA8QD,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"}
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.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.9",
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?(options: RollupOptions): InputPluginOption;
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(runtime.browser.rollup(rollupOptions));
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 {AssetBuildManifest, AssetBuildAsset} from '@quilted/assets';
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
- manifest.modules[output.name] = createAssetsEntry([output.fileName], {
95
- dependencyMap,
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
- const moduleFiles = [output.fileName, ...output.imports];
128
-
129
- manifest.modules[moduleID] = createAssetsEntry(
130
- // When an entrypoint is a CSS file, Rollup creates an unnecessary JavaScript file
131
- // as the entrypoint of the module. We will exclude the JavaScript file, so only
132
- // the CSS file is included in the final manifest.
133
- isCSS ? moduleFiles.filter((file) => file.endsWith('.css')) : moduleFiles,
134
- {
135
- dependencyMap,
136
- getAssetId,
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
- function createAssetsEntry(
232
- files: string[],
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 assets: number[] = [];
242
-
243
- const allFiles = new Set<string>();
244
- const addFile = (file: string) => {
245
- if (allFiles.has(file)) return;
246
- allFiles.add(file);
247
-
248
- for (const dependency of dependencyMap.get(file) ?? []) {
249
- addFile(dependency);
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
- for (const file of allFiles) {
258
- assets.push(getAssetId(file));
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 assets;
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;