@quilted/rollup 0.2.5 → 0.2.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @quilted/rollup
2
2
 
3
+ ## 0.2.6
4
+
5
+ ### Patch Changes
6
+
7
+ - [`e77a644c`](https://github.com/lemonmade/quilt/commit/e77a644cfaf528cd635f4bc26814c7ccb654e515) Thanks [@lemonmade](https://github.com/lemonmade)! - Add more development features to Vite plugin
8
+
3
9
  ## 0.2.5
4
10
 
5
11
  ### Patch Changes
package/build/esm/app.mjs CHANGED
@@ -142,6 +142,8 @@ async function quiltAppBrowser({
142
142
  systemJS({ minify }),
143
143
  replaceProcessEnv({ mode }),
144
144
  magicModuleEnv({ ...resolveEnvOption(env), mode }),
145
+ magicModuleAppComponent({ entry: app, root: project.root }),
146
+ magicModuleAppBrowserEntry(module),
145
147
  sourceCode({
146
148
  mode,
147
149
  targets: browserGroup.browsers,
@@ -197,11 +199,6 @@ async function quiltAppBrowser({
197
199
  })
198
200
  );
199
201
  }
200
- const appEntry = await resolveAppEntry(app, project);
201
- if (appEntry) {
202
- plugins.push(magicModuleAppComponent({ entry: appEntry }));
203
- }
204
- plugins.push(magicModuleAppBrowserEntry(module));
205
202
  if (graphql) {
206
203
  const { graphql: graphql2 } = await import('./features/graphql.mjs');
207
204
  plugins.push(
@@ -239,17 +236,13 @@ async function quiltAppBrowser({
239
236
  return plugins;
240
237
  }
241
238
  function quiltAppBrowserInput({
242
- root = process.cwd(),
239
+ root,
243
240
  entry
244
241
  } = {}) {
245
- const project = Project.load(root);
246
242
  return {
247
243
  name: "@quilted/app-browser/input",
248
244
  async options(options) {
249
- const finalEntry = normalizeRollupInput(options.input) ?? (entry ? project.resolve(entry) : await project.glob("{browser,client,web}.{ts,tsx,mjs,js,jsx}", {
250
- nodir: true,
251
- absolute: true
252
- }).then((files) => files[0])) ?? MAGIC_MODULE_ENTRY;
245
+ const finalEntry = normalizeRollupInput(options.input) ?? await sourceForAppBrowser({ entry, root }) ?? MAGIC_MODULE_ENTRY;
253
246
  return {
254
247
  ...options,
255
248
  // If we are using the "magic entry", give it an explicit name of `browser`.
@@ -323,6 +316,12 @@ async function quiltAppServer({
323
316
  ...nodePlugins,
324
317
  replaceProcessEnv({ mode }),
325
318
  magicModuleEnv({ ...resolveEnvOption(env), mode }),
319
+ magicModuleAppComponent({ entry: app, root: project.root }),
320
+ magicModuleAppServerEntry({
321
+ assets: { baseURL }
322
+ }),
323
+ magicModuleAppRequestRouter({ entry, root: project.root }),
324
+ magicModuleAppAssetManifests(),
326
325
  sourceCode({
327
326
  mode,
328
327
  targets: ["current node"],
@@ -360,21 +359,6 @@ async function quiltAppServer({
360
359
  tsconfigAliases({ root: project.root }),
361
360
  monorepoPackageAliases({ root: project.root })
362
361
  ];
363
- const appEntry = await resolveAppEntry(app, project);
364
- if (appEntry) {
365
- plugins.push(magicModuleAppComponent({ entry: appEntry }));
366
- }
367
- const serverEntry = entry ? project.resolve(entry) : await project.glob("{server,service,backend}.{ts,tsx,mjs,js,jsx}", {
368
- nodir: true,
369
- absolute: true
370
- }).then((files) => files[0]);
371
- plugins.push(
372
- magicModuleAppServerEntry({
373
- assets: { baseURL }
374
- }),
375
- magicModuleAppRequestRouter({ entry: serverEntry }),
376
- magicModuleAppAssetManifests()
377
- );
378
362
  if (graphql) {
379
363
  const { graphql: graphql2 } = await import('./features/graphql.mjs');
380
364
  plugins.push(graphql2({ manifest: false }));
@@ -419,48 +403,80 @@ function quiltAppServerInput({
419
403
  }
420
404
  };
421
405
  }
422
- function magicModuleAppComponent({ entry }) {
406
+ function magicModuleAppComponent({
407
+ entry,
408
+ root = process.cwd()
409
+ }) {
423
410
  return createMagicModulePlugin({
424
411
  name: "@quilted/magic-module/app",
425
412
  module: MAGIC_MODULE_APP_COMPONENT,
426
- alias: entry
413
+ alias: entry ?? async function magicModuleApp() {
414
+ const project = Project.load(root);
415
+ const { packageJSON } = project;
416
+ if (typeof packageJSON.raw.main === "string") {
417
+ return project.resolve(packageJSON.raw.main);
418
+ }
419
+ const rootEntry = packageJSON.raw.exports?.["."];
420
+ if (typeof rootEntry === "string") {
421
+ return project.resolve(rootEntry);
422
+ }
423
+ const globbed = await project.glob(
424
+ "{App,app,index}.{ts,tsx,mjs,js,jsx}",
425
+ {
426
+ nodir: true,
427
+ absolute: true
428
+ }
429
+ );
430
+ return globbed[0];
431
+ }
427
432
  });
428
433
  }
429
434
  function magicModuleAppRequestRouter({
430
- entry
435
+ entry,
436
+ root = process.cwd()
431
437
  } = {}) {
432
438
  return createMagicModulePlugin({
433
439
  name: "@quilted/magic-module/app-request-router",
434
440
  module: MAGIC_MODULE_REQUEST_ROUTER,
435
- alias: entry,
436
- source: entry ? void 0 : async function source() {
441
+ alias: entry ?? async function magicModuleRequestRouter() {
442
+ const project = Project.load(root);
443
+ const globbed = await project.glob(
444
+ "{server,service,backend}.{ts,tsx,mjs,js,jsx}",
445
+ {
446
+ nodir: true,
447
+ absolute: true
448
+ }
449
+ );
450
+ return globbed[0];
451
+ },
452
+ async source() {
437
453
  return multiline`
438
- import '@quilted/quilt/globals';
454
+ import '@quilted/quilt/globals';
439
455
 
440
- import {jsx} from 'react/jsx-runtime';
441
- import {RequestRouter} from '@quilted/quilt/request-router';
442
- import {renderToResponse} from '@quilted/quilt/server';
456
+ import {jsx} from 'react/jsx-runtime';
457
+ import {RequestRouter} from '@quilted/quilt/request-router';
458
+ import {renderToResponse} from '@quilted/quilt/server';
443
459
 
444
- import App from ${JSON.stringify(MAGIC_MODULE_APP_COMPONENT)};
445
- import {BrowserAssets} from ${JSON.stringify(
460
+ import App from ${JSON.stringify(MAGIC_MODULE_APP_COMPONENT)};
461
+ import {BrowserAssets} from ${JSON.stringify(
446
462
  MAGIC_MODULE_BROWSER_ASSETS
447
463
  )};
448
464
 
449
- const router = new RequestRouter();
450
- const assets = new BrowserAssets();
465
+ const router = new RequestRouter();
466
+ const assets = new BrowserAssets();
451
467
 
452
- // For all GET requests, render our React application.
453
- router.get(async (request) => {
454
- const response = await renderToResponse(jsx(App), {
455
- request,
456
- assets,
457
- });
468
+ // For all GET requests, render our React application.
469
+ router.get(async (request) => {
470
+ const response = await renderToResponse(jsx(App), {
471
+ request,
472
+ assets,
473
+ });
458
474
 
459
- return response;
460
- });
475
+ return response;
476
+ });
461
477
 
462
- export default router;
463
- `;
478
+ export default router;
479
+ `;
464
480
  }
465
481
  });
466
482
  }
@@ -593,6 +609,24 @@ function magicModuleAppAssetManifests() {
593
609
  }
594
610
  });
595
611
  }
612
+ async function sourceForAppBrowser({
613
+ entry,
614
+ root = process.cwd()
615
+ }) {
616
+ const project = Project.load(root);
617
+ if (entry) {
618
+ return project.resolve(entry);
619
+ } else {
620
+ const files = await project.glob(
621
+ "{browser,client,web}.{ts,tsx,mjs,js,jsx}",
622
+ {
623
+ nodir: true,
624
+ absolute: true
625
+ }
626
+ );
627
+ return files[0];
628
+ }
629
+ }
596
630
  const FRAMEWORK_CHUNK_NAME = "framework";
597
631
  const POLYFILLS_CHUNK_NAME = "polyfills";
598
632
  const VENDOR_CHUNK_NAME = "vendor";
@@ -668,23 +702,5 @@ function createManualChunksSorter() {
668
702
  return `${bundleBaseName}-${relativeId.split(path.sep)[0]?.split(".")[0]}`;
669
703
  };
670
704
  }
671
- async function resolveAppEntry(entry, project) {
672
- if (entry) {
673
- return project.resolve(entry);
674
- }
675
- const { packageJSON } = project;
676
- if (typeof packageJSON.raw.main === "string") {
677
- return project.resolve(packageJSON.raw.main);
678
- }
679
- const rootEntry = packageJSON.raw.exports?.["."];
680
- if (typeof rootEntry === "string") {
681
- return project.resolve(rootEntry);
682
- }
683
- const globbed = await project.glob("{App,app,index}.{ts,tsx,mjs,js,jsx}", {
684
- nodir: true,
685
- absolute: true
686
- });
687
- return globbed[0];
688
- }
689
705
 
690
- export { MAGIC_MODULE_APP_COMPONENT, MAGIC_MODULE_BROWSER_ASSETS, MAGIC_MODULE_ENTRY, MAGIC_MODULE_REQUEST_ROUTER, magicModuleAppAssetManifests, magicModuleAppBrowserEntry, magicModuleAppComponent, magicModuleAppRequestRouter, magicModuleAppServerEntry, quiltAppBrowser, quiltAppBrowserInput, quiltAppBrowserOptions, quiltAppOptions, quiltAppServer, quiltAppServerInput, quiltAppServerOptions };
706
+ export { MAGIC_MODULE_APP_COMPONENT, MAGIC_MODULE_BROWSER_ASSETS, MAGIC_MODULE_ENTRY, MAGIC_MODULE_REQUEST_ROUTER, magicModuleAppAssetManifests, magicModuleAppBrowserEntry, magicModuleAppComponent, magicModuleAppRequestRouter, magicModuleAppServerEntry, quiltAppBrowser, quiltAppBrowserInput, quiltAppBrowserOptions, quiltAppOptions, quiltAppServer, quiltAppServerInput, quiltAppServerOptions, sourceForAppBrowser };
@@ -7,18 +7,20 @@ function createMagicModulePlugin({
7
7
  source: getSource,
8
8
  sideEffects = false
9
9
  }) {
10
+ const virtualModuleAlias = `${VIRTUAL_MODULE_PREFIX}${module}${VIRTUAL_MODULE_POSTFIX}`;
10
11
  return {
11
12
  name,
12
- resolveId(id) {
13
+ async resolveId(id) {
13
14
  if (id !== module)
14
15
  return null;
16
+ const resolved = (typeof alias === "function" ? await alias() : alias) ?? virtualModuleAlias;
15
17
  return {
16
- id: alias,
18
+ id: resolved,
17
19
  moduleSideEffects: sideEffects ? "no-treeshake" : void 0
18
20
  };
19
21
  },
20
22
  load: getSource ? async function load(source) {
21
- if (source !== alias)
23
+ if (source !== virtualModuleAlias)
22
24
  return null;
23
25
  const code = await getSource.call(this);
24
26
  return {