@moriajs/renderer 0.4.4 → 0.4.7

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @moriajs/renderer@0.4.4 build C:\Codes\node\2026\github\moriajs\packages\renderer
2
+ > @moriajs/renderer@0.4.5 build C:\Codes\node\2026\github\moriajs\packages\renderer
3
3
  > tsc
4
4
 
package/dist/index.d.ts CHANGED
@@ -59,4 +59,11 @@ export declare function hydrate(component: any, container: Element, data?: any):
59
59
  * Get hydration data injected by the server.
60
60
  */
61
61
  export declare function getHydrationData<T = Record<string, unknown>>(): T | undefined;
62
+ /**
63
+ * Automatically boot the MoriaJS application on the client.
64
+ * Discovers the correct component based on hydration data and performs hydration.
65
+ *
66
+ * @param pages A glob import object from `import.meta.glob`.
67
+ */
68
+ export declare function bootstrap(pages: Record<string, () => Promise<any>>): Promise<void>;
62
69
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAEhC,SAAS,EAAE,GAAG,EACd,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAEzB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAM7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAEhC,SAAS,EAAE,GAAG,EACd,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAEzB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAM7E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCxF"}
package/dist/index.js CHANGED
@@ -105,4 +105,46 @@ export function getHydrationData() {
105
105
  }
106
106
  return undefined;
107
107
  }
108
+ /**
109
+ * Automatically boot the MoriaJS application on the client.
110
+ * Discovers the correct component based on hydration data and performs hydration.
111
+ *
112
+ * @param pages A glob import object from `import.meta.glob`.
113
+ */
114
+ export async function bootstrap(pages) {
115
+ const root = document.getElementById('app');
116
+ if (!root) {
117
+ console.error('[MoriaJS] #app root element not found');
118
+ return;
119
+ }
120
+ const data = getHydrationData();
121
+ const pagePath = data?._moria_page;
122
+ if (!pagePath) {
123
+ console.warn('[MoriaJS] No _moria_page found in hydration data');
124
+ return;
125
+ }
126
+ // Try to find the component in the glob map
127
+ // The path usually starts with ./routes/ or similar in the app space
128
+ // We try to match the tail of the key with the pagePath
129
+ const matchingKey = Object.keys(pages).find(key => key.endsWith(pagePath));
130
+ if (matchingKey) {
131
+ try {
132
+ const mod = await pages[matchingKey]();
133
+ const component = mod.default;
134
+ if (!component) {
135
+ console.error(`[MoriaJS] Component for ${pagePath} has no default export`);
136
+ return;
137
+ }
138
+ await hydrate(component, root, data);
139
+ console.log(`[MoriaJS] Hydrated: ${pagePath} ✓`);
140
+ }
141
+ catch (err) {
142
+ console.error(`[MoriaJS] Failed to hydrate ${pagePath}:`, err);
143
+ }
144
+ }
145
+ else {
146
+ console.error(`[MoriaJS] Could not find component for: ${pagePath}`);
147
+ console.log('Available pages:', Object.keys(pages));
148
+ }
149
+ }
108
150
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;AAChC,8DAA8D;AAC9D,SAAc,EACd,UAAyB,EAAE;IAE3B,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAO,QAAQ,CAAC,sCAAsC,CAAC,EAAgE,CAAC;IAC7I,MAAM,OAAO,GAAG,MAAO,QAAQ,CAAC,0BAA0B,CAAC,EAA2D,CAAC;IAEvH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC;IACpC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;QACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,eAAe,IAAI,cAAc,OAAO,IAAI,CAAC;aACtE,IAAI,CAAC,QAAQ,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ;QAChC,CAAC,CAAC,OAAO,CAAC,QAAQ;aACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,IAAI,IAAI,CAAC;aACvD,IAAI,CAAC,QAAQ,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW;QACvC,CAAC,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY;QACpF,CAAC,CAAC,EAAE,CAAC;IAET,gCAAgC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,sBAAsB,CAAC;IAElE,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,UAAU,GAAG;YACT,qDAAqD;YACrD,8BAA8B,WAAW,aAAa;SACzD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,+DAA+D,CAAC;IACjF,CAAC;IAED,OAAO;cACG,OAAO,CAAC,IAAI,IAAI,IAAI;;;;MAI5B,QAAQ;MACR,WAAW;aACJ,OAAO,CAAC,KAAK,IAAI,aAAa;;;oBAGvB,aAAa;MAC3B,eAAe;MACf,UAAU;;QAER,CAAC;AACT,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;AACzB,8DAA8D;AAC9D,SAAc,EACd,SAAkB,EAClB,IAAU;IAEV,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1B,kCAAkC;IAClC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;QACf,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;KACvD,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,8DAA8D;QAC9D,OAAQ,MAAc,CAAC,cAA+B,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moriajs/renderer",
3
- "version": "0.4.4",
3
+ "version": "0.4.7",
4
4
  "type": "module",
5
5
  "description": "MoriaJS renderer — Mithril.js SSR/CSR hybrid rendering engine",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -140,3 +140,50 @@ export function getHydrationData<T = Record<string, unknown>>(): T | undefined {
140
140
  }
141
141
  return undefined;
142
142
  }
143
+
144
+ /**
145
+ * Automatically boot the MoriaJS application on the client.
146
+ * Discovers the correct component based on hydration data and performs hydration.
147
+ *
148
+ * @param pages A glob import object from `import.meta.glob`.
149
+ */
150
+ export async function bootstrap(pages: Record<string, () => Promise<any>>): Promise<void> {
151
+ const root = document.getElementById('app');
152
+ if (!root) {
153
+ console.error('[MoriaJS] #app root element not found');
154
+ return;
155
+ }
156
+
157
+ const data = getHydrationData<{ _moria_page?: string }>();
158
+ const pagePath = data?._moria_page;
159
+
160
+ if (!pagePath) {
161
+ console.warn('[MoriaJS] No _moria_page found in hydration data');
162
+ return;
163
+ }
164
+
165
+ // Try to find the component in the glob map
166
+ // The path usually starts with ./routes/ or similar in the app space
167
+ // We try to match the tail of the key with the pagePath
168
+ const matchingKey = Object.keys(pages).find(key => key.endsWith(pagePath));
169
+
170
+ if (matchingKey) {
171
+ try {
172
+ const mod = await pages[matchingKey]();
173
+ const component = mod.default;
174
+
175
+ if (!component) {
176
+ console.error(`[MoriaJS] Component for ${pagePath} has no default export`);
177
+ return;
178
+ }
179
+
180
+ await hydrate(component, root, data);
181
+ console.log(`[MoriaJS] Hydrated: ${pagePath} ✓`);
182
+ } catch (err) {
183
+ console.error(`[MoriaJS] Failed to hydrate ${pagePath}:`, err);
184
+ }
185
+ } else {
186
+ console.error(`[MoriaJS] Could not find component for: ${pagePath}`);
187
+ console.log('Available pages:', Object.keys(pages));
188
+ }
189
+ }