@trebired/bundler 3.7.0 → 4.1.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/CHANGELOG.md +22 -0
- package/README.md +198 -1
- package/dist/core/discovery/aggregate.d.ts +5 -1
- package/dist/core/discovery/aggregate.d.ts.map +1 -1
- package/dist/core/discovery/aggregate.js +4 -2
- package/dist/core/discovery/aggregate.js.map +1 -1
- package/dist/core/discovery/exports.d.ts +17 -0
- package/dist/core/discovery/exports.d.ts.map +1 -0
- package/dist/core/discovery/exports.js +106 -0
- package/dist/core/discovery/exports.js.map +1 -0
- package/dist/core/discovery/normalize.d.ts.map +1 -1
- package/dist/core/discovery/normalize.js +1 -0
- package/dist/core/discovery/normalize.js.map +1 -1
- package/dist/core/discovery/resolve.d.ts.map +1 -1
- package/dist/core/discovery/resolve.js +16 -8
- package/dist/core/discovery/resolve.js.map +1 -1
- package/dist/core/discovery/shared.d.ts +1 -0
- package/dist/core/discovery/shared.d.ts.map +1 -1
- package/dist/core/discovery/shared.js.map +1 -1
- package/dist/core/frontend_app/assets.d.ts +5 -0
- package/dist/core/frontend_app/assets.d.ts.map +1 -0
- package/dist/core/frontend_app/assets.js +74 -0
- package/dist/core/frontend_app/assets.js.map +1 -0
- package/dist/core/frontend_app/build.d.ts +5 -0
- package/dist/core/frontend_app/build.d.ts.map +1 -0
- package/dist/core/frontend_app/build.js +70 -0
- package/dist/core/frontend_app/build.js.map +1 -0
- package/dist/core/frontend_app/config.d.ts +6 -0
- package/dist/core/frontend_app/config.d.ts.map +1 -0
- package/dist/core/frontend_app/config.js +180 -0
- package/dist/core/frontend_app/config.js.map +1 -0
- package/dist/core/frontend_app/defaults.d.ts +18 -0
- package/dist/core/frontend_app/defaults.d.ts.map +1 -0
- package/dist/core/frontend_app/defaults.js +75 -0
- package/dist/core/frontend_app/defaults.js.map +1 -0
- package/dist/core/frontend_app/global.d.ts +11 -0
- package/dist/core/frontend_app/global.d.ts.map +1 -0
- package/dist/core/frontend_app/global.js +36 -0
- package/dist/core/frontend_app/global.js.map +1 -0
- package/dist/core/frontend_app/hygiene.d.ts +6 -0
- package/dist/core/frontend_app/hygiene.d.ts.map +1 -0
- package/dist/core/frontend_app/hygiene.js +46 -0
- package/dist/core/frontend_app/hygiene.js.map +1 -0
- package/dist/core/frontend_app/index.d.ts +13 -0
- package/dist/core/frontend_app/index.d.ts.map +1 -0
- package/dist/core/frontend_app/index.js +13 -0
- package/dist/core/frontend_app/index.js.map +1 -0
- package/dist/core/frontend_app/manifest.d.ts +16 -0
- package/dist/core/frontend_app/manifest.d.ts.map +1 -0
- package/dist/core/frontend_app/manifest.js +82 -0
- package/dist/core/frontend_app/manifest.js.map +1 -0
- package/dist/core/frontend_app/node_modules.d.ts +4 -0
- package/dist/core/frontend_app/node_modules.d.ts.map +1 -0
- package/dist/core/frontend_app/node_modules.js +25 -0
- package/dist/core/frontend_app/node_modules.js.map +1 -0
- package/dist/core/frontend_app/related.d.ts +4 -0
- package/dist/core/frontend_app/related.d.ts.map +1 -0
- package/dist/core/frontend_app/related.js +25 -0
- package/dist/core/frontend_app/related.js.map +1 -0
- package/dist/core/frontend_app/runtime.d.ts +4 -0
- package/dist/core/frontend_app/runtime.d.ts.map +1 -0
- package/dist/core/frontend_app/runtime.js +182 -0
- package/dist/core/frontend_app/runtime.js.map +1 -0
- package/dist/core/frontend_app/ssr.d.ts +6 -0
- package/dist/core/frontend_app/ssr.d.ts.map +1 -0
- package/dist/core/frontend_app/ssr.js +48 -0
- package/dist/core/frontend_app/ssr.js.map +1 -0
- package/dist/core/frontend_app/static.d.ts +5 -0
- package/dist/core/frontend_app/static.d.ts.map +1 -0
- package/dist/core/frontend_app/static.js +173 -0
- package/dist/core/frontend_app/static.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/core/discovery/aggregate.d.ts +5 -1
- package/dist/src/core/discovery/aggregate.d.ts.map +1 -1
- package/dist/src/core/discovery/aggregate.js +4 -2
- package/dist/src/core/discovery/aggregate.js.map +1 -1
- package/dist/src/core/discovery/exports.d.ts +17 -0
- package/dist/src/core/discovery/exports.d.ts.map +1 -0
- package/dist/src/core/discovery/exports.js +106 -0
- package/dist/src/core/discovery/exports.js.map +1 -0
- package/dist/src/core/discovery/normalize.d.ts.map +1 -1
- package/dist/src/core/discovery/normalize.js +1 -0
- package/dist/src/core/discovery/normalize.js.map +1 -1
- package/dist/src/core/discovery/resolve.d.ts.map +1 -1
- package/dist/src/core/discovery/resolve.js +16 -8
- package/dist/src/core/discovery/resolve.js.map +1 -1
- package/dist/src/core/discovery/shared.d.ts +1 -0
- package/dist/src/core/discovery/shared.d.ts.map +1 -1
- package/dist/src/core/discovery/shared.js.map +1 -1
- package/dist/src/core/frontend_app/assets.d.ts +5 -0
- package/dist/src/core/frontend_app/assets.d.ts.map +1 -0
- package/dist/src/core/frontend_app/assets.js +74 -0
- package/dist/src/core/frontend_app/assets.js.map +1 -0
- package/dist/src/core/frontend_app/build.d.ts +5 -0
- package/dist/src/core/frontend_app/build.d.ts.map +1 -0
- package/dist/src/core/frontend_app/build.js +70 -0
- package/dist/src/core/frontend_app/build.js.map +1 -0
- package/dist/src/core/frontend_app/config.d.ts +6 -0
- package/dist/src/core/frontend_app/config.d.ts.map +1 -0
- package/dist/src/core/frontend_app/config.js +180 -0
- package/dist/src/core/frontend_app/config.js.map +1 -0
- package/dist/src/core/frontend_app/defaults.d.ts +18 -0
- package/dist/src/core/frontend_app/defaults.d.ts.map +1 -0
- package/dist/src/core/frontend_app/defaults.js +75 -0
- package/dist/src/core/frontend_app/defaults.js.map +1 -0
- package/dist/src/core/frontend_app/global.d.ts +11 -0
- package/dist/src/core/frontend_app/global.d.ts.map +1 -0
- package/dist/src/core/frontend_app/global.js +36 -0
- package/dist/src/core/frontend_app/global.js.map +1 -0
- package/dist/src/core/frontend_app/hygiene.d.ts +6 -0
- package/dist/src/core/frontend_app/hygiene.d.ts.map +1 -0
- package/dist/src/core/frontend_app/hygiene.js +46 -0
- package/dist/src/core/frontend_app/hygiene.js.map +1 -0
- package/dist/src/core/frontend_app/index.d.ts +13 -0
- package/dist/src/core/frontend_app/index.d.ts.map +1 -0
- package/dist/src/core/frontend_app/index.js +13 -0
- package/dist/src/core/frontend_app/index.js.map +1 -0
- package/dist/src/core/frontend_app/manifest.d.ts +16 -0
- package/dist/src/core/frontend_app/manifest.d.ts.map +1 -0
- package/dist/src/core/frontend_app/manifest.js +82 -0
- package/dist/src/core/frontend_app/manifest.js.map +1 -0
- package/dist/src/core/frontend_app/node_modules.d.ts +4 -0
- package/dist/src/core/frontend_app/node_modules.d.ts.map +1 -0
- package/dist/src/core/frontend_app/node_modules.js +25 -0
- package/dist/src/core/frontend_app/node_modules.js.map +1 -0
- package/dist/src/core/frontend_app/related.d.ts +4 -0
- package/dist/src/core/frontend_app/related.d.ts.map +1 -0
- package/dist/src/core/frontend_app/related.js +25 -0
- package/dist/src/core/frontend_app/related.js.map +1 -0
- package/dist/src/core/frontend_app/runtime.d.ts +4 -0
- package/dist/src/core/frontend_app/runtime.d.ts.map +1 -0
- package/dist/src/core/frontend_app/runtime.js +182 -0
- package/dist/src/core/frontend_app/runtime.js.map +1 -0
- package/dist/src/core/frontend_app/ssr.d.ts +6 -0
- package/dist/src/core/frontend_app/ssr.d.ts.map +1 -0
- package/dist/src/core/frontend_app/ssr.js +48 -0
- package/dist/src/core/frontend_app/ssr.js.map +1 -0
- package/dist/src/core/frontend_app/static.d.ts +5 -0
- package/dist/src/core/frontend_app/static.d.ts.map +1 -0
- package/dist/src/core/frontend_app/static.js +173 -0
- package/dist/src/core/frontend_app/static.js.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/discovery.d.ts +3 -0
- package/dist/src/types/discovery.d.ts.map +1 -1
- package/dist/src/types/frontend_app.d.ts +219 -0
- package/dist/src/types/frontend_app.d.ts.map +1 -0
- package/dist/src/types/frontend_app.js +2 -0
- package/dist/src/types/frontend_app.js.map +1 -0
- package/dist/src/types.d.ts +1 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/types/discovery.d.ts +3 -0
- package/dist/types/discovery.d.ts.map +1 -1
- package/dist/types/frontend_app.d.ts +219 -0
- package/dist/types/frontend_app.d.ts.map +1 -0
- package/dist/types/frontend_app.js +2 -0
- package/dist/types/frontend_app.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@ All notable changes to `@trebired/bundler` will be documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows semantic versioning once published.
|
|
6
6
|
|
|
7
|
+
## 4.1.0
|
|
8
|
+
|
|
9
|
+
- Added frontend app build targets for `all`, `client`, and `ssr` so callers can build either side without local branching wrappers.
|
|
10
|
+
- Added runtime SSR `node_modules` preparation, matching the build helper's `none`, `symlink`, and `copy` strategies and refreshing after dev SSR rebuilds.
|
|
11
|
+
- Relaxed frontend SSR module-map config inputs so common rule keys, page patterns, exports, and default-export filtering come from package defaults.
|
|
12
|
+
- Added auto global client entry discovery for package-owned `js/**/*.client.*` and `js/**/*.client.defer.*` defaults, and included those entries in runtime asset links.
|
|
13
|
+
- Added synchronous cached frontend runtime helpers for root/page export resolution and asset links after `ensure()`.
|
|
14
|
+
- Made static asset handlers work cleanly with frontend runtime config paths resolved from `rootDir`.
|
|
15
|
+
- Expanded frontend app verification coverage for target-specific builds, runtime `node_modules`, partial SSR config defaults, auto global client entries, sync helper behavior, and relative static paths.
|
|
16
|
+
|
|
17
|
+
## 4.0.0
|
|
18
|
+
|
|
19
|
+
- Added a generic frontend app preset with default source, public, client-entry, deferred-entry, global-style, ignore, browser, node SSR, output-layout, i18n, and production precompression options.
|
|
20
|
+
- Added aggregate module-map export filtering with `requireMatchedModuleExport`, including skipped-source metadata for generated entries and rules.
|
|
21
|
+
- Added SSR module-map rule helpers for root modules, matched module maps, index collapsing, map exports, resolver exports, root exports, and optional default exports.
|
|
22
|
+
- Added manifest runtime helpers for reading written manifests, extracting asset manifests, resolving aggregate entries, collecting aggregate matched sources, resolving emitted entry files, and normalizing source paths to route/page IDs.
|
|
23
|
+
- Added related client entry map, frontend asset link collection, and link/script tag rendering helpers.
|
|
24
|
+
- Added a generic frontend build runner for client builds, optional SSR builds, public directory copying, precompression stats, SSR entry output resolution, and optional SSR `node_modules` symlink/copy handling.
|
|
25
|
+
- Added a frontend runtime helper for dev/prod manifest state, watch-backed rebuilds, cache-busted SSR ESM imports, SSR root/page export resolution, and page asset links.
|
|
26
|
+
- Added framework-neutral and Express-compatible static asset serving helpers with private manifest/map blocking, Brotli/gzip selection, cache headers, and development public directory serving.
|
|
27
|
+
- Added `quarantineUnwritableOutputDir()` and frontend app verification coverage for the 4.0 runtime/build/preset behavior.
|
|
28
|
+
|
|
7
29
|
## 3.7.0
|
|
8
30
|
|
|
9
31
|
- Added generic frontend entry helpers for `*.client.*` and `*.client.defer.*` discovery patterns without changing discover-rule behavior.
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Discover-only bundler wrapper around `esbuild` with SCSS support, watch mode, so
|
|
|
9
9
|
Runtime support: Bun 1+ and Node.js 18+.
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
|
|
12
|
+
bun i @trebired/bundler
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
@@ -250,6 +250,27 @@ Path keys default to the matched module path relative to the aggregate rule root
|
|
|
250
250
|
- `pages/blog/post.tsx` -> `blog/post`
|
|
251
251
|
- `pages/settings/index.tsx` -> `settings` when `collapseIndex: true`
|
|
252
252
|
|
|
253
|
+
Set `requireMatchedModuleExport: true` when an aggregate rule intentionally uses a broad pattern but should only include modules that provide the configured `matchedModuleExportName`. Files without that export are skipped, not imported into the generated module. Skipped paths are reported in aggregate entry metadata and rule metadata.
|
|
254
|
+
|
|
255
|
+
The export check parses TypeScript and JavaScript source. It supports `export default ...`, `export { value as default }`, `export { default } from "./module"`, and normal named exports.
|
|
256
|
+
|
|
257
|
+
Use the SSR module-map helper to create the same rule without repeating the aggregate shape:
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
import { createSsrModuleMapRule } from "@trebired/bundler";
|
|
261
|
+
|
|
262
|
+
const ssrPages = createSsrModuleMapRule({
|
|
263
|
+
key: "ssr-pages",
|
|
264
|
+
include: ["pages/**/*.tsx"],
|
|
265
|
+
rootModule: "layouts/root/document.tsx",
|
|
266
|
+
rootExport: "rootDocument",
|
|
267
|
+
mapExport: "pages",
|
|
268
|
+
resolverExport: "getPageComponent",
|
|
269
|
+
matchedModuleExportName: "default",
|
|
270
|
+
requireMatchedModuleExport: true,
|
|
271
|
+
});
|
|
272
|
+
```
|
|
273
|
+
|
|
253
274
|
## Frontend Conventions
|
|
254
275
|
|
|
255
276
|
This API is meant for conventions like:
|
|
@@ -304,6 +325,97 @@ await bundle({
|
|
|
304
325
|
|
|
305
326
|
The helper returns ordinary discover rules. Override `clientInclude`, `deferredInclude`, rule keys, or excludes when a project uses different conventions.
|
|
306
327
|
|
|
328
|
+
## Frontend App Preset
|
|
329
|
+
|
|
330
|
+
Use the frontend app preset when a project follows the common frontend/SSR shape and should not repeat discover-rule boilerplate.
|
|
331
|
+
|
|
332
|
+
Before the preset, a project typically had to assemble client rules, SSR aggregate rules, public copying, manifest reading, related-client lookups, static tag rendering, and static asset serving separately.
|
|
333
|
+
|
|
334
|
+
After the preset, the app-specific part is mostly paths, environment defines, and language policy:
|
|
335
|
+
|
|
336
|
+
```ts
|
|
337
|
+
import {
|
|
338
|
+
buildFrontendApp,
|
|
339
|
+
createStaticAssetMiddleware,
|
|
340
|
+
createFrontendBundlerRuntime,
|
|
341
|
+
defineFrontendBundlerConfig,
|
|
342
|
+
} from "@trebired/bundler";
|
|
343
|
+
|
|
344
|
+
const bundlerConfig = defineFrontendBundlerConfig({
|
|
345
|
+
clientOutDir: "dist/client",
|
|
346
|
+
ssrOutDir: "dist/ssr",
|
|
347
|
+
supportedI18nLanguages: ["en", "cs"],
|
|
348
|
+
ssr: {
|
|
349
|
+
rootModule: "layouts/root/document.tsx",
|
|
350
|
+
rootExport: "rootDocument",
|
|
351
|
+
mapExport: "pages",
|
|
352
|
+
resolverExport: "getPageComponent",
|
|
353
|
+
},
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
await buildFrontendApp(bundlerConfig);
|
|
357
|
+
|
|
358
|
+
const runtime = createFrontendBundlerRuntime(bundlerConfig);
|
|
359
|
+
await runtime.ensure();
|
|
360
|
+
const page = await runtime.resolvePageComponent("account");
|
|
361
|
+
const rootDocument = await runtime.resolveRootDocument();
|
|
362
|
+
const assets = await runtime.buildAssetLinks(["account"]);
|
|
363
|
+
|
|
364
|
+
app.use("/assets", createStaticAssetMiddleware(bundlerConfig));
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Defaults:
|
|
368
|
+
|
|
369
|
+
- `frontendDir`: `src/frontend`
|
|
370
|
+
- `publicDir`: `src/frontend/public`
|
|
371
|
+
- client entries: `*.client.ts`, `*.client.tsx`, `*.client.js`, `*.client.jsx`, `*.client.css`, `*.client.scss`
|
|
372
|
+
- deferred client entries: `*.client.defer.ts`, `*.client.defer.tsx`, `*.client.defer.js`, `*.client.defer.jsx`
|
|
373
|
+
- global client entries: `auto`, using `js/**/*.client.*` and `js/**/*.client.defer.*`
|
|
374
|
+
- global style bundle patterns: `css/**/*.css`, `css/**/*.scss`, component `styles.*`, and `js/**/styles.*`
|
|
375
|
+
- ignored sources: tests, declarations, SCSS partials, public files, and runtime-oriented source patterns
|
|
376
|
+
- SSR module map: rule key `ssr-pages`, page patterns under `pages`, exports `rootModule`, `modules`, and `getModule`
|
|
377
|
+
- SSR page filtering: only modules with a default export are included by default
|
|
378
|
+
- browser builds: ESM, splitting on, output layout on
|
|
379
|
+
- node SSR builds: ESM, splitting off, output layout on
|
|
380
|
+
- production client builds: minify, strip comments, and precompress JS/CSS
|
|
381
|
+
|
|
382
|
+
Use `target` when a command should build only one side:
|
|
383
|
+
|
|
384
|
+
```ts
|
|
385
|
+
await buildFrontendApp({ ...bundlerConfig, target: "client" });
|
|
386
|
+
await buildFrontendApp({ ...bundlerConfig, target: "ssr" });
|
|
387
|
+
await buildFrontendApp({ ...bundlerConfig, target: "all" });
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Use `nodeModules` when SSR output needs a runtime `node_modules` directory next to the built entry:
|
|
391
|
+
|
|
392
|
+
```ts
|
|
393
|
+
const bundlerConfig = defineFrontendBundlerConfig({
|
|
394
|
+
clientOutDir: "dist/client",
|
|
395
|
+
ssrOutDir: "dist/ssr",
|
|
396
|
+
nodeModules: {
|
|
397
|
+
strategy: "symlink",
|
|
398
|
+
sourceDir: "node_modules",
|
|
399
|
+
targetDir: "dist/ssr/node_modules",
|
|
400
|
+
force: true,
|
|
401
|
+
},
|
|
402
|
+
});
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
`buildFrontendApp()` prepares it after SSR builds. `createFrontendBundlerRuntime()` also prepares it before importing SSR output and refreshes it after dev SSR rebuilds.
|
|
406
|
+
|
|
407
|
+
After `await runtime.ensure()`, synchronous render paths can use cached helpers without starting new builds or imports:
|
|
408
|
+
|
|
409
|
+
```ts
|
|
410
|
+
const page = runtime.resolvePageComponentSync("account");
|
|
411
|
+
const rootDocument = runtime.resolveRootDocumentSync();
|
|
412
|
+
const assets = runtime.buildAssetLinksSync(["account"]);
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
The sync helpers throw `bundler-frontend-runtime-not-ensured` until `ensure()` has completed.
|
|
416
|
+
|
|
417
|
+
The preset returns ordinary `BundlerOptions` through `createFrontendAppBundlerOptions()`, so callers can still inspect or pass the client and SSR builds to `bundle()` or `watch()` directly.
|
|
418
|
+
|
|
307
419
|
## Related Entries
|
|
308
420
|
|
|
309
421
|
Use `collectRelatedEntries()` when server-side or build orchestration code starts from one or more source modules and needs related client or style entry source paths for `collectAssetLinks()`.
|
|
@@ -325,6 +437,23 @@ const links = collectAssetLinks(assetManifest, related.entries, {
|
|
|
325
437
|
|
|
326
438
|
The generic helper walks the import graph with the same relative import and tsconfig path support as `walkImportGraph()`, then checks configurable candidate patterns. The frontend wrapper uses the default `.client.*` and `.client.defer.*` patterns; pass `candidatePatterns` to replace them.
|
|
327
439
|
|
|
440
|
+
Use `buildRelatedClientEntryMap()` when a runtime starts from aggregate SSR matched sources and needs a page ID -> related client entry map:
|
|
441
|
+
|
|
442
|
+
```ts
|
|
443
|
+
import { buildRelatedClientEntryMap } from "@trebired/bundler";
|
|
444
|
+
|
|
445
|
+
const relatedClientEntries = await buildRelatedClientEntryMap({
|
|
446
|
+
manifest: ssrManifest,
|
|
447
|
+
ruleKey: "ssr-pages",
|
|
448
|
+
rootDir: process.cwd(),
|
|
449
|
+
pageId: {
|
|
450
|
+
sourcePrefix: "src/frontend/pages",
|
|
451
|
+
collapseIndex: true,
|
|
452
|
+
},
|
|
453
|
+
tsconfig: true,
|
|
454
|
+
});
|
|
455
|
+
```
|
|
456
|
+
|
|
328
457
|
## Output Layout
|
|
329
458
|
|
|
330
459
|
Use `outputLayout` when emitted files should be organized by type without a separate relocation step:
|
|
@@ -373,6 +502,35 @@ await bundle({
|
|
|
373
502
|
|
|
374
503
|
When enabled, JS and CSS outputs are compressed by default. Use `include`, `exclude`, `formats`, and `minSize` to tune the selection. `precompressAssets()` is also exported for standalone output folders and returns the same byte and ratio stats.
|
|
375
504
|
|
|
505
|
+
## Static Assets
|
|
506
|
+
|
|
507
|
+
Use `serveStaticAsset()` for a framework-neutral static response object, or `createStaticAssetMiddleware()` for an Express-compatible middleware.
|
|
508
|
+
|
|
509
|
+
```ts
|
|
510
|
+
import { createStaticAssetMiddleware } from "@trebired/bundler";
|
|
511
|
+
|
|
512
|
+
app.use("/assets", createStaticAssetMiddleware({
|
|
513
|
+
clientOutDir: "dist/client",
|
|
514
|
+
mode: "production",
|
|
515
|
+
rootDir: process.cwd(),
|
|
516
|
+
extraStaticDirs: [
|
|
517
|
+
{ dir: "dist/vendor", mountPath: "vendor" },
|
|
518
|
+
],
|
|
519
|
+
}));
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
The handler:
|
|
523
|
+
|
|
524
|
+
- blocks `manifest.json`, `bundler-manifest.json`, and source map requests
|
|
525
|
+
- prefers `.br` over `.gz` for JS/CSS when `Accept-Encoding` allows it
|
|
526
|
+
- sets `Content-Encoding`, `Vary: Accept-Encoding`, and `X-Content-Type-Options: nosniff`
|
|
527
|
+
- sends immutable cache headers for hashed production assets
|
|
528
|
+
- sends `no-store` cache headers in development
|
|
529
|
+
- can serve `publicDir` in development and `clientOutDir` in all modes
|
|
530
|
+
- accepts a frontend app runtime/config object directly when paths should resolve from `rootDir`
|
|
531
|
+
|
|
532
|
+
Use `quarantineUnwritableOutputDir(dir, { logger })` before a build when a project wants to move aside an existing output directory that cannot be written.
|
|
533
|
+
|
|
376
534
|
## Manifest
|
|
377
535
|
|
|
378
536
|
Set `manifest: true` to write `dist/bundler-manifest.json`, or pass `manifest: { file: "custom-name.json" }`.
|
|
@@ -451,6 +609,44 @@ Supported lookup modes:
|
|
|
451
609
|
- `from: "ruleKey"`
|
|
452
610
|
- `from: "auto"` (default)
|
|
453
611
|
|
|
612
|
+
### Manifest Runtime Helpers
|
|
613
|
+
|
|
614
|
+
Runtime code can use package helpers instead of digging through the written manifest shape:
|
|
615
|
+
|
|
616
|
+
```ts
|
|
617
|
+
import {
|
|
618
|
+
collectAggregateMatchedSourcesByRuleKey,
|
|
619
|
+
createAggregateSourceIdMap,
|
|
620
|
+
extractAssetManifest,
|
|
621
|
+
normalizeAggregateSourceId,
|
|
622
|
+
readBundlerManifest,
|
|
623
|
+
resolveAggregateEntryByRuleKey,
|
|
624
|
+
resolveAssetManifestEntryOutputPath,
|
|
625
|
+
} from "@trebired/bundler";
|
|
626
|
+
|
|
627
|
+
const writtenManifest = await readBundlerManifest("dist/ssr/bundler-manifest.json");
|
|
628
|
+
const assetManifest = extractAssetManifest(writtenManifest);
|
|
629
|
+
const aggregateEntry = resolveAggregateEntryByRuleKey(assetManifest, "ssr-pages");
|
|
630
|
+
const matchedSources = collectAggregateMatchedSourcesByRuleKey(assetManifest, "ssr-pages");
|
|
631
|
+
const sourceIds = createAggregateSourceIdMap(matchedSources, {
|
|
632
|
+
sourcePrefix: "src/frontend/pages",
|
|
633
|
+
collapseIndex: true,
|
|
634
|
+
});
|
|
635
|
+
const entryFile = resolveAssetManifestEntryOutputPath({
|
|
636
|
+
manifest: assetManifest,
|
|
637
|
+
entryId: "ssr-pages",
|
|
638
|
+
from: "ruleKey",
|
|
639
|
+
outDir: "dist/ssr",
|
|
640
|
+
});
|
|
641
|
+
const pageId = normalizeAggregateSourceId("src/frontend/pages/docs/index.tsx", {
|
|
642
|
+
sourcePrefix: "src/frontend/pages",
|
|
643
|
+
});
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
`createEmptyAssetManifest()` is also exported for callers that need a stable empty shape before a build has produced outputs.
|
|
647
|
+
|
|
648
|
+
Use `collectFrontendAssetLinks()` when runtime code wants global styles, global client entries, and page-related client entries in one call. Pass `renderTags: true`, or call `renderAssetLinkTags()` directly, to get plain `<link>` and `<script type="module">` strings.
|
|
649
|
+
|
|
454
650
|
## Watch Mode
|
|
455
651
|
|
|
456
652
|
`watch()` stays discover-driven.
|
|
@@ -548,6 +744,7 @@ type BundlerDiscoverRule =
|
|
|
548
744
|
keyFromPath?: "relative-path";
|
|
549
745
|
collapseIndex?: boolean;
|
|
550
746
|
allowEmpty?: boolean;
|
|
747
|
+
requireMatchedModuleExport?: boolean;
|
|
551
748
|
exports?: {
|
|
552
749
|
root?: string;
|
|
553
750
|
map: string;
|
|
@@ -14,8 +14,12 @@ declare function validateAggregatePathKeys(args: {
|
|
|
14
14
|
declare function createAggregateEntryMetadata(args: {
|
|
15
15
|
matchedFiles: DiscoveredFile[];
|
|
16
16
|
rootModule?: ResolvedAggregateRootModule;
|
|
17
|
+
skippedSources?: string[];
|
|
17
18
|
}): BundlerAggregateEntryMetadata;
|
|
18
|
-
declare function createAggregateRuleMetadata(
|
|
19
|
+
declare function createAggregateRuleMetadata(args?: {
|
|
20
|
+
rootModule?: ResolvedAggregateRootModule;
|
|
21
|
+
skippedSources?: string[];
|
|
22
|
+
}): BundlerAggregateRuleMetadata;
|
|
19
23
|
declare function buildAggregateModuleMapContents(args: {
|
|
20
24
|
aggregate: NormalizedAggregateModuleMap;
|
|
21
25
|
includePatterns: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/aggregate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,eAAe,CAAC;AAUvB,OAAO,KAAK,EACV,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,iBAAS,uBAAuB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAKlG;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAUT;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GAAG,IAAI,CAYP;AAED,iBAAS,4BAA4B,CAAC,IAAI,EAAE;IAC1C,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/aggregate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,eAAe,CAAC;AAUvB,OAAO,KAAK,EACV,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,iBAAS,uBAAuB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAKlG;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAUT;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GAAG,IAAI,CAYP;AAED,iBAAS,4BAA4B,CAAC,IAAI,EAAE;IAC1C,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GAAG,6BAA6B,CAOhC;AAED,iBAAS,2BAA2B,CAAC,IAAI,GAAE;IACzC,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,4BAA4B,CAMpC;AAED,iBAAS,+BAA+B,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,4BAA4B,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C,GAAG,MAAM,CAYT;AAED,iBAAS,0BAA0B,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,yBAAyB,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GAAG,2BAA2B,GAAG,SAAS,CAa1C;AA2FD,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
|
|
@@ -35,12 +35,14 @@ function createAggregateEntryMetadata(args) {
|
|
|
35
35
|
kind: "module-map",
|
|
36
36
|
matchedSources: args.matchedFiles.map((file) => file.rootRel),
|
|
37
37
|
rootModule: args.rootModule?.rootRel,
|
|
38
|
+
skippedSources: args.skippedSources?.length ? args.skippedSources : undefined,
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
function createAggregateRuleMetadata(
|
|
41
|
+
function createAggregateRuleMetadata(args = {}) {
|
|
41
42
|
return {
|
|
42
43
|
kind: "module-map",
|
|
43
|
-
rootModule: rootModule?.rootRel,
|
|
44
|
+
rootModule: args.rootModule?.rootRel,
|
|
45
|
+
skippedSources: args.skippedSources?.length ? args.skippedSources : undefined,
|
|
44
46
|
};
|
|
45
47
|
}
|
|
46
48
|
function buildAggregateModuleMapContents(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/core/discovery/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AASrB,SAAS,uBAAuB,CAAC,eAAyB,EAAE,YAA8B;IACxF,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7F,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACjF,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAIlC;IACC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;QAC3B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9E,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,yBAAyB,CAAC,IAIlC;IACC,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/core/discovery/aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DiscoveredFile, NormalizedAggregateRule } from "./shared.js";
|
|
2
|
+
type FilteredAggregateFiles = {
|
|
3
|
+
matchedFiles: DiscoveredFile[];
|
|
4
|
+
skippedSources: string[];
|
|
5
|
+
};
|
|
6
|
+
declare function filterAggregateMatchedFiles(args: {
|
|
7
|
+
matchedFiles: DiscoveredFile[];
|
|
8
|
+
rule: NormalizedAggregateRule;
|
|
9
|
+
}): Promise<FilteredAggregateFiles>;
|
|
10
|
+
declare function hasModuleExport(args: {
|
|
11
|
+
exportName: string;
|
|
12
|
+
filePath: string;
|
|
13
|
+
source: string;
|
|
14
|
+
}): boolean;
|
|
15
|
+
export { filterAggregateMatchedFiles, hasModuleExport, };
|
|
16
|
+
export type { FilteredAggregateFiles, };
|
|
17
|
+
//# sourceMappingURL=exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/exports.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3E,KAAK,sBAAsB,GAAG;IAC5B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,iBAAe,2BAA2B,CAAC,IAAI,EAAE;IAC/C,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuBlC;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CASV;AAkED,OAAO,EACL,2BAA2B,EAC3B,eAAe,GAChB,CAAC;AACF,YAAY,EACV,sBAAsB,GACvB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
import { resolveAggregateModuleLoader } from "./shared.js";
|
|
5
|
+
async function filterAggregateMatchedFiles(args) {
|
|
6
|
+
if (!args.rule.aggregate.requireMatchedModuleExport) {
|
|
7
|
+
return { matchedFiles: args.matchedFiles, skippedSources: [] };
|
|
8
|
+
}
|
|
9
|
+
const matchedFiles = [];
|
|
10
|
+
const skippedSources = [];
|
|
11
|
+
for (const file of args.matchedFiles) {
|
|
12
|
+
if (!resolveAggregateModuleLoader(file.rootRel)) {
|
|
13
|
+
skippedSources.push(file.rootRel);
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const source = await fs.readFile(file.absPath, "utf8");
|
|
17
|
+
if (hasModuleExport({ exportName: args.rule.aggregate.matchedModuleExportName, filePath: file.absPath, source })) {
|
|
18
|
+
matchedFiles.push(file);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
skippedSources.push(file.rootRel);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { matchedFiles, skippedSources };
|
|
25
|
+
}
|
|
26
|
+
function hasModuleExport(args) {
|
|
27
|
+
const sourceFile = ts.createSourceFile(args.filePath, args.source, ts.ScriptTarget.Latest, true, resolveScriptKind(args.filePath));
|
|
28
|
+
return sourceFile.statements.some((statement) => statementExportsName(statement, args.exportName));
|
|
29
|
+
}
|
|
30
|
+
function statementExportsName(statement, exportName) {
|
|
31
|
+
if (exportName === "default" && isDefaultExportAssignment(statement))
|
|
32
|
+
return true;
|
|
33
|
+
if (isExportedDeclaration(statement, exportName))
|
|
34
|
+
return true;
|
|
35
|
+
if (ts.isVariableStatement(statement))
|
|
36
|
+
return variableStatementExportsName(statement, exportName);
|
|
37
|
+
if (ts.isExportDeclaration(statement))
|
|
38
|
+
return exportDeclarationExportsName(statement, exportName);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
function isDefaultExportAssignment(statement) {
|
|
42
|
+
return ts.isExportAssignment(statement) && !statement.isExportEquals;
|
|
43
|
+
}
|
|
44
|
+
function isExportedDeclaration(statement, exportName) {
|
|
45
|
+
const modifiers = getNodeModifiers(statement);
|
|
46
|
+
const exported = modifiers.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
|
|
47
|
+
if (!exported)
|
|
48
|
+
return false;
|
|
49
|
+
const defaulted = modifiers.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword);
|
|
50
|
+
if (defaulted)
|
|
51
|
+
return exportName === "default";
|
|
52
|
+
return getStatementName(statement) === exportName;
|
|
53
|
+
}
|
|
54
|
+
function variableStatementExportsName(statement, exportName) {
|
|
55
|
+
if (!getNodeModifiers(statement).some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword))
|
|
56
|
+
return false;
|
|
57
|
+
return statement.declarationList.declarations.some((declaration) => bindingNameExportsName(declaration.name, exportName));
|
|
58
|
+
}
|
|
59
|
+
function getNodeModifiers(node) {
|
|
60
|
+
return ts.canHaveModifiers(node) ? ts.getModifiers(node) || [] : [];
|
|
61
|
+
}
|
|
62
|
+
function getStatementName(statement) {
|
|
63
|
+
if (ts.isFunctionDeclaration(statement))
|
|
64
|
+
return statement.name?.text;
|
|
65
|
+
if (ts.isClassDeclaration(statement))
|
|
66
|
+
return statement.name?.text;
|
|
67
|
+
if (ts.isInterfaceDeclaration(statement))
|
|
68
|
+
return statement.name.text;
|
|
69
|
+
if (ts.isTypeAliasDeclaration(statement))
|
|
70
|
+
return statement.name.text;
|
|
71
|
+
if (ts.isEnumDeclaration(statement))
|
|
72
|
+
return statement.name.text;
|
|
73
|
+
if (ts.isModuleDeclaration(statement) && ts.isIdentifier(statement.name))
|
|
74
|
+
return statement.name.text;
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
function bindingNameExportsName(name, exportName) {
|
|
78
|
+
if (ts.isIdentifier(name))
|
|
79
|
+
return name.text === exportName;
|
|
80
|
+
const elements = ts.isObjectBindingPattern(name) ? name.elements : name.elements;
|
|
81
|
+
return elements.some((element) => {
|
|
82
|
+
if (!ts.isBindingElement(element))
|
|
83
|
+
return false;
|
|
84
|
+
return bindingNameExportsName(element.name, exportName);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function exportDeclarationExportsName(statement, exportName) {
|
|
88
|
+
const clause = statement.exportClause;
|
|
89
|
+
if (!clause || !ts.isNamedExports(clause))
|
|
90
|
+
return false;
|
|
91
|
+
return clause.elements.some((specifier) => specifier.name.text === exportName);
|
|
92
|
+
}
|
|
93
|
+
function resolveScriptKind(filePath) {
|
|
94
|
+
const extension = path.extname(filePath).toLowerCase();
|
|
95
|
+
if (extension === ".tsx")
|
|
96
|
+
return ts.ScriptKind.TSX;
|
|
97
|
+
if (extension === ".jsx")
|
|
98
|
+
return ts.ScriptKind.JSX;
|
|
99
|
+
if (extension === ".ts" || extension === ".mts" || extension === ".cts")
|
|
100
|
+
return ts.ScriptKind.TS;
|
|
101
|
+
if (extension === ".js" || extension === ".mjs" || extension === ".cjs")
|
|
102
|
+
return ts.ScriptKind.JS;
|
|
103
|
+
return ts.ScriptKind.Unknown;
|
|
104
|
+
}
|
|
105
|
+
export { filterAggregateMatchedFiles, hasModuleExport, };
|
|
106
|
+
//# sourceMappingURL=exports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../src/core/discovery/exports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,EACf,MAAM,eAAe,CAAC;AAevB,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,iBAAS,2BAA2B,CAClC,SAAS,EAAE,yBAAyB,GAAG,SAAS,EAChD,OAAO,EAAE,MAAM,GACd,4BAA4B,
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,EACf,MAAM,eAAe,CAAC;AAevB,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,iBAAS,2BAA2B,CAClC,SAAS,EAAE,yBAAyB,GAAG,SAAS,EAChD,OAAO,EAAE,MAAM,GACd,4BAA4B,CAkC9B;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,sBAAsB,CA6BhF;AAED,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACpC,QAAQ,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACvC,yBAAyB,EAAE,CAW7B;AAwBD,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,OAAO,eAAe,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,aAAa,EAAE,yBAAyB,CAIvJ;AAkCD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,GACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../src/core/discovery/normalize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../src/core/discovery/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/core/discovery/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,eAAe,CAAC;AAcvB,OAAO,EAA4B,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkBtE,OAAO,KAAK,EAOV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,iBAAe,qBAAqB,CAClC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,EACvC,iBAAiB,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACjD,OAAO,CAAC,iBAAiB,CAAC,CA6C5B;AAmPD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { buildAggregateModuleMapContents, createAggregateEntryMetadata, createAggregateRuleMetadata, resolveAggregateRootModule, validateAggregatePathKeys, } from "./aggregate.js";
|
|
3
3
|
import { buildBundleContents, createResolvedDiscovery, emitEntryRecord, } from "./emit.js";
|
|
4
|
+
import { filterAggregateMatchedFiles } from "./exports.js";
|
|
4
5
|
import { normalizeDiscoverOptions, normalizeManifestOptions } from "./normalize.js";
|
|
5
6
|
import { normalizeDiscoverRoots, toEntryPointMap } from "./public.js";
|
|
6
7
|
import { classifyFile, readBundleFilesWithStats, scanDiscoveredFiles, splitByMaxSize, validateGroupedBootImports, } from "./scan.js";
|
|
@@ -87,7 +88,7 @@ function initializeRules(config, rootDir, rules, matchedByRule) {
|
|
|
87
88
|
const rootModule = resolveAggregateRootModule({ config, rootDir, rule });
|
|
88
89
|
if (rootModule)
|
|
89
90
|
aggregateRootModules.set(rule.key, rootModule);
|
|
90
|
-
ruleRecord.aggregate = createAggregateRuleMetadata(rootModule);
|
|
91
|
+
ruleRecord.aggregate = createAggregateRuleMetadata({ rootModule });
|
|
91
92
|
}
|
|
92
93
|
rules.set(rule.key, ruleRecord);
|
|
93
94
|
matchedByRule.set(rule.key, []);
|
|
@@ -118,7 +119,7 @@ async function resolveRuleEntries(args) {
|
|
|
118
119
|
await resolveBundleEntryRecords({ ...args, rule: args.rule });
|
|
119
120
|
return;
|
|
120
121
|
}
|
|
121
|
-
resolveAggregateEntryRecord({ ...args, rule: args.rule }, args.aggregateRootModules.get(args.rule.key));
|
|
122
|
+
await resolveAggregateEntryRecord({ ...args, rule: args.rule }, args.aggregateRootModules.get(args.rule.key));
|
|
122
123
|
}
|
|
123
124
|
function resolveDirectEntryRecords(args) {
|
|
124
125
|
for (const file of args.matchedFiles) {
|
|
@@ -187,15 +188,22 @@ async function resolveBundleEntryRecords(args) {
|
|
|
187
188
|
});
|
|
188
189
|
});
|
|
189
190
|
}
|
|
190
|
-
function resolveAggregateEntryRecord(args, rootModule) {
|
|
191
|
-
const
|
|
191
|
+
async function resolveAggregateEntryRecord(args, rootModule) {
|
|
192
|
+
const filtered = await filterAggregateMatchedFiles({ matchedFiles: args.matchedFiles, rule: args.rule });
|
|
193
|
+
const matchedFiles = filtered.matchedFiles;
|
|
194
|
+
args.ruleRecord.aggregate = createAggregateRuleMetadata({ rootModule, skippedSources: filtered.skippedSources });
|
|
195
|
+
const unsupportedFile = matchedFiles.find((file) => !resolveAggregateModuleLoader(file.rootRel));
|
|
192
196
|
if (unsupportedFile)
|
|
193
197
|
throw new Error(`bundler-discover-aggregate-unsupported-file :: ${args.rule.key} :: ${unsupportedFile.rootRel}`);
|
|
194
|
-
validateAggregatePathKeys({ collapseIndex: args.rule.aggregate.collapseIndex, matchedFiles
|
|
195
|
-
if (
|
|
198
|
+
validateAggregatePathKeys({ collapseIndex: args.rule.aggregate.collapseIndex, matchedFiles, rule: args.rule });
|
|
199
|
+
if (matchedFiles.length === 0 && !args.rule.aggregate.allowEmpty) {
|
|
196
200
|
throw new Error(`bundler-discover-aggregate-empty :: ${args.rule.key}`);
|
|
197
201
|
}
|
|
198
|
-
const aggregateMetadata = createAggregateEntryMetadata({
|
|
202
|
+
const aggregateMetadata = createAggregateEntryMetadata({
|
|
203
|
+
matchedFiles,
|
|
204
|
+
rootModule,
|
|
205
|
+
skippedSources: filtered.skippedSources,
|
|
206
|
+
});
|
|
199
207
|
const stableId = createStableId(JSON.stringify({
|
|
200
208
|
aggregate: args.rule.aggregate,
|
|
201
209
|
dir: args.config.dir,
|
|
@@ -213,7 +221,7 @@ function resolveAggregateEntryRecord(args, rootModule) {
|
|
|
213
221
|
contents: buildAggregateModuleMapContents({
|
|
214
222
|
aggregate: args.rule.aggregate,
|
|
215
223
|
includePatterns: args.rule.include,
|
|
216
|
-
matchedFiles
|
|
224
|
+
matchedFiles,
|
|
217
225
|
rootDir: args.rootDir,
|
|
218
226
|
rootModule,
|
|
219
227
|
}),
|