plgg-bundle 0.0.1 → 0.0.3
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/bin/hook.d.mts +20 -0
- package/bin/hook.mjs +11 -2
- package/bin/plgg-bundle.mjs +9 -0
- package/bin/relocate.mjs +108 -0
- package/package.json +2 -5
- package/src/Dev/fixtures/aliasDir/index.ts +6 -0
- package/src/Dev/node/devServer.ts +5 -5
- package/src/Dev/node/httpAdapter.ts +1 -1
- package/src/Dev/node/scanGraph.ts +2 -2
- package/src/Dev/node/watch.ts +1 -1
- package/src/Dev/usecase/selfAliasResolve.spec.ts +68 -0
- package/src/domain/usecase/build.ts +2 -2
- package/src/domain/usecase/collectModules.ts +2 -2
- package/src/domain/usecase/deriveExternal.ts +2 -2
- package/src/domain/usecase/discoverWorkspace.ts +2 -2
- package/src/domain/usecase/emitDts.ts +4 -4
- package/src/domain/usecase/resolveSpecifier.ts +2 -2
- package/src/domain/usecase/resolveWorkspaceSpecifier.ts +1 -1
- package/src/domain/usecase/rewriteDtsAliases.ts +2 -2
- package/src/vendors/nodeFs.ts +22 -0
- package/src/vendors/nodeHttp.ts +14 -0
- package/src/vendors/nodePath.ts +15 -0
- package/src/vendors/nodeProc.ts +12 -0
- package/src/vendors/nodeUrl.ts +6 -0
- package/dist/Dev/fixtures/devPoc.spec.d.ts +0 -2
- package/dist/Dev/fixtures/devPoc.spec.d.ts.map +0 -1
- package/dist/Dev/fixtures/devPoc.spec.js +0 -145
- package/dist/Dev/fixtures/devPoc.spec.js.map +0 -1
- package/dist/Dev/model/Fetch.d.ts +0 -20
- package/dist/Dev/model/Fetch.d.ts.map +0 -1
- package/dist/Dev/model/Fetch.js +0 -8
- package/dist/Dev/model/Fetch.js.map +0 -1
- package/dist/Dev/model/ModuleGraph.d.ts +0 -27
- package/dist/Dev/model/ModuleGraph.d.ts.map +0 -1
- package/dist/Dev/model/ModuleGraph.js +0 -2
- package/dist/Dev/model/ModuleGraph.js.map +0 -1
- package/dist/Dev/model/Protocol.d.ts +0 -22
- package/dist/Dev/model/Protocol.d.ts.map +0 -1
- package/dist/Dev/model/Protocol.js +0 -31
- package/dist/Dev/model/Protocol.js.map +0 -1
- package/dist/Dev/node/devServer.d.ts +0 -21
- package/dist/Dev/node/devServer.d.ts.map +0 -1
- package/dist/Dev/node/devServer.js +0 -298
- package/dist/Dev/node/devServer.js.map +0 -1
- package/dist/Dev/node/httpAdapter.d.ts +0 -19
- package/dist/Dev/node/httpAdapter.d.ts.map +0 -1
- package/dist/Dev/node/httpAdapter.js +0 -76
- package/dist/Dev/node/httpAdapter.js.map +0 -1
- package/dist/Dev/node/scanGraph.d.ts +0 -21
- package/dist/Dev/node/scanGraph.d.ts.map +0 -1
- package/dist/Dev/node/scanGraph.js +0 -145
- package/dist/Dev/node/scanGraph.js.map +0 -1
- package/dist/Dev/node/watch.d.ts +0 -10
- package/dist/Dev/node/watch.d.ts.map +0 -1
- package/dist/Dev/node/watch.js +0 -44
- package/dist/Dev/node/watch.js.map +0 -1
- package/dist/Dev/usecase/allowedHost.d.ts +0 -16
- package/dist/Dev/usecase/allowedHost.d.ts.map +0 -1
- package/dist/Dev/usecase/allowedHost.js +0 -33
- package/dist/Dev/usecase/allowedHost.js.map +0 -1
- package/dist/Dev/usecase/allowedHost.spec.d.ts +0 -2
- package/dist/Dev/usecase/allowedHost.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/allowedHost.spec.js +0 -13
- package/dist/Dev/usecase/allowedHost.spec.js.map +0 -1
- package/dist/Dev/usecase/buildGraph.d.ts +0 -12
- package/dist/Dev/usecase/buildGraph.d.ts.map +0 -1
- package/dist/Dev/usecase/buildGraph.js +0 -24
- package/dist/Dev/usecase/buildGraph.js.map +0 -1
- package/dist/Dev/usecase/buildGraph.spec.d.ts +0 -2
- package/dist/Dev/usecase/buildGraph.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/buildGraph.spec.js +0 -16
- package/dist/Dev/usecase/buildGraph.spec.js.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.d.ts +0 -12
- package/dist/Dev/usecase/decorateDevHtml.d.ts.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.js +0 -15
- package/dist/Dev/usecase/decorateDevHtml.js.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.spec.d.ts +0 -2
- package/dist/Dev/usecase/decorateDevHtml.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.spec.js +0 -19
- package/dist/Dev/usecase/decorateDevHtml.spec.js.map +0 -1
- package/dist/Dev/usecase/invalidate.d.ts +0 -17
- package/dist/Dev/usecase/invalidate.d.ts.map +0 -1
- package/dist/Dev/usecase/invalidate.js +0 -57
- package/dist/Dev/usecase/invalidate.js.map +0 -1
- package/dist/Dev/usecase/invalidate.spec.d.ts +0 -2
- package/dist/Dev/usecase/invalidate.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/invalidate.spec.js +0 -64
- package/dist/Dev/usecase/invalidate.spec.js.map +0 -1
- package/dist/Dev/usecase/parseImports.d.ts +0 -24
- package/dist/Dev/usecase/parseImports.d.ts.map +0 -1
- package/dist/Dev/usecase/parseImports.js +0 -40
- package/dist/Dev/usecase/parseImports.js.map +0 -1
- package/dist/Dev/usecase/parseImports.spec.d.ts +0 -2
- package/dist/Dev/usecase/parseImports.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/parseImports.spec.js +0 -24
- package/dist/Dev/usecase/parseImports.spec.js.map +0 -1
- package/dist/Dev/usecase/reloadDecision.d.ts +0 -20
- package/dist/Dev/usecase/reloadDecision.d.ts.map +0 -1
- package/dist/Dev/usecase/reloadDecision.js +0 -52
- package/dist/Dev/usecase/reloadDecision.js.map +0 -1
- package/dist/Dev/usecase/reloadDecision.spec.d.ts +0 -2
- package/dist/Dev/usecase/reloadDecision.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/reloadDecision.spec.js +0 -17
- package/dist/Dev/usecase/reloadDecision.spec.js.map +0 -1
- package/dist/domain/model/BundleConfig.d.ts +0 -136
- package/dist/domain/model/BundleConfig.d.ts.map +0 -1
- package/dist/domain/model/BundleConfig.js +0 -18
- package/dist/domain/model/BundleConfig.js.map +0 -1
- package/dist/domain/model/BundleConfig.spec.d.ts +0 -2
- package/dist/domain/model/BundleConfig.spec.d.ts.map +0 -1
- package/dist/domain/model/BundleConfig.spec.js +0 -8
- package/dist/domain/model/BundleConfig.spec.js.map +0 -1
- package/dist/domain/usecase/asBundleConfig.d.ts +0 -17
- package/dist/domain/usecase/asBundleConfig.d.ts.map +0 -1
- package/dist/domain/usecase/asBundleConfig.js +0 -179
- package/dist/domain/usecase/asBundleConfig.js.map +0 -1
- package/dist/domain/usecase/asBundleConfig.spec.d.ts +0 -2
- package/dist/domain/usecase/asBundleConfig.spec.d.ts.map +0 -1
- package/dist/domain/usecase/asBundleConfig.spec.js +0 -119
- package/dist/domain/usecase/asBundleConfig.spec.js.map +0 -1
- package/dist/domain/usecase/build.d.ts +0 -14
- package/dist/domain/usecase/build.d.ts.map +0 -1
- package/dist/domain/usecase/build.js +0 -177
- package/dist/domain/usecase/build.js.map +0 -1
- package/dist/domain/usecase/collectModules.d.ts +0 -53
- package/dist/domain/usecase/collectModules.d.ts.map +0 -1
- package/dist/domain/usecase/collectModules.js +0 -118
- package/dist/domain/usecase/collectModules.js.map +0 -1
- package/dist/domain/usecase/deriveExternal.d.ts +0 -25
- package/dist/domain/usecase/deriveExternal.d.ts.map +0 -1
- package/dist/domain/usecase/deriveExternal.js +0 -79
- package/dist/domain/usecase/deriveExternal.js.map +0 -1
- package/dist/domain/usecase/deriveExternal.spec.d.ts +0 -2
- package/dist/domain/usecase/deriveExternal.spec.d.ts.map +0 -1
- package/dist/domain/usecase/deriveExternal.spec.js +0 -56
- package/dist/domain/usecase/deriveExternal.spec.js.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.d.ts +0 -27
- package/dist/domain/usecase/discoverWorkspace.d.ts.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.js +0 -116
- package/dist/domain/usecase/discoverWorkspace.js.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.spec.d.ts +0 -2
- package/dist/domain/usecase/discoverWorkspace.spec.d.ts.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.spec.js +0 -23
- package/dist/domain/usecase/discoverWorkspace.spec.js.map +0 -1
- package/dist/domain/usecase/emitBundle.d.ts +0 -43
- package/dist/domain/usecase/emitBundle.d.ts.map +0 -1
- package/dist/domain/usecase/emitBundle.js +0 -157
- package/dist/domain/usecase/emitBundle.js.map +0 -1
- package/dist/domain/usecase/emitBundle.spec.d.ts +0 -2
- package/dist/domain/usecase/emitBundle.spec.d.ts.map +0 -1
- package/dist/domain/usecase/emitBundle.spec.js +0 -80
- package/dist/domain/usecase/emitBundle.spec.js.map +0 -1
- package/dist/domain/usecase/emitDts.d.ts +0 -32
- package/dist/domain/usecase/emitDts.d.ts.map +0 -1
- package/dist/domain/usecase/emitDts.js +0 -99
- package/dist/domain/usecase/emitDts.js.map +0 -1
- package/dist/domain/usecase/isExternal.d.ts +0 -12
- package/dist/domain/usecase/isExternal.d.ts.map +0 -1
- package/dist/domain/usecase/isExternal.js +0 -16
- package/dist/domain/usecase/isExternal.js.map +0 -1
- package/dist/domain/usecase/isExternal.spec.d.ts +0 -2
- package/dist/domain/usecase/isExternal.spec.d.ts.map +0 -1
- package/dist/domain/usecase/isExternal.spec.js +0 -16
- package/dist/domain/usecase/isExternal.spec.js.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.d.ts +0 -35
- package/dist/domain/usecase/resolveSpecifier.d.ts.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.js +0 -83
- package/dist/domain/usecase/resolveSpecifier.js.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.spec.d.ts +0 -2
- package/dist/domain/usecase/resolveSpecifier.spec.d.ts.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.spec.js +0 -44
- package/dist/domain/usecase/resolveSpecifier.spec.js.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts +0 -29
- package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.js +0 -89
- package/dist/domain/usecase/resolveWorkspaceSpecifier.js.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts +0 -2
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js +0 -27
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.d.ts +0 -25
- package/dist/domain/usecase/rewriteDtsAliases.d.ts.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.js +0 -71
- package/dist/domain/usecase/rewriteDtsAliases.js.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts +0 -2
- package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.spec.js +0 -35
- package/dist/domain/usecase/rewriteDtsAliases.spec.js.map +0 -1
- package/dist/entrypoints/cli.d.ts +0 -2
- package/dist/entrypoints/cli.d.ts.map +0 -1
- package/dist/entrypoints/cli.js +0 -79
- package/dist/entrypoints/cli.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -28
- package/dist/index.js.map +0 -1
- package/dist/vendors/runner.d.ts +0 -20
- package/dist/vendors/runner.d.ts.map +0 -1
- package/dist/vendors/runner.js +0 -60
- package/dist/vendors/runner.js.map +0 -1
- package/dist/vendors/runner.spec.d.ts +0 -2
- package/dist/vendors/runner.spec.d.ts.map +0 -1
- package/dist/vendors/runner.spec.js +0 -20
- package/dist/vendors/runner.spec.js.map +0 -1
- package/dist/vendors/transpiler.d.ts +0 -19
- package/dist/vendors/transpiler.d.ts.map +0 -1
- package/dist/vendors/transpiler.js +0 -42
- package/dist/vendors/transpiler.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devPoc.spec.js","sourceRoot":"","sources":["../../../src/Dev/fixtures/devPoc.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The Web-standard request handler an app hands the dev
|
|
3
|
-
* server: `Request => Promise<Response>`. This is the same
|
|
4
|
-
* shape plgg-server's `toFetch` produces, reproduced here
|
|
5
|
-
* as a bare structural type so the toolchain never imports
|
|
6
|
-
* a plgg package.
|
|
7
|
-
*/
|
|
8
|
-
export type Fetch = (request: Request) => Promise<Response>;
|
|
9
|
-
/**
|
|
10
|
-
* The app⇄dev-server contract. An app's **dev entry**
|
|
11
|
-
* module default-exports a factory that builds its
|
|
12
|
-
* {@link Fetch}. The dev server calls it once on start and
|
|
13
|
-
* again after every hot-reload — a cache-busted re-import
|
|
14
|
-
* of the entry re-runs the factory over freshly
|
|
15
|
-
* re-evaluated source, which is how a code edit takes
|
|
16
|
-
* effect with no process restart. The factory may be
|
|
17
|
-
* async (config load, route discovery).
|
|
18
|
-
*/
|
|
19
|
-
export type FetchFactory = () => Fetch | Promise<Fetch>;
|
|
20
|
-
//# sourceMappingURL=Fetch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Fetch.d.ts","sourceRoot":"","sources":["../../../src/Dev/model/Fetch.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,GAAG,CAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,MACvB,KAAK,GACL,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/dist/Dev/model/Fetch.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Plain-TS build tool: plgg-bundle is a foundation
|
|
2
|
-
// bundler and must not depend on the libraries it builds
|
|
3
|
-
// (plgg / plgg-server). So the dev server speaks the
|
|
4
|
-
// Web-standard request/response contract directly rather
|
|
5
|
-
// than plgg-server's branded `Fetch`. See the package
|
|
6
|
-
// README and the ticket's hard constraints.
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=Fetch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../src/Dev/model/Fetch.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,yDAAyD;AACzD,qDAAqD;AACrD,yDAAyD;AACzD,sDAAsD;AACtD,4CAA4C"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The dev server's view of the app's local module graph:
|
|
3
|
-
* a map from each source file (absolute path) to the
|
|
4
|
-
* absolute paths of the local files it imports. Only
|
|
5
|
-
* workspace-local edges are recorded — `node:*` and
|
|
6
|
-
* `node_modules` specifiers are not part of the watched
|
|
7
|
-
* graph (they do not change during a dev session).
|
|
8
|
-
*
|
|
9
|
-
* Built fresh from disk on each change by the node adapter
|
|
10
|
-
* (scan → resolve), then consumed by the pure
|
|
11
|
-
* {@link transitiveImporters} / reload-decision logic. The
|
|
12
|
-
* graph is what lets the server ignore a save to a file
|
|
13
|
-
* the app does not import, and report exactly which
|
|
14
|
-
* modules a change invalidates.
|
|
15
|
-
*/
|
|
16
|
-
export type ModuleGraph = ReadonlyMap<string, ReadonlyArray<string>>;
|
|
17
|
-
/**
|
|
18
|
-
* One resolved import edge: `from` imports `to` (both
|
|
19
|
-
* absolute paths). The adapter produces these by scanning
|
|
20
|
-
* a file's import specifiers and resolving the local ones;
|
|
21
|
-
* {@link buildGraph} folds them into a {@link ModuleGraph}.
|
|
22
|
-
*/
|
|
23
|
-
export type Edge = Readonly<{
|
|
24
|
-
from: string;
|
|
25
|
-
to: string;
|
|
26
|
-
}>;
|
|
27
|
-
//# sourceMappingURL=ModuleGraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleGraph.d.ts","sourceRoot":"","sources":["../../../src/Dev/model/ModuleGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CACnC,MAAM,EACN,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleGraph.js","sourceRoot":"","sources":["../../../src/Dev/model/ModuleGraph.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** The dev-only Server-Sent-Events live-reload route. */
|
|
2
|
-
export declare const RELOAD_PATH = "/__plgg_reload";
|
|
3
|
-
/**
|
|
4
|
-
* The SSE opener frame. A comment line keeps the stream
|
|
5
|
-
* from idling before the first reload is pushed.
|
|
6
|
-
*/
|
|
7
|
-
export declare const SSE_PRELUDE = ": connected\n\n";
|
|
8
|
-
/**
|
|
9
|
-
* A default-event SSE frame the injected client's
|
|
10
|
-
* `onmessage` handler reacts to by reloading the page.
|
|
11
|
-
*/
|
|
12
|
-
export declare const RELOAD_FRAME = "data: reload\n\n";
|
|
13
|
-
/**
|
|
14
|
-
* The dev-only live-reload client: a constant `<script>`
|
|
15
|
-
* opening an `EventSource` to {@link RELOAD_PATH} that
|
|
16
|
-
* reloads the page on every pushed frame. This literal is
|
|
17
|
-
* string-appended onto rendered HTML output ONLY (see
|
|
18
|
-
* `decorateDevHtml`) — it never enters a typed render
|
|
19
|
-
* tree, so a production build can never emit it.
|
|
20
|
-
*/
|
|
21
|
-
export declare const LIVE_RELOAD_SCRIPT: string;
|
|
22
|
-
//# sourceMappingURL=Protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/Dev/model/Protocol.ts"],"names":[],"mappings":"AAQA,yDAAyD;AACzD,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,QAGiB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// The dev-only live-reload wire protocol: the SSE route
|
|
2
|
-
// the injected client script connects to, and the frames
|
|
3
|
-
// pushed over it. Kept as pure constants/string builders
|
|
4
|
-
// (no `node:*`, no sockets) so the transport shape is
|
|
5
|
-
// unit-testable and the node adapter only owns the socket
|
|
6
|
-
// registry. Mirrors plggpress's hand-rolled SSE reload,
|
|
7
|
-
// reproduced here plgg-free in the toolchain.
|
|
8
|
-
/** The dev-only Server-Sent-Events live-reload route. */
|
|
9
|
-
export const RELOAD_PATH = "/__plgg_reload";
|
|
10
|
-
/**
|
|
11
|
-
* The SSE opener frame. A comment line keeps the stream
|
|
12
|
-
* from idling before the first reload is pushed.
|
|
13
|
-
*/
|
|
14
|
-
export const SSE_PRELUDE = ": connected\n\n";
|
|
15
|
-
/**
|
|
16
|
-
* A default-event SSE frame the injected client's
|
|
17
|
-
* `onmessage` handler reacts to by reloading the page.
|
|
18
|
-
*/
|
|
19
|
-
export const RELOAD_FRAME = "data: reload\n\n";
|
|
20
|
-
/**
|
|
21
|
-
* The dev-only live-reload client: a constant `<script>`
|
|
22
|
-
* opening an `EventSource` to {@link RELOAD_PATH} that
|
|
23
|
-
* reloads the page on every pushed frame. This literal is
|
|
24
|
-
* string-appended onto rendered HTML output ONLY (see
|
|
25
|
-
* `decorateDevHtml`) — it never enters a typed render
|
|
26
|
-
* tree, so a production build can never emit it.
|
|
27
|
-
*/
|
|
28
|
-
export const LIVE_RELOAD_SCRIPT = "<script>new EventSource('" +
|
|
29
|
-
RELOAD_PATH +
|
|
30
|
-
"').onmessage=()=>location.reload();</script>";
|
|
31
|
-
//# sourceMappingURL=Protocol.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Protocol.js","sourceRoot":"","sources":["../../../src/Dev/model/Protocol.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yDAAyD;AACzD,yDAAyD;AACzD,sDAAsD;AACtD,0DAA0D;AAC1D,wDAAwD;AACxD,8CAA8C;AAE9C,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,2BAA2B;IAC3B,WAAW;IACX,8CAA8C,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type BundleConfig } from "plgg-bundle/domain/model/BundleConfig";
|
|
2
|
-
/**
|
|
3
|
-
* A running dev server: the URL it is reachable at and a
|
|
4
|
-
* `close` that stops the listener + watchers. The CLI
|
|
5
|
-
* ignores `close` (the server runs for the process
|
|
6
|
-
* lifetime); a test uses it to shut the server down so the
|
|
7
|
-
* process can exit.
|
|
8
|
-
*/
|
|
9
|
-
export type DevServer = Readonly<{
|
|
10
|
-
url: string;
|
|
11
|
-
close: () => void;
|
|
12
|
-
}>;
|
|
13
|
-
/**
|
|
14
|
-
* Start the dev server for a config's `dev` section: load
|
|
15
|
-
* the app Fetch, serve it over node:http, watch the source
|
|
16
|
-
* roots, and hot-reload on every relevant code/content
|
|
17
|
-
* edit. Resolves once the listener is up, with the
|
|
18
|
-
* reachable URL and a `close` handle.
|
|
19
|
-
*/
|
|
20
|
-
export declare const runDevServer: (config: BundleConfig) => Promise<DevServer>;
|
|
21
|
-
//# sourceMappingURL=devServer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/devServer.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uCAAuC,CAAC;AA8W1E;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC,CAAC;AAeH;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,YAAY,KACnB,OAAO,CAAC,SAAS,CAmFnB,CAAC"}
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { resolve, isAbsolute, join, } from "node:path";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
4
|
-
import { register } from "node:module";
|
|
5
|
-
import {} from "node:http";
|
|
6
|
-
import {} from "plgg-bundle/Dev/model/Fetch";
|
|
7
|
-
import {} from "plgg-bundle/Dev/model/ModuleGraph";
|
|
8
|
-
import { RELOAD_PATH, SSE_PRELUDE, RELOAD_FRAME, } from "plgg-bundle/Dev/model/Protocol";
|
|
9
|
-
import { isAllowedHost } from "plgg-bundle/Dev/usecase/allowedHost";
|
|
10
|
-
import { shouldReload } from "plgg-bundle/Dev/usecase/reloadDecision";
|
|
11
|
-
import { decorateDevHtml } from "plgg-bundle/Dev/usecase/decorateDevHtml";
|
|
12
|
-
import {} from "plgg-bundle/domain/model/BundleConfig";
|
|
13
|
-
import { serveFetch, } from "plgg-bundle/Dev/node/httpAdapter";
|
|
14
|
-
import { watchRoots } from "plgg-bundle/Dev/node/watch";
|
|
15
|
-
import { scanGraph, } from "plgg-bundle/Dev/node/scanGraph";
|
|
16
|
-
/** UTF-8 encode at call time (never at module top level). */
|
|
17
|
-
const encodeUtf8 = (text) => new TextEncoder().encode(text);
|
|
18
|
-
/** Whether a value is a non-null object. */
|
|
19
|
-
const isRecord = (v) => typeof v === "object" && v !== null;
|
|
20
|
-
/**
|
|
21
|
-
* The dev-entry factory to invoke: the module's `default`
|
|
22
|
-
* export, or the module itself when it has none. Stays
|
|
23
|
-
* `unknown` — {@link callFactory} does the callable check.
|
|
24
|
-
*/
|
|
25
|
-
const defaultExport = (mod) => isRecord(mod) && "default" in mod
|
|
26
|
-
? mod["default"]
|
|
27
|
-
: mod;
|
|
28
|
-
/**
|
|
29
|
-
* Invoke a dev-entry factory and normalise its result to a
|
|
30
|
-
* {@link Fetch}. The imported value is `unknown`, so the
|
|
31
|
-
* boundary is validated at runtime (`typeof`/`instanceof`)
|
|
32
|
-
* and wrapped into a correctly-typed `Fetch` — no `as`, no
|
|
33
|
-
* `any` annotation. Calling a value narrowed only to
|
|
34
|
-
* `Function` yields `any`; feeding it through the
|
|
35
|
-
* `unknown`-typed {@link normalizeFetch} re-establishes
|
|
36
|
-
* the type at the seam.
|
|
37
|
-
*/
|
|
38
|
-
const callFactory = (factory) => {
|
|
39
|
-
if (typeof factory !== "function") {
|
|
40
|
-
throw new Error("dev entry must default-export a () => Fetch factory");
|
|
41
|
-
}
|
|
42
|
-
return Promise.resolve(factory()).then(normalizeFetch);
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Validate that a factory's result is a callable and wrap
|
|
46
|
-
* it as a {@link Fetch} that checks each answer is a
|
|
47
|
-
* `Response`.
|
|
48
|
-
*/
|
|
49
|
-
const normalizeFetch = (value) => {
|
|
50
|
-
if (typeof value !== "function") {
|
|
51
|
-
throw new Error("dev entry factory must return a Fetch (a function)");
|
|
52
|
-
}
|
|
53
|
-
return (request) => Promise.resolve(value(request)).then(asResponse);
|
|
54
|
-
};
|
|
55
|
-
/** Assert a Fetch answer is a Web `Response`. */
|
|
56
|
-
const asResponse = (value) => {
|
|
57
|
-
if (value instanceof Response) {
|
|
58
|
-
return value;
|
|
59
|
-
}
|
|
60
|
-
throw new Error("dev entry Fetch must resolve to a Response");
|
|
61
|
-
};
|
|
62
|
-
/** An Error's message, or a stringified non-Error. */
|
|
63
|
-
const msg = (e) => e instanceof Error ? e.message : String(e);
|
|
64
|
-
/** dev-server console output — a deliberate side effect. */
|
|
65
|
-
const log = (message) => {
|
|
66
|
-
process.stdout.write(`${message}\n`);
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Cache-busting re-import of the dev entry at `version`,
|
|
70
|
-
* then run its factory to get a fresh {@link Fetch}. The
|
|
71
|
-
* loader hook propagates `?v=<version>` down the local
|
|
72
|
-
* import graph, so the whole affected subgraph
|
|
73
|
-
* re-evaluates — real code hot-reload.
|
|
74
|
-
*/
|
|
75
|
-
const load = async (entryUrl, version) => {
|
|
76
|
-
const mod = await import(`${entryUrl}?v=${version}`);
|
|
77
|
-
return callFactory(defaultExport(mod));
|
|
78
|
-
};
|
|
79
|
-
/** The 403 a disallowed Host gets. */
|
|
80
|
-
const forbidden = () => new Response("Forbidden", {
|
|
81
|
-
status: 403,
|
|
82
|
-
headers: {
|
|
83
|
-
"content-type": "text/plain; charset=utf-8",
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
/**
|
|
87
|
-
* The DEV-ONLY SSE endpoint: an open `text/event-stream`
|
|
88
|
-
* whose controller joins the client registry and is
|
|
89
|
-
* removed on disconnect; a reload enqueues a frame onto it.
|
|
90
|
-
*/
|
|
91
|
-
const sseResponse = (clients) => {
|
|
92
|
-
// Bridge seam: capture the controller so `start` can
|
|
93
|
-
// register it and `cancel` can remove the same one.
|
|
94
|
-
let registered;
|
|
95
|
-
return new Response(new ReadableStream({
|
|
96
|
-
start: (controller) => {
|
|
97
|
-
registered = controller;
|
|
98
|
-
clients.add(controller);
|
|
99
|
-
controller.enqueue(encodeUtf8(SSE_PRELUDE));
|
|
100
|
-
},
|
|
101
|
-
cancel: () => {
|
|
102
|
-
if (registered !== undefined) {
|
|
103
|
-
clients.delete(registered);
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
}), {
|
|
107
|
-
status: 200,
|
|
108
|
-
headers: {
|
|
109
|
-
"content-type": "text/event-stream",
|
|
110
|
-
"cache-control": "no-cache",
|
|
111
|
-
connection: "keep-alive",
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
/** Push a reload frame to every open live-reload stream. */
|
|
116
|
-
const notifyReload = (clients) => clients.forEach((controller) => controller.enqueue(encodeUtf8(RELOAD_FRAME)));
|
|
117
|
-
/** Whether a response carries an HTML body. */
|
|
118
|
-
const isHtml = (response) => {
|
|
119
|
-
const ct = response.headers.get("content-type");
|
|
120
|
-
return ct !== null && ct.includes("text/html");
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* Dev HTML headers: drop `content-length` (the appended
|
|
124
|
-
* script grew the body) and force `no-store` so a tunnel/
|
|
125
|
-
* CDN never serves stale inlined styles after an edit.
|
|
126
|
-
*/
|
|
127
|
-
const devHtmlHeaders = (headers) => {
|
|
128
|
-
const next = new Headers([...headers].filter(([key]) => {
|
|
129
|
-
const lower = key.toLowerCase();
|
|
130
|
-
return (lower !== "content-length" &&
|
|
131
|
-
lower !== "cache-control");
|
|
132
|
-
}));
|
|
133
|
-
next.set("cache-control", "no-store");
|
|
134
|
-
return next;
|
|
135
|
-
};
|
|
136
|
-
/** Append the live-reload script to an HTML response. */
|
|
137
|
-
const decorateHtmlResponse = (response) => isHtml(response)
|
|
138
|
-
? response
|
|
139
|
-
.text()
|
|
140
|
-
.then((html) => new Response(decorateDevHtml(html), {
|
|
141
|
-
status: response.status,
|
|
142
|
-
headers: devHtmlHeaders(response.headers),
|
|
143
|
-
}))
|
|
144
|
-
: Promise.resolve(response);
|
|
145
|
-
/**
|
|
146
|
-
* The wrapping dev handler: 403 a disallowed Host, answer
|
|
147
|
-
* the SSE route, otherwise run the live app Fetch and
|
|
148
|
-
* append the live-reload script to its HTML.
|
|
149
|
-
*/
|
|
150
|
-
const devHandler = (state, allowedHosts) => (request) => {
|
|
151
|
-
const url = new URL(request.url);
|
|
152
|
-
if (!isAllowedHost(allowedHosts)(url.host)) {
|
|
153
|
-
return Promise.resolve(forbidden());
|
|
154
|
-
}
|
|
155
|
-
if (url.pathname === RELOAD_PATH) {
|
|
156
|
-
return Promise.resolve(sseResponse(state.clients));
|
|
157
|
-
}
|
|
158
|
-
return state
|
|
159
|
-
.appFetch(request)
|
|
160
|
-
.then(decorateHtmlResponse);
|
|
161
|
-
};
|
|
162
|
-
/** Resolve a config value that may be absolute or root-relative. */
|
|
163
|
-
const under = (root, path) => isAbsolute(path)
|
|
164
|
-
? path
|
|
165
|
-
: resolve(root, path);
|
|
166
|
-
/**
|
|
167
|
-
* Register the dev-only cross-package source resolver
|
|
168
|
-
* (`bin/appAliasHook.mjs`) with the alias rules, so a
|
|
169
|
-
* dependency's `<prefix>/*` imports load from source and
|
|
170
|
-
* hot-reload. Registered later than the package's own hook
|
|
171
|
-
* so it runs first and short-circuits on an alias hit.
|
|
172
|
-
*/
|
|
173
|
-
const registerSourceAliases = (aliases) => {
|
|
174
|
-
const hookUrl = new URL("../../../bin/appAliasHook.mjs", import.meta.url).href;
|
|
175
|
-
register(hookUrl, import.meta.url, {
|
|
176
|
-
data: {
|
|
177
|
-
aliases: aliases.map((a) => ({
|
|
178
|
-
prefix: a.prefix,
|
|
179
|
-
srcDir: a.srcDir,
|
|
180
|
-
})),
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
};
|
|
184
|
-
/**
|
|
185
|
-
* Map an fs.watch filename (relative to some watched root)
|
|
186
|
-
* to an absolute path by probing each root, or null when
|
|
187
|
-
* it matches none (a deletion) — the reload decision then
|
|
188
|
-
* reloads conservatively.
|
|
189
|
-
*/
|
|
190
|
-
const toChanged = (roots, filename) => {
|
|
191
|
-
for (const root of roots) {
|
|
192
|
-
const abs = resolve(root, filename);
|
|
193
|
-
if (existsSync(abs)) {
|
|
194
|
-
return abs;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return null;
|
|
198
|
-
};
|
|
199
|
-
/**
|
|
200
|
-
* A single hot-reload cycle: refresh the graph, decide
|
|
201
|
-
* whether the change is relevant, then bump the version,
|
|
202
|
-
* re-import the entry (re-evaluating the changed
|
|
203
|
-
* subgraph), swap the live Fetch, and notify browsers. A
|
|
204
|
-
* failed re-import keeps the last good Fetch so a
|
|
205
|
-
* mid-edit save never crashes the loop.
|
|
206
|
-
*/
|
|
207
|
-
const reload = async (state, entryUrl, watchAbs, aliases, filename) => {
|
|
208
|
-
state.graph = scanGraph(watchAbs, aliases);
|
|
209
|
-
const changed = toChanged(watchAbs, filename);
|
|
210
|
-
if (changed !== null &&
|
|
211
|
-
!shouldReload(state.graph, changed)) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
state.version += 1;
|
|
215
|
-
try {
|
|
216
|
-
state.appFetch = await load(entryUrl, state.version);
|
|
217
|
-
}
|
|
218
|
-
catch (e) {
|
|
219
|
-
log(`plgg-bundle dev: reload failed (${msg(e)}) — keeping last good build`);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
notifyReload(state.clients);
|
|
223
|
-
log(`plgg-bundle dev: hot-reloaded (${filename})`);
|
|
224
|
-
};
|
|
225
|
-
/** The URL the dev server is reachable at. */
|
|
226
|
-
const devUrl = (port) => `http://localhost:${port}/`;
|
|
227
|
-
/** The port a listening server actually bound (honours port 0). */
|
|
228
|
-
const boundPort = (server, fallback) => {
|
|
229
|
-
const addr = server.address();
|
|
230
|
-
return typeof addr === "object" &&
|
|
231
|
-
addr !== null &&
|
|
232
|
-
typeof addr.port === "number"
|
|
233
|
-
? addr.port
|
|
234
|
-
: fallback;
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
* Start the dev server for a config's `dev` section: load
|
|
238
|
-
* the app Fetch, serve it over node:http, watch the source
|
|
239
|
-
* roots, and hot-reload on every relevant code/content
|
|
240
|
-
* edit. Resolves once the listener is up, with the
|
|
241
|
-
* reachable URL and a `close` handle.
|
|
242
|
-
*/
|
|
243
|
-
export const runDevServer = async (config) => {
|
|
244
|
-
const dev = config.dev;
|
|
245
|
-
if (dev === undefined) {
|
|
246
|
-
throw new Error("plgg-bundle dev: config has no `dev` section");
|
|
247
|
-
}
|
|
248
|
-
const entryUrl = pathToFileURL(under(config.root, dev.entry)).href;
|
|
249
|
-
const watchAbs = dev.watch.map((w) => under(config.root, w));
|
|
250
|
-
// The app's own self-alias (source), plus any
|
|
251
|
-
// cross-package `sourceAliases` — the resolution rules for
|
|
252
|
-
// both the module graph AND the loader hook.
|
|
253
|
-
const aliases = [
|
|
254
|
-
{
|
|
255
|
-
prefix: config.alias.prefix,
|
|
256
|
-
srcDir: join(config.root, config.alias.srcRoot),
|
|
257
|
-
},
|
|
258
|
-
...dev.sourceAliases.map((a) => ({
|
|
259
|
-
prefix: a.prefix,
|
|
260
|
-
srcDir: under(config.root, a.srcDir),
|
|
261
|
-
})),
|
|
262
|
-
];
|
|
263
|
-
// Register the cross-package source resolver BEFORE the
|
|
264
|
-
// first entry import, so a dependency's `<prefix>/*`
|
|
265
|
-
// loads from source and hot-reloads. Only needed when the
|
|
266
|
-
// app pulls another package's source (a self-contained
|
|
267
|
-
// app resolves everything relatively / via its own hook).
|
|
268
|
-
if (dev.sourceAliases.length > 0) {
|
|
269
|
-
registerSourceAliases(aliases);
|
|
270
|
-
}
|
|
271
|
-
const state = {
|
|
272
|
-
version: 1,
|
|
273
|
-
appFetch: await load(entryUrl, 1),
|
|
274
|
-
graph: scanGraph(watchAbs, aliases),
|
|
275
|
-
clients: new Set(),
|
|
276
|
-
};
|
|
277
|
-
const handler = devHandler(state, dev.allowedHosts);
|
|
278
|
-
const options = {
|
|
279
|
-
port: dev.port,
|
|
280
|
-
};
|
|
281
|
-
const server = await new Promise((ready) => {
|
|
282
|
-
const s = serveFetch(options, () => handler, () => ready(s))();
|
|
283
|
-
});
|
|
284
|
-
const url = devUrl(boundPort(server, dev.port));
|
|
285
|
-
log(`plgg-bundle dev on ${url}`);
|
|
286
|
-
const watchers = watchRoots(watchAbs, (filename) => {
|
|
287
|
-
void reload(state, entryUrl, watchAbs, aliases, filename);
|
|
288
|
-
});
|
|
289
|
-
return {
|
|
290
|
-
url,
|
|
291
|
-
close: () => {
|
|
292
|
-
server.closeAllConnections();
|
|
293
|
-
server.close();
|
|
294
|
-
watchers.forEach((w) => w.close());
|
|
295
|
-
},
|
|
296
|
-
};
|
|
297
|
-
};
|
|
298
|
-
//# sourceMappingURL=devServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../src/Dev/node/devServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type IncomingMessage, type ServerResponse, type Server } from "node:http";
|
|
2
|
-
import { type Fetch } from "plgg-bundle/Dev/model/Fetch";
|
|
3
|
-
/** How the dev server binds its node:http listener. */
|
|
4
|
-
export type ServeOptions = Readonly<{
|
|
5
|
-
port: number;
|
|
6
|
-
hostname?: string;
|
|
7
|
-
}>;
|
|
8
|
-
/** Convert a Node request (+ buffered body) into a Request. */
|
|
9
|
-
export declare const toRequest: (req: IncomingMessage, body: ArrayBuffer) => Request;
|
|
10
|
-
/** Write a Web Response back onto a Node ServerResponse. */
|
|
11
|
-
export declare const writeResponse: (res: ServerResponse, response: Response) => Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* Serve a {@link Fetch} over a node:http server
|
|
14
|
-
* (data-last). The handler is read fresh from `current()`
|
|
15
|
-
* per request, so the dev loop can hot-swap the live
|
|
16
|
-
* `Fetch` without rebinding the listener.
|
|
17
|
-
*/
|
|
18
|
-
export declare const serveFetch: (options: ServeOptions, current: () => Fetch, onListen?: () => void) => () => Server;
|
|
19
|
-
//# sourceMappingURL=httpAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpAdapter.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/httpAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,MAAM,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAUzD,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AA4CH,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GACpB,KAAK,eAAe,EACpB,MAAM,WAAW,KAChB,OAgBF,CAAC;AAqBF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,GACxB,KAAK,cAAc,EACnB,UAAU,QAAQ,KACjB,OAAO,CAAC,IAAI,CAUd,CAAC;AAUF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAEnB,SAAS,YAAY,EACrB,SAAS,MAAM,KAAK,EACpB,WAAW,MAAM,IAAI,WAEnB,MAoBH,CAAC"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { createServer, } from "node:http";
|
|
2
|
-
import {} from "plgg-bundle/Dev/model/Fetch";
|
|
3
|
-
/** Buffer a request body into an ArrayBuffer. */
|
|
4
|
-
const collectBody = (req) => new Promise((resolve, reject) => {
|
|
5
|
-
const chunks = [];
|
|
6
|
-
req.on("data", (chunk) => {
|
|
7
|
-
chunks.push(chunk);
|
|
8
|
-
});
|
|
9
|
-
req.on("end", () => {
|
|
10
|
-
const merged = Buffer.concat(chunks);
|
|
11
|
-
const copy = new ArrayBuffer(merged.byteLength);
|
|
12
|
-
new Uint8Array(copy).set(merged);
|
|
13
|
-
resolve(copy);
|
|
14
|
-
});
|
|
15
|
-
req.on("error", reject);
|
|
16
|
-
});
|
|
17
|
-
/** Copy Node's incoming headers into Web Headers. */
|
|
18
|
-
const buildHeaders = (raw) => new Headers(Object.entries(raw).flatMap(([key, value]) => value === undefined
|
|
19
|
-
? []
|
|
20
|
-
: typeof value === "string"
|
|
21
|
-
? [[key, value]]
|
|
22
|
-
: value.map((v) => [
|
|
23
|
-
key,
|
|
24
|
-
v,
|
|
25
|
-
])));
|
|
26
|
-
/** Convert a Node request (+ buffered body) into a Request. */
|
|
27
|
-
export const toRequest = (req, body) => {
|
|
28
|
-
const method = req.method ?? "GET";
|
|
29
|
-
const host = req.headers.host ?? "localhost";
|
|
30
|
-
const url = `http://${host}${req.url ?? "/"}`;
|
|
31
|
-
return method !== "GET" &&
|
|
32
|
-
method !== "HEAD" &&
|
|
33
|
-
body.byteLength > 0
|
|
34
|
-
? new Request(url, {
|
|
35
|
-
method,
|
|
36
|
-
headers: buildHeaders(req.headers),
|
|
37
|
-
body,
|
|
38
|
-
})
|
|
39
|
-
: new Request(url, {
|
|
40
|
-
method,
|
|
41
|
-
headers: buildHeaders(req.headers),
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
/** Stream a Web ReadableStream of bytes onto the Node response. */
|
|
45
|
-
const pump = (reader, res) => reader.read().then((chunk) => chunk.done
|
|
46
|
-
? new Promise((resolve) => res.end(() => resolve()))
|
|
47
|
-
: new Promise((resolve, reject) => res.write(Buffer.from(chunk.value), (e) => e ? reject(e) : resolve())).then(() => pump(reader, res)));
|
|
48
|
-
/** Write a Web Response back onto a Node ServerResponse. */
|
|
49
|
-
export const writeResponse = (res, response) => {
|
|
50
|
-
res.statusCode = response.status;
|
|
51
|
-
response.headers.forEach((value, key) => res.setHeader(key, value));
|
|
52
|
-
return response.body === null
|
|
53
|
-
? new Promise((resolve) => res.end(() => resolve()))
|
|
54
|
-
: pump(response.body.getReader(), res);
|
|
55
|
-
};
|
|
56
|
-
/** Last-resort 500 when the adapter itself throws. */
|
|
57
|
-
const writeError = (res) => {
|
|
58
|
-
res.statusCode = 500;
|
|
59
|
-
res.end("Internal Server Error");
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Serve a {@link Fetch} over a node:http server
|
|
63
|
-
* (data-last). The handler is read fresh from `current()`
|
|
64
|
-
* per request, so the dev loop can hot-swap the live
|
|
65
|
-
* `Fetch` without rebinding the listener.
|
|
66
|
-
*/
|
|
67
|
-
export const serveFetch = (options, current, onListen) => () => {
|
|
68
|
-
const server = createServer((req, res) => collectBody(req)
|
|
69
|
-
.then((body) => current()(toRequest(req, body)))
|
|
70
|
-
.then((response) => writeResponse(res, response))
|
|
71
|
-
.catch(() => writeError(res)));
|
|
72
|
-
return options.hostname === undefined
|
|
73
|
-
? server.listen(options.port, () => onListen?.())
|
|
74
|
-
: server.listen(options.port, options.hostname, () => onListen?.());
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=httpAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpAdapter.js","sourceRoot":"","sources":["../../../src/Dev/node/httpAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type ModuleGraph } from "plgg-bundle/Dev/model/ModuleGraph";
|
|
2
|
-
/**
|
|
3
|
-
* A self-alias resolution rule: `<prefix>`/`<prefix>/<sub>`
|
|
4
|
-
* → `<srcDir>`/`<srcDir>/<sub>`. One per package whose
|
|
5
|
-
* source participates in dev (the app's own, plus any
|
|
6
|
-
* cross-package `sourceAliases`).
|
|
7
|
-
*/
|
|
8
|
-
export type Alias = Readonly<{
|
|
9
|
-
prefix: string;
|
|
10
|
-
srcDir: string;
|
|
11
|
-
}>;
|
|
12
|
-
/**
|
|
13
|
-
* Scan the watch roots and build the local
|
|
14
|
-
* {@link ModuleGraph}, resolving relative AND aliased
|
|
15
|
-
* imports (every rule in `aliases`) so cross-package source
|
|
16
|
-
* edges are captured. Unreadable roots/files are skipped (a
|
|
17
|
-
* scan is best-effort — the reload decision falls back to
|
|
18
|
-
* reloading when the graph is empty).
|
|
19
|
-
*/
|
|
20
|
-
export declare const scanGraph: (roots: ReadonlyArray<string>, aliases: ReadonlyArray<Alias>) => ModuleGraph;
|
|
21
|
-
//# sourceMappingURL=scanGraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanGraph.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/scanGraph.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkBrE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,SAAS,aAAa,CAAC,KAAK,CAAC,KAC5B,WAKA,CAAC"}
|