@c9up/aurora 0.1.9 → 0.1.10
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/dist/AuroraProvider.d.ts +1 -0
- package/dist/AuroraProvider.js +16 -43
- package/package.json +1 -1
- package/src/AuroraProvider.ts +16 -48
package/dist/AuroraProvider.d.ts
CHANGED
package/dist/AuroraProvider.js
CHANGED
|
@@ -48,38 +48,23 @@ export default class AuroraProvider {
|
|
|
48
48
|
setAurora(manager);
|
|
49
49
|
}
|
|
50
50
|
async start() {
|
|
51
|
-
// Asset routes are registered in `start()` — after preloads —
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
try {
|
|
66
|
-
routerMod = await import(routerSpecifier);
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
if (isModuleNotFound(err))
|
|
70
|
-
return;
|
|
71
|
-
throw err;
|
|
72
|
-
}
|
|
51
|
+
// Asset routes are registered in `start()` — after preloads — so apps can
|
|
52
|
+
// swap aurora's pages root in a preload if they wanted to.
|
|
53
|
+
//
|
|
54
|
+
// Resolve the host router from the container, where Ream registers it as
|
|
55
|
+
// `'router'` (Ignitor). Reading it from the container — instead of
|
|
56
|
+
// importing `@c9up/ream/services/router` — keeps aurora runtime-agnostic:
|
|
57
|
+
// a non-Ream host simply never registers `'router'`, so aurora silently
|
|
58
|
+
// skips its asset routes. The container yields the real Router instance
|
|
59
|
+
// (registered before any provider's `start()`), so route-registration
|
|
60
|
+
// failures (slug collision, AuroraManager crash) propagate with a stack
|
|
61
|
+
// instead of being misread as "the asset routes just stopped mounting".
|
|
62
|
+
if (!this.app.container.has("router"))
|
|
63
|
+
return;
|
|
64
|
+
const router = this.app.container.resolve("router");
|
|
73
65
|
const manager = this.app.container.resolve(AuroraManager);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
routerMod.default.get("/_assets/pages/*", adaptHandler(manager.pageAssetsHandler()));
|
|
77
|
-
}
|
|
78
|
-
catch (err) {
|
|
79
|
-
if (isRouterProxyUninit(err))
|
|
80
|
-
return;
|
|
81
|
-
throw err;
|
|
82
|
-
}
|
|
66
|
+
router.get("/_assets/aurora/*", adaptHandler(manager.auroraAssetsHandler()));
|
|
67
|
+
router.get("/_assets/pages/*", adaptHandler(manager.pageAssetsHandler()));
|
|
83
68
|
}
|
|
84
69
|
async ready() { }
|
|
85
70
|
async shutdown() { }
|
|
@@ -131,15 +116,3 @@ export default class AuroraProvider {
|
|
|
131
116
|
function adaptHandler(handler) {
|
|
132
117
|
return (ctx) => handler(ctx);
|
|
133
118
|
}
|
|
134
|
-
/** Node's ERR_MODULE_NOT_FOUND surfaces on an Error subclass with `code`. */
|
|
135
|
-
function isModuleNotFound(err) {
|
|
136
|
-
if (err === null || typeof err !== "object" || !("code" in err))
|
|
137
|
-
return false;
|
|
138
|
-
const { code } = err;
|
|
139
|
-
return code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND";
|
|
140
|
-
}
|
|
141
|
-
/** Ream's router proxy throws this exact string before Ignitor wires it. */
|
|
142
|
-
function isRouterProxyUninit(err) {
|
|
143
|
-
return (err instanceof Error &&
|
|
144
|
-
err.message.includes("Router accessed before initialization"));
|
|
145
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c9up/aurora",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Aurora — reactive UI runtime for the Ream framework. Tagged-template DOM, signal-based state, isomorphic SSR + hydration, zero build step.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/src/AuroraProvider.ts
CHANGED
|
@@ -31,6 +31,7 @@ import { renderToString } from "./ssr.js";
|
|
|
31
31
|
interface AuroraContainer {
|
|
32
32
|
singleton(token: unknown, factory: () => unknown): void;
|
|
33
33
|
resolve<T = unknown>(token: unknown): T;
|
|
34
|
+
has(token: unknown): boolean;
|
|
34
35
|
}
|
|
35
36
|
interface AuroraConfigStore {
|
|
36
37
|
get<T = unknown>(key: string): T | undefined;
|
|
@@ -76,40 +77,22 @@ export default class AuroraProvider {
|
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
async start(): Promise<void> {
|
|
79
|
-
// Asset routes are registered in `start()` — after preloads —
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
let routerMod: { default: ReamRouter };
|
|
93
|
-
try {
|
|
94
|
-
routerMod = await import(routerSpecifier);
|
|
95
|
-
} catch (err) {
|
|
96
|
-
if (isModuleNotFound(err)) return;
|
|
97
|
-
throw err;
|
|
98
|
-
}
|
|
80
|
+
// Asset routes are registered in `start()` — after preloads — so apps can
|
|
81
|
+
// swap aurora's pages root in a preload if they wanted to.
|
|
82
|
+
//
|
|
83
|
+
// Resolve the host router from the container, where Ream registers it as
|
|
84
|
+
// `'router'` (Ignitor). Reading it from the container — instead of
|
|
85
|
+
// importing `@c9up/ream/services/router` — keeps aurora runtime-agnostic:
|
|
86
|
+
// a non-Ream host simply never registers `'router'`, so aurora silently
|
|
87
|
+
// skips its asset routes. The container yields the real Router instance
|
|
88
|
+
// (registered before any provider's `start()`), so route-registration
|
|
89
|
+
// failures (slug collision, AuroraManager crash) propagate with a stack
|
|
90
|
+
// instead of being misread as "the asset routes just stopped mounting".
|
|
91
|
+
if (!this.app.container.has("router")) return;
|
|
92
|
+
const router = this.app.container.resolve<ReamRouter>("router");
|
|
99
93
|
const manager = this.app.container.resolve<AuroraManager>(AuroraManager);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"/_assets/aurora/*",
|
|
103
|
-
adaptHandler(manager.auroraAssetsHandler()),
|
|
104
|
-
);
|
|
105
|
-
routerMod.default.get(
|
|
106
|
-
"/_assets/pages/*",
|
|
107
|
-
adaptHandler(manager.pageAssetsHandler()),
|
|
108
|
-
);
|
|
109
|
-
} catch (err) {
|
|
110
|
-
if (isRouterProxyUninit(err)) return;
|
|
111
|
-
throw err;
|
|
112
|
-
}
|
|
94
|
+
router.get("/_assets/aurora/*", adaptHandler(manager.auroraAssetsHandler()));
|
|
95
|
+
router.get("/_assets/pages/*", adaptHandler(manager.pageAssetsHandler()));
|
|
113
96
|
}
|
|
114
97
|
|
|
115
98
|
async ready(): Promise<void> {}
|
|
@@ -170,18 +153,3 @@ function adaptHandler(
|
|
|
170
153
|
}) => Promise<void> {
|
|
171
154
|
return (ctx) => handler(ctx);
|
|
172
155
|
}
|
|
173
|
-
|
|
174
|
-
/** Node's ERR_MODULE_NOT_FOUND surfaces on an Error subclass with `code`. */
|
|
175
|
-
function isModuleNotFound(err: unknown): boolean {
|
|
176
|
-
if (err === null || typeof err !== "object" || !("code" in err)) return false;
|
|
177
|
-
const { code } = err;
|
|
178
|
-
return code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND";
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/** Ream's router proxy throws this exact string before Ignitor wires it. */
|
|
182
|
-
function isRouterProxyUninit(err: unknown): boolean {
|
|
183
|
-
return (
|
|
184
|
-
err instanceof Error &&
|
|
185
|
-
err.message.includes("Router accessed before initialization")
|
|
186
|
-
);
|
|
187
|
-
}
|