@emkodev/emroute 1.12.0-beta.1 → 1.12.0-beta.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/core/pipeline/pipeline.ts +13 -5
- package/core/util/html.util.ts +2 -2
- package/dist/core/pipeline/pipeline.d.ts +1 -0
- package/dist/core/pipeline/pipeline.js +12 -5
- package/dist/core/pipeline/pipeline.js.map +1 -1
- package/dist/core/util/html.util.d.ts +1 -1
- package/dist/core/util/html.util.js +2 -2
- package/dist/core/util/html.util.js.map +1 -1
- package/dist/emroute.js +12 -9
- package/dist/emroute.js.map +4 -4
- package/dist/runtime/bun/fs/bun-fs.runtime.js +5 -13
- package/dist/runtime/bun/fs/bun-fs.runtime.js.map +1 -1
- package/dist/server/build.util.d.ts +9 -11
- package/dist/server/build.util.js +9 -111
- package/dist/server/build.util.js.map +1 -1
- package/package.json +1 -1
- package/runtime/bun/fs/bun-fs.runtime.ts +5 -12
- package/server/build.util.ts +9 -131
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun-fs.runtime.js","sourceRoot":"","sources":["../../../../runtime/bun/fs/bun-fs.runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bun-fs.runtime.js","sourceRoot":"","sources":["../../../../runtime/bun/fs/bun-fs.runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
import type { Runtime } from '../runtime/abstract.runtime.ts';
|
|
12
9
|
import type { SpaMode } from '../core/type/widget.type.ts';
|
|
@@ -28,13 +25,14 @@ export interface BuildOptions {
|
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
31
|
-
* Build
|
|
28
|
+
* Build SPA shell assets and write them into the runtime.
|
|
32
29
|
*
|
|
33
30
|
* Produces:
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
36
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
37
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
31
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
32
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
38
33
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
34
|
+
*
|
|
35
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
36
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
39
37
|
*/
|
|
40
38
|
export declare function buildClientBundles(options: BuildOptions): Promise<void>;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
import { readFile } from 'node:fs/promises';
|
|
12
9
|
import { createRequire } from 'node:module';
|
|
13
10
|
import { resolve } from 'node:path';
|
|
14
|
-
import { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH, ELEMENTS_MANIFEST_PATH, } from "../core/runtime/abstract.runtime.js";
|
|
15
11
|
import { generateMainTs } from "./codegen.util.js";
|
|
16
12
|
/** Package specifiers that map to emroute.js via import map. */
|
|
17
13
|
export const EMROUTE_EXTERNALS = [
|
|
@@ -23,20 +19,19 @@ export const EMROUTE_EXTERNALS = [
|
|
|
23
19
|
];
|
|
24
20
|
const DEFAULT_BUNDLE_PATHS = { emroute: '/emroute.js', app: '/app.js' };
|
|
25
21
|
/**
|
|
26
|
-
* Build
|
|
22
|
+
* Build SPA shell assets and write them into the runtime.
|
|
27
23
|
*
|
|
28
24
|
* Produces:
|
|
29
|
-
* -
|
|
30
|
-
* -
|
|
31
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
32
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
25
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
26
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
33
27
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
28
|
+
*
|
|
29
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
30
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
34
31
|
*/
|
|
35
32
|
export async function buildClientBundles(options) {
|
|
36
33
|
const { runtime, root, spa, entryPoint } = options;
|
|
37
34
|
const paths = options.bundlePaths ?? DEFAULT_BUNDLE_PATHS;
|
|
38
|
-
// Merge .ts modules → .js with inlined companions, update manifests
|
|
39
|
-
await mergeModules(runtime);
|
|
40
35
|
if (spa === 'none')
|
|
41
36
|
return;
|
|
42
37
|
// Copy pre-built emroute.js from the package dist/
|
|
@@ -110,101 +105,4 @@ async function writeImportMap(runtime, paths) {
|
|
|
110
105
|
body: JSON.stringify({ imports }, null, 2),
|
|
111
106
|
});
|
|
112
107
|
}
|
|
113
|
-
// ── Module merging ───────────────────────────────────────────────────
|
|
114
|
-
/** Convert a .ts path to .js (e.g. "routes/about.page.ts" → "routes/about.page.js"). */
|
|
115
|
-
function tsToJs(path) {
|
|
116
|
-
return path.replace(/\.ts$/, '.js');
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Materialize a .ts module as a browser-ready .js file in the runtime.
|
|
120
|
-
*
|
|
121
|
-
* Queries the runtime for the .ts path. The runtime is expected to serve .ts
|
|
122
|
-
* as transpiled JavaScript with companion files inlined — the build step is
|
|
123
|
-
* a pre-computation of what the runtime serves on the fly.
|
|
124
|
-
*
|
|
125
|
-
* Returns the .js output path (same format as the input tsPath).
|
|
126
|
-
*/
|
|
127
|
-
async function transpileAndMerge(runtime, tsPath) {
|
|
128
|
-
const abs = tsPath.startsWith('/') ? tsPath : '/' + tsPath;
|
|
129
|
-
const response = await runtime.query(abs);
|
|
130
|
-
if (response.status === 404)
|
|
131
|
-
throw new Error(`[emroute] Module not found: ${tsPath}`);
|
|
132
|
-
const jsPath = tsToJs(tsPath);
|
|
133
|
-
const absJsPath = jsPath.startsWith('/') ? jsPath : '/' + jsPath;
|
|
134
|
-
await runtime.command(absJsPath, { body: await response.text() });
|
|
135
|
-
return jsPath;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Walk the route tree and widget manifest, transpile+merge each .ts module,
|
|
139
|
-
* update the manifests to reference .js paths, and write them back.
|
|
140
|
-
*/
|
|
141
|
-
async function mergeModules(runtime) {
|
|
142
|
-
// Read route tree
|
|
143
|
-
const routesResponse = await runtime.query(ROUTES_MANIFEST_PATH);
|
|
144
|
-
if (routesResponse.status === 404)
|
|
145
|
-
return;
|
|
146
|
-
const routeTree = await routesResponse.json();
|
|
147
|
-
// Read widget manifest
|
|
148
|
-
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
149
|
-
const widgetEntries = widgetsResponse.status !== 404
|
|
150
|
-
? await widgetsResponse.json()
|
|
151
|
-
: [];
|
|
152
|
-
// Merge route modules
|
|
153
|
-
async function walkRoutes(node) {
|
|
154
|
-
if (node.files?.ts) {
|
|
155
|
-
node.files.js = await transpileAndMerge(runtime, node.files.ts);
|
|
156
|
-
delete node.files.ts;
|
|
157
|
-
delete node.files.html;
|
|
158
|
-
delete node.files.md;
|
|
159
|
-
delete node.files.css;
|
|
160
|
-
}
|
|
161
|
-
if (node.redirect && node.redirect.endsWith('.ts')) {
|
|
162
|
-
await transpileAndMerge(runtime, node.redirect);
|
|
163
|
-
node.redirect = tsToJs(node.redirect);
|
|
164
|
-
}
|
|
165
|
-
if (node.errorBoundary && node.errorBoundary.endsWith('.ts')) {
|
|
166
|
-
await transpileAndMerge(runtime, node.errorBoundary);
|
|
167
|
-
node.errorBoundary = tsToJs(node.errorBoundary);
|
|
168
|
-
}
|
|
169
|
-
if (node.children) {
|
|
170
|
-
for (const child of Object.values(node.children))
|
|
171
|
-
await walkRoutes(child);
|
|
172
|
-
}
|
|
173
|
-
if (node.dynamic)
|
|
174
|
-
await walkRoutes(node.dynamic.child);
|
|
175
|
-
if (node.wildcard)
|
|
176
|
-
await walkRoutes(node.wildcard.child);
|
|
177
|
-
}
|
|
178
|
-
await walkRoutes(routeTree);
|
|
179
|
-
// Merge widget modules
|
|
180
|
-
for (const entry of widgetEntries) {
|
|
181
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
182
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
183
|
-
delete entry.files;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// Read element manifest
|
|
187
|
-
const elementsResponse = await runtime.query(ELEMENTS_MANIFEST_PATH);
|
|
188
|
-
const elementEntries = elementsResponse.status !== 404
|
|
189
|
-
? await elementsResponse.json()
|
|
190
|
-
: [];
|
|
191
|
-
// Merge element modules
|
|
192
|
-
for (const entry of elementEntries) {
|
|
193
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
194
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
// Write updated manifests back
|
|
198
|
-
await runtime.command(ROUTES_MANIFEST_PATH, {
|
|
199
|
-
body: JSON.stringify(routeTree),
|
|
200
|
-
});
|
|
201
|
-
await runtime.command(WIDGETS_MANIFEST_PATH, {
|
|
202
|
-
body: JSON.stringify(widgetEntries),
|
|
203
|
-
});
|
|
204
|
-
if (elementEntries.length > 0) {
|
|
205
|
-
await runtime.command(ELEMENTS_MANIFEST_PATH, {
|
|
206
|
-
body: JSON.stringify(elementEntries),
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
108
|
//# sourceMappingURL=build.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emkodev/emroute",
|
|
3
|
-
"version": "1.12.0-beta.
|
|
3
|
+
"version": "1.12.0-beta.3",
|
|
4
4
|
"description": "File-based (but storage-agnostic) router with triple rendering (SPA, SSR HTML, SSR Markdown). Zero dependencies.",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"author": "emko.dev",
|
|
@@ -163,18 +163,11 @@ export class BunFsRuntime extends Runtime {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
override
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const blob = new Blob([source], { type: 'application/javascript' });
|
|
172
|
-
const url = URL.createObjectURL(blob);
|
|
173
|
-
try {
|
|
174
|
-
return await import(url);
|
|
175
|
-
} finally {
|
|
176
|
-
URL.revokeObjectURL(url);
|
|
177
|
-
}
|
|
166
|
+
override loadModule(path: string): Promise<unknown> {
|
|
167
|
+
// Cache-busting query string makes Bun treat each call as a unique
|
|
168
|
+
// module, bypassing the module cache. Unlike blob URLs, a real file
|
|
169
|
+
// path preserves filesystem context for bare specifier resolution.
|
|
170
|
+
return import(this.root + path + '?t=' + Date.now());
|
|
178
171
|
}
|
|
179
172
|
|
|
180
173
|
override async transpile(source: string): Promise<string> {
|
package/server/build.util.ts
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
|
|
12
9
|
import { readFile } from 'node:fs/promises';
|
|
13
10
|
import { createRequire } from 'node:module';
|
|
14
11
|
import { resolve } from 'node:path';
|
|
15
12
|
import type { Runtime } from '../runtime/abstract.runtime.ts';
|
|
16
|
-
import {
|
|
17
|
-
ROUTES_MANIFEST_PATH,
|
|
18
|
-
WIDGETS_MANIFEST_PATH,
|
|
19
|
-
ELEMENTS_MANIFEST_PATH,
|
|
20
|
-
} from '../core/runtime/abstract.runtime.ts';
|
|
21
|
-
import type { RouteNode } from '../core/type/route-tree.type.ts';
|
|
22
|
-
import type { WidgetManifestEntry } from '../core/type/widget.type.ts';
|
|
23
|
-
import type { ElementManifestEntry } from '../core/type/element.type.ts';
|
|
24
13
|
import { generateMainTs } from './codegen.util.ts';
|
|
25
14
|
import type { SpaMode } from '../core/type/widget.type.ts';
|
|
26
15
|
|
|
@@ -49,22 +38,20 @@ export interface BuildOptions {
|
|
|
49
38
|
const DEFAULT_BUNDLE_PATHS = { emroute: '/emroute.js', app: '/app.js' };
|
|
50
39
|
|
|
51
40
|
/**
|
|
52
|
-
* Build
|
|
41
|
+
* Build SPA shell assets and write them into the runtime.
|
|
53
42
|
*
|
|
54
43
|
* Produces:
|
|
55
|
-
* -
|
|
56
|
-
* -
|
|
57
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
58
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
44
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
45
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
59
46
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
47
|
+
*
|
|
48
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
49
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
60
50
|
*/
|
|
61
51
|
export async function buildClientBundles(options: BuildOptions): Promise<void> {
|
|
62
52
|
const { runtime, root, spa, entryPoint } = options;
|
|
63
53
|
const paths = options.bundlePaths ?? DEFAULT_BUNDLE_PATHS;
|
|
64
54
|
|
|
65
|
-
// Merge .ts modules → .js with inlined companions, update manifests
|
|
66
|
-
await mergeModules(runtime);
|
|
67
|
-
|
|
68
55
|
if (spa === 'none') return;
|
|
69
56
|
|
|
70
57
|
// Copy pre-built emroute.js from the package dist/
|
|
@@ -145,112 +132,3 @@ async function writeImportMap(
|
|
|
145
132
|
});
|
|
146
133
|
}
|
|
147
134
|
|
|
148
|
-
// ── Module merging ───────────────────────────────────────────────────
|
|
149
|
-
|
|
150
|
-
/** Convert a .ts path to .js (e.g. "routes/about.page.ts" → "routes/about.page.js"). */
|
|
151
|
-
function tsToJs(path: string): string {
|
|
152
|
-
return path.replace(/\.ts$/, '.js');
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Materialize a .ts module as a browser-ready .js file in the runtime.
|
|
157
|
-
*
|
|
158
|
-
* Queries the runtime for the .ts path. The runtime is expected to serve .ts
|
|
159
|
-
* as transpiled JavaScript with companion files inlined — the build step is
|
|
160
|
-
* a pre-computation of what the runtime serves on the fly.
|
|
161
|
-
*
|
|
162
|
-
* Returns the .js output path (same format as the input tsPath).
|
|
163
|
-
*/
|
|
164
|
-
async function transpileAndMerge(
|
|
165
|
-
runtime: Runtime,
|
|
166
|
-
tsPath: string,
|
|
167
|
-
): Promise<string> {
|
|
168
|
-
const abs = tsPath.startsWith('/') ? tsPath : '/' + tsPath;
|
|
169
|
-
const response = await runtime.query(abs);
|
|
170
|
-
if (response.status === 404) throw new Error(`[emroute] Module not found: ${tsPath}`);
|
|
171
|
-
|
|
172
|
-
const jsPath = tsToJs(tsPath);
|
|
173
|
-
const absJsPath = jsPath.startsWith('/') ? jsPath : '/' + jsPath;
|
|
174
|
-
await runtime.command(absJsPath, { body: await response.text() });
|
|
175
|
-
return jsPath;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Walk the route tree and widget manifest, transpile+merge each .ts module,
|
|
180
|
-
* update the manifests to reference .js paths, and write them back.
|
|
181
|
-
*/
|
|
182
|
-
async function mergeModules(runtime: Runtime): Promise<void> {
|
|
183
|
-
// Read route tree
|
|
184
|
-
const routesResponse = await runtime.query(ROUTES_MANIFEST_PATH);
|
|
185
|
-
if (routesResponse.status === 404) return;
|
|
186
|
-
const routeTree: RouteNode = await routesResponse.json();
|
|
187
|
-
|
|
188
|
-
// Read widget manifest
|
|
189
|
-
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
190
|
-
const widgetEntries: WidgetManifestEntry[] = widgetsResponse.status !== 404
|
|
191
|
-
? await widgetsResponse.json()
|
|
192
|
-
: [];
|
|
193
|
-
|
|
194
|
-
// Merge route modules
|
|
195
|
-
async function walkRoutes(node: RouteNode): Promise<void> {
|
|
196
|
-
if (node.files?.ts) {
|
|
197
|
-
node.files.js = await transpileAndMerge(runtime, node.files.ts);
|
|
198
|
-
delete node.files.ts;
|
|
199
|
-
delete node.files.html;
|
|
200
|
-
delete node.files.md;
|
|
201
|
-
delete node.files.css;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (node.redirect && node.redirect.endsWith('.ts')) {
|
|
205
|
-
await transpileAndMerge(runtime, node.redirect);
|
|
206
|
-
node.redirect = tsToJs(node.redirect);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (node.errorBoundary && node.errorBoundary.endsWith('.ts')) {
|
|
210
|
-
await transpileAndMerge(runtime, node.errorBoundary);
|
|
211
|
-
node.errorBoundary = tsToJs(node.errorBoundary);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
if (node.children) {
|
|
215
|
-
for (const child of Object.values(node.children)) await walkRoutes(child);
|
|
216
|
-
}
|
|
217
|
-
if (node.dynamic) await walkRoutes(node.dynamic.child);
|
|
218
|
-
if (node.wildcard) await walkRoutes(node.wildcard.child);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
await walkRoutes(routeTree);
|
|
222
|
-
|
|
223
|
-
// Merge widget modules
|
|
224
|
-
for (const entry of widgetEntries) {
|
|
225
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
226
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
227
|
-
delete entry.files;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Read element manifest
|
|
232
|
-
const elementsResponse = await runtime.query(ELEMENTS_MANIFEST_PATH);
|
|
233
|
-
const elementEntries: ElementManifestEntry[] = elementsResponse.status !== 404
|
|
234
|
-
? await elementsResponse.json()
|
|
235
|
-
: [];
|
|
236
|
-
|
|
237
|
-
// Merge element modules
|
|
238
|
-
for (const entry of elementEntries) {
|
|
239
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
240
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Write updated manifests back
|
|
245
|
-
await runtime.command(ROUTES_MANIFEST_PATH, {
|
|
246
|
-
body: JSON.stringify(routeTree),
|
|
247
|
-
});
|
|
248
|
-
await runtime.command(WIDGETS_MANIFEST_PATH, {
|
|
249
|
-
body: JSON.stringify(widgetEntries),
|
|
250
|
-
});
|
|
251
|
-
if (elementEntries.length > 0) {
|
|
252
|
-
await runtime.command(ELEMENTS_MANIFEST_PATH, {
|
|
253
|
-
body: JSON.stringify(elementEntries),
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
}
|