@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 +6 -0
- package/build/esm/app.mjs +84 -68
- package/build/esm/shared/magic-module.mjs +5 -3
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/typescript/app.d.ts +18 -13
- package/build/typescript/app.d.ts.map +1 -1
- package/build/typescript/features/env.d.ts +3 -5
- package/build/typescript/features/env.d.ts.map +1 -1
- package/build/typescript/features/request-router.d.ts +2 -2
- package/build/typescript/shared/magic-module.d.ts +3 -3
- package/build/typescript/shared/magic-module.d.ts.map +1 -1
- package/package.json +10 -1
- package/source/app.ts +112 -101
- package/source/shared/magic-module.ts +10 -4
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
|
|
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
|
|
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({
|
|
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
|
-
|
|
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
|
-
|
|
454
|
+
import '@quilted/quilt/globals';
|
|
439
455
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
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
|
-
|
|
445
|
-
|
|
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
|
-
|
|
450
|
-
|
|
465
|
+
const router = new RequestRouter();
|
|
466
|
+
const assets = new BrowserAssets();
|
|
451
467
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
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
|
-
|
|
460
|
-
|
|
475
|
+
return response;
|
|
476
|
+
});
|
|
461
477
|
|
|
462
|
-
|
|
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:
|
|
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 !==
|
|
23
|
+
if (source !== virtualModuleAlias)
|
|
22
24
|
return null;
|
|
23
25
|
const code = await getSource.call(this);
|
|
24
26
|
return {
|