@marko/language-tools 2.5.16 → 2.5.18
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/index.js +22 -27
- package/dist/index.mjs +22 -27
- package/marko.internal.d.ts +17 -34
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2151,11 +2151,19 @@ function ${templateName}() {
|
|
|
2151
2151
|
if (hoists) {
|
|
2152
2152
|
this.#extractor.write("const ");
|
|
2153
2153
|
this.#writeObjectKeys(hoists);
|
|
2154
|
-
this.#extractor.write(
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2154
|
+
this.#extractor.write(` = ${varShared("readScopes")}({`);
|
|
2155
|
+
for (const child of program.body) {
|
|
2156
|
+
if (child.type === 1 /* Tag */) {
|
|
2157
|
+
const renderId = this.#renderIds.get(child);
|
|
2158
|
+
if (renderId !== void 0) {
|
|
2159
|
+
this.#extractor.write(
|
|
2160
|
+
`${varLocal("rendered_" + renderId)}${SEP_COMMA_SPACE}`
|
|
2161
|
+
);
|
|
2162
|
+
}
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
this.#extractor.write(`});
|
|
2166
|
+
${varShared("noop")}(`);
|
|
2159
2167
|
this.#writeObjectKeys(hoists);
|
|
2160
2168
|
this.#extractor.write(");\n");
|
|
2161
2169
|
}
|
|
@@ -2271,9 +2279,7 @@ constructor(_?: Return) {}
|
|
|
2271
2279
|
}
|
|
2272
2280
|
if (renderId) {
|
|
2273
2281
|
this.#extractor.write(
|
|
2274
|
-
|
|
2275
|
-
"rendered"
|
|
2276
|
-
)}, ${renderId}, (() => {
|
|
2282
|
+
`const ${varLocal("rendered_" + renderId)} = (() => {
|
|
2277
2283
|
`
|
|
2278
2284
|
);
|
|
2279
2285
|
}
|
|
@@ -2322,7 +2328,7 @@ constructor(_?: Return) {}
|
|
|
2322
2328
|
this.#extractor.write("\n}\n");
|
|
2323
2329
|
}
|
|
2324
2330
|
if (renderId) {
|
|
2325
|
-
this.#extractor.write("\n})()
|
|
2331
|
+
this.#extractor.write("\n})()\n");
|
|
2326
2332
|
}
|
|
2327
2333
|
break;
|
|
2328
2334
|
}
|
|
@@ -2330,9 +2336,7 @@ constructor(_?: Return) {}
|
|
|
2330
2336
|
const renderId = this.#getRenderId(child);
|
|
2331
2337
|
if (renderId) {
|
|
2332
2338
|
this.#extractor.write(
|
|
2333
|
-
|
|
2334
|
-
"rendered"
|
|
2335
|
-
)}, ${renderId}, `
|
|
2339
|
+
`const ${varLocal("rendered_" + renderId)} = `
|
|
2336
2340
|
);
|
|
2337
2341
|
}
|
|
2338
2342
|
this.#extractor.write(
|
|
@@ -2355,11 +2359,7 @@ constructor(_?: Return) {}
|
|
|
2355
2359
|
void 0,
|
|
2356
2360
|
(body == null ? void 0 : body.content) ? getHoistSources(child) : void 0
|
|
2357
2361
|
);
|
|
2358
|
-
|
|
2359
|
-
this.#extractor.write("\n}));\n");
|
|
2360
|
-
} else {
|
|
2361
|
-
this.#extractor.write("\n});\n");
|
|
2362
|
-
}
|
|
2362
|
+
this.#extractor.write("\n});\n");
|
|
2363
2363
|
break;
|
|
2364
2364
|
}
|
|
2365
2365
|
case "while": {
|
|
@@ -2405,9 +2405,9 @@ constructor(_?: Return) {}
|
|
|
2405
2405
|
for (const binding of mutatedVars) {
|
|
2406
2406
|
this.#extractor.write(
|
|
2407
2407
|
`${// TODO use a different format to avoid const annotation.
|
|
2408
|
-
this.#scriptLang === "js" /* js */ ? "/** @type {const} */" : ""}[${JSON.stringify(binding.name) + (binding.sourceName && binding.sourceName !== binding.name ? `, ${JSON.stringify(binding.sourceName)}` : "")}, ${
|
|
2409
|
-
binding.node
|
|
2410
|
-
)}
|
|
2408
|
+
this.#scriptLang === "js" /* js */ ? "/** @type {const} */" : ""}[${JSON.stringify(binding.name) + (binding.sourceName && binding.sourceName !== binding.name ? `, ${JSON.stringify(binding.sourceName)}` : "")}, ${varLocal(
|
|
2409
|
+
"rendered_" + this.#getRenderId(binding.node)
|
|
2410
|
+
)}.return${binding.objectPath || ""}]${SEP_COMMA_NEW_LINE}`
|
|
2411
2411
|
);
|
|
2412
2412
|
}
|
|
2413
2413
|
this.#extractor.write(
|
|
@@ -2468,9 +2468,7 @@ constructor(_?: Return) {}
|
|
|
2468
2468
|
}
|
|
2469
2469
|
}
|
|
2470
2470
|
if (renderId) {
|
|
2471
|
-
this.#extractor.write(
|
|
2472
|
-
`${varShared("assertRendered")}(${varShared("rendered")},${renderId},`
|
|
2473
|
-
);
|
|
2471
|
+
this.#extractor.write(`const ${varLocal("rendered_" + renderId)} = `);
|
|
2474
2472
|
}
|
|
2475
2473
|
if (isHTML) {
|
|
2476
2474
|
this.#extractor.write(`${varShared("renderNativeTag")}("`).copy(tag.name).write('")');
|
|
@@ -2487,15 +2485,12 @@ constructor(_?: Return) {}
|
|
|
2487
2485
|
this.#extractor.write("()()(");
|
|
2488
2486
|
}
|
|
2489
2487
|
this.#writeTagInputObject(tag);
|
|
2490
|
-
if (renderId) {
|
|
2491
|
-
this.#extractor.write(`)`);
|
|
2492
|
-
}
|
|
2493
2488
|
this.#extractor.write(");\n");
|
|
2494
2489
|
if (renderId && tag.var) {
|
|
2495
2490
|
this.#extractor.write(`const `);
|
|
2496
2491
|
this.#copyWithMutationsReplaced(tag.var.value);
|
|
2497
2492
|
this.#extractor.write(
|
|
2498
|
-
` = ${
|
|
2493
|
+
` = ${varLocal("rendered_" + renderId)}.return.${ATTR_UNAMED2};
|
|
2499
2494
|
`
|
|
2500
2495
|
);
|
|
2501
2496
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2114,11 +2114,19 @@ function ${templateName}() {
|
|
|
2114
2114
|
if (hoists) {
|
|
2115
2115
|
this.#extractor.write("const ");
|
|
2116
2116
|
this.#writeObjectKeys(hoists);
|
|
2117
|
-
this.#extractor.write(
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2117
|
+
this.#extractor.write(` = ${varShared("readScopes")}({`);
|
|
2118
|
+
for (const child of program.body) {
|
|
2119
|
+
if (child.type === 1 /* Tag */) {
|
|
2120
|
+
const renderId = this.#renderIds.get(child);
|
|
2121
|
+
if (renderId !== void 0) {
|
|
2122
|
+
this.#extractor.write(
|
|
2123
|
+
`${varLocal("rendered_" + renderId)}${SEP_COMMA_SPACE}`
|
|
2124
|
+
);
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
}
|
|
2128
|
+
this.#extractor.write(`});
|
|
2129
|
+
${varShared("noop")}(`);
|
|
2122
2130
|
this.#writeObjectKeys(hoists);
|
|
2123
2131
|
this.#extractor.write(");\n");
|
|
2124
2132
|
}
|
|
@@ -2234,9 +2242,7 @@ constructor(_?: Return) {}
|
|
|
2234
2242
|
}
|
|
2235
2243
|
if (renderId) {
|
|
2236
2244
|
this.#extractor.write(
|
|
2237
|
-
|
|
2238
|
-
"rendered"
|
|
2239
|
-
)}, ${renderId}, (() => {
|
|
2245
|
+
`const ${varLocal("rendered_" + renderId)} = (() => {
|
|
2240
2246
|
`
|
|
2241
2247
|
);
|
|
2242
2248
|
}
|
|
@@ -2285,7 +2291,7 @@ constructor(_?: Return) {}
|
|
|
2285
2291
|
this.#extractor.write("\n}\n");
|
|
2286
2292
|
}
|
|
2287
2293
|
if (renderId) {
|
|
2288
|
-
this.#extractor.write("\n})()
|
|
2294
|
+
this.#extractor.write("\n})()\n");
|
|
2289
2295
|
}
|
|
2290
2296
|
break;
|
|
2291
2297
|
}
|
|
@@ -2293,9 +2299,7 @@ constructor(_?: Return) {}
|
|
|
2293
2299
|
const renderId = this.#getRenderId(child);
|
|
2294
2300
|
if (renderId) {
|
|
2295
2301
|
this.#extractor.write(
|
|
2296
|
-
|
|
2297
|
-
"rendered"
|
|
2298
|
-
)}, ${renderId}, `
|
|
2302
|
+
`const ${varLocal("rendered_" + renderId)} = `
|
|
2299
2303
|
);
|
|
2300
2304
|
}
|
|
2301
2305
|
this.#extractor.write(
|
|
@@ -2318,11 +2322,7 @@ constructor(_?: Return) {}
|
|
|
2318
2322
|
void 0,
|
|
2319
2323
|
(body == null ? void 0 : body.content) ? getHoistSources(child) : void 0
|
|
2320
2324
|
);
|
|
2321
|
-
|
|
2322
|
-
this.#extractor.write("\n}));\n");
|
|
2323
|
-
} else {
|
|
2324
|
-
this.#extractor.write("\n});\n");
|
|
2325
|
-
}
|
|
2325
|
+
this.#extractor.write("\n});\n");
|
|
2326
2326
|
break;
|
|
2327
2327
|
}
|
|
2328
2328
|
case "while": {
|
|
@@ -2368,9 +2368,9 @@ constructor(_?: Return) {}
|
|
|
2368
2368
|
for (const binding of mutatedVars) {
|
|
2369
2369
|
this.#extractor.write(
|
|
2370
2370
|
`${// TODO use a different format to avoid const annotation.
|
|
2371
|
-
this.#scriptLang === "js" /* js */ ? "/** @type {const} */" : ""}[${JSON.stringify(binding.name) + (binding.sourceName && binding.sourceName !== binding.name ? `, ${JSON.stringify(binding.sourceName)}` : "")}, ${
|
|
2372
|
-
binding.node
|
|
2373
|
-
)}
|
|
2371
|
+
this.#scriptLang === "js" /* js */ ? "/** @type {const} */" : ""}[${JSON.stringify(binding.name) + (binding.sourceName && binding.sourceName !== binding.name ? `, ${JSON.stringify(binding.sourceName)}` : "")}, ${varLocal(
|
|
2372
|
+
"rendered_" + this.#getRenderId(binding.node)
|
|
2373
|
+
)}.return${binding.objectPath || ""}]${SEP_COMMA_NEW_LINE}`
|
|
2374
2374
|
);
|
|
2375
2375
|
}
|
|
2376
2376
|
this.#extractor.write(
|
|
@@ -2431,9 +2431,7 @@ constructor(_?: Return) {}
|
|
|
2431
2431
|
}
|
|
2432
2432
|
}
|
|
2433
2433
|
if (renderId) {
|
|
2434
|
-
this.#extractor.write(
|
|
2435
|
-
`${varShared("assertRendered")}(${varShared("rendered")},${renderId},`
|
|
2436
|
-
);
|
|
2434
|
+
this.#extractor.write(`const ${varLocal("rendered_" + renderId)} = `);
|
|
2437
2435
|
}
|
|
2438
2436
|
if (isHTML) {
|
|
2439
2437
|
this.#extractor.write(`${varShared("renderNativeTag")}("`).copy(tag.name).write('")');
|
|
@@ -2450,15 +2448,12 @@ constructor(_?: Return) {}
|
|
|
2450
2448
|
this.#extractor.write("()()(");
|
|
2451
2449
|
}
|
|
2452
2450
|
this.#writeTagInputObject(tag);
|
|
2453
|
-
if (renderId) {
|
|
2454
|
-
this.#extractor.write(`)`);
|
|
2455
|
-
}
|
|
2456
2451
|
this.#extractor.write(");\n");
|
|
2457
2452
|
if (renderId && tag.var) {
|
|
2458
2453
|
this.#extractor.write(`const `);
|
|
2459
2454
|
this.#copyWithMutationsReplaced(tag.var.value);
|
|
2460
2455
|
this.#extractor.write(
|
|
2461
|
-
` = ${
|
|
2456
|
+
` = ${varLocal("rendered_" + renderId)}.return.${ATTR_UNAMED2};
|
|
2462
2457
|
`
|
|
2463
2458
|
);
|
|
2464
2459
|
}
|
package/marko.internal.d.ts
CHANGED
|
@@ -34,12 +34,6 @@ declare global {
|
|
|
34
34
|
fn: (input: AttrTagNames<Input>) => void,
|
|
35
35
|
): void;
|
|
36
36
|
|
|
37
|
-
export const rendered: {
|
|
38
|
-
scopes: Record<number, never>;
|
|
39
|
-
returns: Record<number, never>;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export const tags: Record<number, unknown>;
|
|
43
37
|
export const content: DefaultBodyContentKey;
|
|
44
38
|
|
|
45
39
|
export function contentFor<Name>(
|
|
@@ -87,36 +81,25 @@ declare global {
|
|
|
87
81
|
? Instance
|
|
88
82
|
: never;
|
|
89
83
|
|
|
90
|
-
export function readScopes<Rendered>(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
export function readScopes<Rendered>(rendered: Rendered): MergeScopes<
|
|
85
|
+
{
|
|
86
|
+
[K in keyof Rendered]: Rendered[K] extends infer Value
|
|
87
|
+
? undefined extends Value
|
|
88
|
+
? Value extends { scope: infer Scope }
|
|
89
|
+
? [0] extends [1 & Scope]
|
|
90
|
+
? never
|
|
91
|
+
: Partial<Scope>
|
|
92
|
+
: never
|
|
93
|
+
: Value extends { scope: infer Scope }
|
|
94
|
+
? [0] extends [1 & Scope]
|
|
95
|
+
? never
|
|
96
|
+
: Scope
|
|
97
|
+
: never
|
|
98
|
+
: never;
|
|
99
|
+
}[keyof Rendered]
|
|
94
100
|
> &
|
|
95
101
|
Record<any, never>;
|
|
96
102
|
|
|
97
|
-
export function assertTag<Index extends number, Tags, Tag>(
|
|
98
|
-
tags: Tags,
|
|
99
|
-
index: Index,
|
|
100
|
-
tag: Tag,
|
|
101
|
-
): asserts tags is Tags &
|
|
102
|
-
Record<Index, [0] extends [1 & Tag] ? any : Tag>;
|
|
103
|
-
|
|
104
|
-
export function assertRendered<Index extends number, Rendered, Result>(
|
|
105
|
-
rendered: Rendered,
|
|
106
|
-
index: Index,
|
|
107
|
-
result: Result,
|
|
108
|
-
): asserts rendered is Rendered & {
|
|
109
|
-
scopes: Record<
|
|
110
|
-
Index,
|
|
111
|
-
MergeOptionalScopes<
|
|
112
|
-
Result extends { scope: infer Scope } ? Scope : undefined
|
|
113
|
-
>
|
|
114
|
-
>;
|
|
115
|
-
returns: Result extends { return?: infer Return }
|
|
116
|
-
? Record<Index, Return>
|
|
117
|
-
: Record<Index, never>;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
103
|
export function mutable<Lookup>(lookup: Lookup): UnionToIntersection<
|
|
121
104
|
Lookup extends readonly (infer Item)[]
|
|
122
105
|
? Item extends
|
|
@@ -174,7 +157,7 @@ declare global {
|
|
|
174
157
|
>(input: Input): Input;
|
|
175
158
|
|
|
176
159
|
export function forOfTag<
|
|
177
|
-
Value,
|
|
160
|
+
Value extends Iterable,
|
|
178
161
|
Item extends Value extends
|
|
179
162
|
| readonly (infer Item)[]
|
|
180
163
|
| Iterable<infer Item>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/language-tools",
|
|
3
3
|
"description": "Marko Language Tools",
|
|
4
|
-
"version": "2.5.
|
|
4
|
+
"version": "2.5.18",
|
|
5
5
|
"bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@marko/compiler": "^5.28.4"
|