htl-to-js 1.1.1 → 1.2.0
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/README.md +74 -6
- package/dist/transpiler/directives.d.ts +12 -2
- package/dist/transpiler/directives.js +160 -59
- package/dist/transpiler/directives.js.map +1 -1
- package/dist/transpiler/expr.js +7 -1
- package/dist/transpiler/expr.js.map +1 -1
- package/dist/transpiler/index.js +117 -40
- package/dist/transpiler/index.js.map +1 -1
- package/dist/transpiler/walker.d.ts +1 -0
- package/dist/transpiler/walker.js +83 -29
- package/dist/transpiler/walker.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ module.exports = {
|
|
|
82
82
|
| `data-sly-include="./file.html"` | Delegates to `_includes` map |
|
|
83
83
|
| `<sly>` | Transparent wrapper — only children are rendered |
|
|
84
84
|
|
|
85
|
-
Both `data-sly-repeat` and `data-sly-list` support bare forms (without `.varName`) that default to `item` as the iteration variable. They also provide a `${itemList}` status object with `index`, `count`, `first`, `last`, `odd`, and `even` properties.
|
|
85
|
+
Both `data-sly-repeat` and `data-sly-list` support bare forms (without `.varName`) that default to `item` as the iteration variable. They also provide a `${itemList}` status object with `index`, `count`, `first`, `last`, `middle`, `odd`, and `even` properties.
|
|
86
86
|
|
|
87
87
|
### Expression conversions
|
|
88
88
|
|
|
@@ -90,18 +90,36 @@ Both `data-sly-repeat` and `data-sly-list` support bare forms (without `.varName
|
|
|
90
90
|
|---|---|
|
|
91
91
|
| `${expr @ context='html'}` | `${expr}` (context options stripped) |
|
|
92
92
|
| `${expr @ context='urlencode'}` | `${encodeURIComponent(expr ?? '')}` (URL-encodes the value) |
|
|
93
|
+
| `${expr @ context='uri'}` on any attribute | `${_htlUri(expr ?? '')}` (URI-encodes the value) |
|
|
93
94
|
| `${'string' @ i18n}` | `${_i18n?.['string'] ?? 'string'}` (dictionary lookup) |
|
|
94
95
|
| `${list.size}` | `${list.length}` |
|
|
95
96
|
| `${obj.jcr:title}` | `${obj?.['jcr:title']}` |
|
|
96
97
|
| `${tags @ join=', '}` | `${(tags).join(', ')}` |
|
|
97
98
|
| `${'pattern {0}/{1}' @ format=[a, b]}` | `${a + '/' + b}` |
|
|
98
|
-
| `${key in obj}` | `${(
|
|
99
|
+
| `${key in obj}` | `${_htlIn(key, obj)}` — string containment, array `.includes()`, or object key check |
|
|
100
|
+
|
|
101
|
+
### Auto-URI context
|
|
102
|
+
|
|
103
|
+
When a dynamic expression appears in an attribute whose name is a URI attribute (`href`, `src`, `action`, `formaction`, `cite`, `data`, `manifest`, `poster`), the `uri` display context is applied automatically even without an explicit `@ context='uri'`:
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<!-- Both of these produce the same generated code -->
|
|
107
|
+
<a href="${model.url}">link</a>
|
|
108
|
+
<a href="${model.url @ context='uri'}">link</a>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Generated:
|
|
112
|
+
|
|
113
|
+
```js
|
|
114
|
+
href="${_htlDynAttr('href', _htlUri(model?.url ?? ''))}"
|
|
115
|
+
```
|
|
99
116
|
|
|
100
117
|
### HTML escaping
|
|
101
118
|
|
|
102
119
|
Attribute values are automatically escaped via the `_htlAttr` helper:
|
|
103
120
|
- `&` → `&`, `<` → `<`, `>` → `>`, `"` → `"`
|
|
104
|
-
-
|
|
121
|
+
- Array values are rendered as comma-joined strings: `['a','b']` → `a,b`
|
|
122
|
+
- Plain object values are serialized with `JSON.stringify`
|
|
105
123
|
- `null`/`undefined` produce an empty string
|
|
106
124
|
|
|
107
125
|
Dynamic named attributes (`data-sly-attribute.name`) use `_htlDynAttr`:
|
|
@@ -223,12 +241,19 @@ module.exports = { createDefault };
|
|
|
223
241
|
|
|
224
242
|
<!-- With @path fallback -->
|
|
225
243
|
<sly data-sly-resource="${@ path=model.path}"></sly>
|
|
244
|
+
|
|
245
|
+
<!-- appendPath / prependPath -->
|
|
246
|
+
<sly data-sly-resource="${'my/path' @ appendPath='child'}"></sly>
|
|
247
|
+
<sly data-sly-resource="${'my/path' @ prependPath='root'}"></sly>
|
|
226
248
|
```
|
|
227
249
|
|
|
228
250
|
```js
|
|
229
251
|
// Generated
|
|
230
252
|
${_incSlot(_includes, 'header')}
|
|
231
253
|
${_incSlot(_includes, model?.path)}
|
|
254
|
+
// appendPath/prependPath resolved at compile time when static
|
|
255
|
+
${_incSlot(_includes, 'my/path/child')}
|
|
256
|
+
${_incSlot(_includes, 'root/my/path')}
|
|
232
257
|
```
|
|
233
258
|
|
|
234
259
|
Pass content via `_includes` in your story args. Strings, functions, and arrays are all accepted:
|
|
@@ -354,6 +379,13 @@ Includes another HTL file at runtime. The loader generates a slot in the `_inclu
|
|
|
354
379
|
|
|
355
380
|
<!-- Dynamic path -->
|
|
356
381
|
<sly data-sly-include="${model.templatePath}"></sly>
|
|
382
|
+
|
|
383
|
+
<!-- Arguments are forwarded to the slot function -->
|
|
384
|
+
<sly data-sly-include="./header.html @ wcmmode='edit'"></sly>
|
|
385
|
+
|
|
386
|
+
<!-- appendPath / prependPath -->
|
|
387
|
+
<sly data-sly-include="${'partials' @ appendPath='template.html'}"></sly>
|
|
388
|
+
<sly data-sly-include="${'template.html' @ prependPath='partials'}"></sly>
|
|
357
389
|
```
|
|
358
390
|
|
|
359
391
|
Generated:
|
|
@@ -364,6 +396,14 @@ ${_incSlot(_includes, './header.html')}
|
|
|
364
396
|
|
|
365
397
|
// Dynamic path
|
|
366
398
|
${_incSlot(_includes, model?.templatePath)}
|
|
399
|
+
|
|
400
|
+
// With args
|
|
401
|
+
${_incSlot(_includes, './header.html', { wcmmode: 'edit' })}
|
|
402
|
+
|
|
403
|
+
// appendPath/prependPath — resolved at compile time when both sides are string literals
|
|
404
|
+
${_incSlot(_includes, 'partials/template.html')}
|
|
405
|
+
// Dynamic operands fall back to a runtime helper
|
|
406
|
+
${_incSlot(_includes, _htlJoinPaths('partials', undefined, model?.tpl))}
|
|
367
407
|
```
|
|
368
408
|
|
|
369
409
|
In the story, pass either a function (component factory) or a plain string:
|
|
@@ -566,9 +606,33 @@ Both iterate over a list, but they differ in what gets repeated:
|
|
|
566
606
|
|
|
567
607
|
Both support:
|
|
568
608
|
- Null items are automatically skipped
|
|
569
|
-
- A `${itemList}` status object with `index`, `count`, `first`, `last`, `odd`, `even`
|
|
609
|
+
- A `${itemList}` status object with `index`, `count`, `first`, `last`, `middle`, `odd`, `even`
|
|
570
610
|
- Combined `data-sly-test.var` + `data-sly-repeat` on the same element (test var is hoisted before the loop in a scoped IIFE)
|
|
571
611
|
|
|
612
|
+
### Iteration control: `begin`, `end`, `step`
|
|
613
|
+
|
|
614
|
+
Both directives accept `begin`, `end`, and `step` options to control which items are iterated:
|
|
615
|
+
|
|
616
|
+
```html
|
|
617
|
+
<!-- Skip the first item (begin is 0-based, inclusive) -->
|
|
618
|
+
<ul data-sly-list.item="${items @ begin=1}"><li>${item}</li></ul>
|
|
619
|
+
|
|
620
|
+
<!-- Stop after the second item (end is 0-based, inclusive) -->
|
|
621
|
+
<ul data-sly-list.item="${items @ end=1}"><li>${item}</li></ul>
|
|
622
|
+
|
|
623
|
+
<!-- Every other item -->
|
|
624
|
+
<ul data-sly-list.item="${items @ step=2}"><li>${item}</li></ul>
|
|
625
|
+
|
|
626
|
+
<!-- Combined -->
|
|
627
|
+
<ul data-sly-list.item="${items @ begin=1, end=5, step=2}"><li>${item}</li></ul>
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
Options can also be dynamic expressions:
|
|
631
|
+
|
|
632
|
+
```html
|
|
633
|
+
<ul data-sly-list.item="${items @ begin=model.start, end=model.end}"><li>${item}</li></ul>
|
|
634
|
+
```
|
|
635
|
+
|
|
572
636
|
---
|
|
573
637
|
|
|
574
638
|
## Options
|
|
@@ -629,6 +693,8 @@ const html = createColumn({ _wrapperClass: 'aem-GridColumn aem-GridColumn--defau
|
|
|
629
693
|
|
|
630
694
|
Object mapping resource keys **or `resourceType` paths** to CSS classes (or configuration objects) that wrap `data-sly-resource` slot output. Mimics the extra wrapper divs that AEM's responsive grid adds around its children.
|
|
631
695
|
|
|
696
|
+
HTL options on `data-sly-resource` are forwarded to the slot function, so wrappers can react to values such as `wcmmode` or `resourceType`-driven paths.
|
|
697
|
+
|
|
632
698
|
Keys are matched in this order:
|
|
633
699
|
1. **Resource name** — the value in the expression (e.g. `'par'` from `data-sly-resource="${'par' @ ...}"`)
|
|
634
700
|
2. **`resourceType`** — the `@resourceType` option value (e.g. `'mysite/components/responsivegrid'`)
|
|
@@ -725,10 +791,13 @@ const modelTransforms = {
|
|
|
725
791
|
|
|
726
792
|
The function receives the actual variable name (e.g. `container`) and must return a JS expression string. This is useful when the transform expression needs to reference the variable precisely.
|
|
727
793
|
|
|
728
|
-
**Direct code callbacks** — `modelTransforms` also accepts
|
|
794
|
+
**Direct code callbacks** — `modelTransforms` also accepts direct callbacks such as `() => 'RESPONSIVE_GRID'`, `({ model }) => ...`, or `({ model, _includes, varName }) => ...`. In this mode the callback body is serialized into the generated module, and `model` is replaced with the actual use-binding variable:
|
|
729
795
|
|
|
730
796
|
```js
|
|
731
797
|
const modelTransforms = {
|
|
798
|
+
LayoutContainer: {
|
|
799
|
+
layout: () => 'RESPONSIVE_GRID',
|
|
800
|
+
},
|
|
732
801
|
ColContainer: {
|
|
733
802
|
id: ({ model }) => model?._internalId ?? '',
|
|
734
803
|
columns: ({ model }) => {
|
|
@@ -961,7 +1030,6 @@ Each `.d.ts` file re-exports the function signatures from the generated module s
|
|
|
961
1030
|
|
|
962
1031
|
## Known limitations
|
|
963
1032
|
|
|
964
|
-
- **`data-sly-include` with args** — passing parameters to included files (`@ wcmmode=wcmmode`) is not supported; only the path is used.
|
|
965
1033
|
- **`data-sly-call` across files** — the called template must be imported and passed explicitly via args; cross-file resolution at build time is not supported unless the file is declared via `data-sly-use`.
|
|
966
1034
|
- **Java expressions** in `data-sly-use` — the class path is ignored; the binding name becomes a function parameter.
|
|
967
1035
|
- **`data-sly-use` with `@` defaults** — the default values are extracted as destructuring defaults, but complex expressions are not supported.
|
|
@@ -11,26 +11,36 @@ export interface Directives {
|
|
|
11
11
|
use: Record<string, string>;
|
|
12
12
|
useDefaults: Record<string, string>;
|
|
13
13
|
fileUse: Record<string, string>;
|
|
14
|
+
dynamicFileUse: Record<string, string>;
|
|
14
15
|
jsFileUse: Record<string, string>;
|
|
15
16
|
test: string | null;
|
|
16
17
|
repeat: {
|
|
17
18
|
varName: string;
|
|
18
19
|
listExpr: string;
|
|
19
20
|
listMode: boolean;
|
|
21
|
+
beginExpr: string | null;
|
|
22
|
+
endExpr: string | null;
|
|
23
|
+
stepExpr: string | null;
|
|
20
24
|
} | null;
|
|
21
25
|
element: string | null;
|
|
22
26
|
unwrap: string | null;
|
|
23
27
|
sets: SetDecl[];
|
|
24
28
|
text: string | null;
|
|
25
29
|
textContext: string | null;
|
|
26
|
-
resource:
|
|
30
|
+
resource: {
|
|
31
|
+
path: string;
|
|
32
|
+
params: Record<string, string>;
|
|
33
|
+
} | null;
|
|
27
34
|
resourceType: string | null;
|
|
28
35
|
template: {
|
|
29
36
|
name: string;
|
|
30
37
|
params: string[];
|
|
31
38
|
} | null;
|
|
32
39
|
call: CallDescriptor | null;
|
|
33
|
-
include:
|
|
40
|
+
include: {
|
|
41
|
+
path: string;
|
|
42
|
+
params: Record<string, string>;
|
|
43
|
+
} | null;
|
|
34
44
|
dynamicAttrs?: {
|
|
35
45
|
name: string;
|
|
36
46
|
expr: string;
|
|
@@ -12,6 +12,34 @@ const expr_1 = require("./expr");
|
|
|
12
12
|
* Walks up the directory tree (up to 4 levels) to find the file.
|
|
13
13
|
* Returns a './relative/path.js' or './relative/path.json' string, or null.
|
|
14
14
|
*/
|
|
15
|
+
function resolveCandidatePath(val, sourceDir, maxLevels) {
|
|
16
|
+
let dir = sourceDir;
|
|
17
|
+
for (let i = 0; i < maxLevels; i++) {
|
|
18
|
+
const candidate = node_path_1.default.join(dir, val);
|
|
19
|
+
if (node_fs_1.default.existsSync(candidate)) {
|
|
20
|
+
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
21
|
+
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
22
|
+
}
|
|
23
|
+
dir = node_path_1.default.dirname(dir);
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
function resolveWithinJcrRoot(val, sourceDir) {
|
|
28
|
+
let dir = sourceDir;
|
|
29
|
+
for (let i = 0; i < 10; i++) {
|
|
30
|
+
const jcrRoot = node_path_1.default.join(dir, 'jcr_root');
|
|
31
|
+
if (node_fs_1.default.existsSync(jcrRoot)) {
|
|
32
|
+
const candidate = node_path_1.default.join(jcrRoot, val);
|
|
33
|
+
if (node_fs_1.default.existsSync(candidate)) {
|
|
34
|
+
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
35
|
+
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
dir = node_path_1.default.dirname(dir);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
15
43
|
function resolveJsUsePath(val, sourceDir) {
|
|
16
44
|
if (!sourceDir)
|
|
17
45
|
return null;
|
|
@@ -22,31 +50,9 @@ function resolveJsUsePath(val, sourceDir) {
|
|
|
22
50
|
if (!isJs && !isJson)
|
|
23
51
|
return null;
|
|
24
52
|
if (val.startsWith('/')) {
|
|
25
|
-
|
|
26
|
-
for (let i = 0; i < 10; i++) {
|
|
27
|
-
const jcrRoot = node_path_1.default.join(dir, 'jcr_root');
|
|
28
|
-
if (node_fs_1.default.existsSync(jcrRoot)) {
|
|
29
|
-
const candidate = node_path_1.default.join(jcrRoot, val);
|
|
30
|
-
if (node_fs_1.default.existsSync(candidate)) {
|
|
31
|
-
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
32
|
-
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
dir = node_path_1.default.dirname(dir);
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
53
|
+
return resolveWithinJcrRoot(val, sourceDir);
|
|
39
54
|
}
|
|
40
|
-
|
|
41
|
-
for (let i = 0; i < 4; i++) {
|
|
42
|
-
const candidate = node_path_1.default.join(dir, val);
|
|
43
|
-
if (node_fs_1.default.existsSync(candidate)) {
|
|
44
|
-
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
45
|
-
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
46
|
-
}
|
|
47
|
-
dir = node_path_1.default.dirname(dir);
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
55
|
+
return resolveCandidatePath(val, sourceDir, 4);
|
|
50
56
|
}
|
|
51
57
|
/**
|
|
52
58
|
* Resolves an HTL data-sly-use file path to a require()-ready relative path.
|
|
@@ -58,33 +64,11 @@ function resolveHtlPath(val, sourceDir) {
|
|
|
58
64
|
if (!val.endsWith('.html') || val.includes('${'))
|
|
59
65
|
return null;
|
|
60
66
|
if (val.startsWith('/')) {
|
|
61
|
-
|
|
62
|
-
for (let i = 0; i < 10; i++) {
|
|
63
|
-
const jcrRoot = node_path_1.default.join(dir, 'jcr_root');
|
|
64
|
-
if (node_fs_1.default.existsSync(jcrRoot)) {
|
|
65
|
-
const candidate = node_path_1.default.join(jcrRoot, val);
|
|
66
|
-
if (node_fs_1.default.existsSync(candidate)) {
|
|
67
|
-
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
68
|
-
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
dir = node_path_1.default.dirname(dir);
|
|
73
|
-
}
|
|
74
|
-
return null;
|
|
67
|
+
return resolveWithinJcrRoot(val, sourceDir);
|
|
75
68
|
}
|
|
76
69
|
if (val.split('/').length > 2)
|
|
77
70
|
return null;
|
|
78
|
-
|
|
79
|
-
for (let i = 0; i < 4; i++) {
|
|
80
|
-
const candidate = node_path_1.default.join(dir, val);
|
|
81
|
-
if (node_fs_1.default.existsSync(candidate)) {
|
|
82
|
-
const rel = node_path_1.default.relative(sourceDir, candidate).replaceAll('\\', '/');
|
|
83
|
-
return rel.startsWith('.') ? rel : `./${rel}`;
|
|
84
|
-
}
|
|
85
|
-
dir = node_path_1.default.dirname(dir);
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
71
|
+
return resolveCandidatePath(val, sourceDir, 4);
|
|
88
72
|
}
|
|
89
73
|
function parseUseDefault(val) {
|
|
90
74
|
const atIdx = val.indexOf('@');
|
|
@@ -93,6 +77,104 @@ function parseUseDefault(val) {
|
|
|
93
77
|
const vals = [...val.slice(atIdx + 1).matchAll(/\w+\s*=\s*(\w+)/g)].map((m) => m[1]);
|
|
94
78
|
return vals.length ? `{ ${vals.join(', ')} }` : null;
|
|
95
79
|
}
|
|
80
|
+
function parseHtlOptions(value) {
|
|
81
|
+
const options = {};
|
|
82
|
+
const valueRe = /(\w+)\s*=\s*((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|\$\{(?:[^{}]|\{[^{}]*\})*\}|\[[^\]]*\]|[^,}])+)/g;
|
|
83
|
+
for (const match of value.matchAll(valueRe)) {
|
|
84
|
+
options[match[1].trim()] = (0, expr_1.convertExpr)(match[2].trim());
|
|
85
|
+
}
|
|
86
|
+
return options;
|
|
87
|
+
}
|
|
88
|
+
function parseHtlPathAndOptions(raw) {
|
|
89
|
+
const trimmed = raw.trim();
|
|
90
|
+
const isWrappedExpr = trimmed.startsWith('${') && trimmed.endsWith('}');
|
|
91
|
+
const inner = isWrappedExpr ? trimmed.slice(2, -1).trim() : trimmed;
|
|
92
|
+
const atIdx = inner.indexOf('@');
|
|
93
|
+
const pathPart = (atIdx === -1 ? inner : inner.slice(0, atIdx)).trim();
|
|
94
|
+
const params = atIdx === -1 ? {} : parseHtlOptions(inner.slice(atIdx + 1));
|
|
95
|
+
const overridePath = params.path;
|
|
96
|
+
if (overridePath)
|
|
97
|
+
delete params.path;
|
|
98
|
+
const literalPath = pathPart.replace(/^['"](.+)['"]$/, '$1').replaceAll("'", String.raw `\'`);
|
|
99
|
+
const pathExpr = overridePath ?? (isWrappedExpr || pathPart.startsWith('${')
|
|
100
|
+
? (0, expr_1.convertExpr)('${' + pathPart + '}')
|
|
101
|
+
: "'" + literalPath + "'");
|
|
102
|
+
const appendPath = params.appendPath;
|
|
103
|
+
const prependPath = params.prependPath;
|
|
104
|
+
delete params.appendPath;
|
|
105
|
+
delete params.prependPath;
|
|
106
|
+
const finalPath = composeHtlPath(pathExpr, prependPath, appendPath);
|
|
107
|
+
return { path: finalPath, params };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Composes an HTL path expression with optional prependPath/appendPath options.
|
|
111
|
+
* Uses compile-time string concatenation when both operands are static string
|
|
112
|
+
* literals; falls back to a runtime `_htlJoinPaths` call otherwise.
|
|
113
|
+
*/
|
|
114
|
+
function composeHtlPath(pathExpr, prependExpr, appendExpr) {
|
|
115
|
+
if (!prependExpr && !appendExpr)
|
|
116
|
+
return pathExpr;
|
|
117
|
+
const staticBase = /^'([^']*)'$/.exec(pathExpr)?.[1];
|
|
118
|
+
const staticPrepend = prependExpr ? /^'([^']*)'$/.exec(prependExpr)?.[1] : undefined;
|
|
119
|
+
const staticAppend = appendExpr ? /^'([^']*)'$/.exec(appendExpr)?.[1] : undefined;
|
|
120
|
+
if (staticBase !== undefined) {
|
|
121
|
+
let composed = staticBase;
|
|
122
|
+
if (prependExpr !== undefined) {
|
|
123
|
+
if (staticPrepend === undefined) {
|
|
124
|
+
return `_htlJoinPaths('${composed}', ${prependExpr}, ${appendExpr ?? 'undefined'})`;
|
|
125
|
+
}
|
|
126
|
+
composed =
|
|
127
|
+
staticPrepend.replace(/\/$/, '') + '/' + composed.replace(/^\//, '');
|
|
128
|
+
}
|
|
129
|
+
if (appendExpr !== undefined) {
|
|
130
|
+
if (staticAppend === undefined) {
|
|
131
|
+
return `_htlJoinPaths('${composed}', undefined, ${appendExpr})`;
|
|
132
|
+
}
|
|
133
|
+
composed =
|
|
134
|
+
composed.replace(/\/$/, '') + '/' + staticAppend.replace(/^\//, '');
|
|
135
|
+
}
|
|
136
|
+
return `'${composed}'`;
|
|
137
|
+
}
|
|
138
|
+
return `_htlJoinPaths(${pathExpr}, ${prependExpr ?? 'undefined'}, ${appendExpr ?? 'undefined'})`;
|
|
139
|
+
}
|
|
140
|
+
function unwrapPureStringExpression(val) {
|
|
141
|
+
const match = /^\$\{\s*(['"])([\s\S]*)\1\s*\}$/.exec(val.trim());
|
|
142
|
+
return match ? match[2] : null;
|
|
143
|
+
}
|
|
144
|
+
function convertInterpolatedString(value) {
|
|
145
|
+
const parts = [];
|
|
146
|
+
let last = 0;
|
|
147
|
+
for (const { index, expr, end } of (0, expr_1.extractExprs)(value)) {
|
|
148
|
+
if (index > last)
|
|
149
|
+
parts.push((0, expr_1.escapeLiteral)(value.slice(last, index)));
|
|
150
|
+
parts.push(`\${${(0, expr_1.convertExpr)(expr)}}`);
|
|
151
|
+
last = end;
|
|
152
|
+
}
|
|
153
|
+
if (last < value.length)
|
|
154
|
+
parts.push((0, expr_1.escapeLiteral)(value.slice(last)));
|
|
155
|
+
return '`' + parts.join('') + '`';
|
|
156
|
+
}
|
|
157
|
+
function buildDynamicJsUseDefault(pathExpr) {
|
|
158
|
+
return `(() => { const _m = require(__resolveUsePath(${pathExpr})); return typeof _m === 'function' ? _m({}) : _m; })()`;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Extracts begin / end / step iteration-control options from a data-sly-list or
|
|
162
|
+
* data-sly-repeat attribute value. Returns null for each option not present.
|
|
163
|
+
*/
|
|
164
|
+
function parseRepeatIterationOptions(raw) {
|
|
165
|
+
const trimmed = raw.trim();
|
|
166
|
+
const inner = trimmed.startsWith('${') && trimmed.endsWith('}')
|
|
167
|
+
? trimmed.slice(2, -1).trim() : trimmed;
|
|
168
|
+
const atIdx = inner.indexOf('@');
|
|
169
|
+
if (atIdx === -1)
|
|
170
|
+
return { beginExpr: null, endExpr: null, stepExpr: null };
|
|
171
|
+
const opts = parseHtlOptions(inner.slice(atIdx + 1));
|
|
172
|
+
return {
|
|
173
|
+
beginExpr: opts.begin ?? null,
|
|
174
|
+
endExpr: opts.end ?? null,
|
|
175
|
+
stepExpr: opts.step ?? null,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
96
178
|
/**
|
|
97
179
|
* Parses all data-sly-* attributes from a node's attribute map and returns
|
|
98
180
|
* a structured descriptor used by the walker to generate JS code.
|
|
@@ -102,6 +184,7 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
102
184
|
use: {},
|
|
103
185
|
useDefaults: {},
|
|
104
186
|
fileUse: {},
|
|
187
|
+
dynamicFileUse: {},
|
|
105
188
|
jsFileUse: {},
|
|
106
189
|
test: null,
|
|
107
190
|
repeat: null,
|
|
@@ -122,14 +205,23 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
122
205
|
if (useMatch) {
|
|
123
206
|
const name = useMatch[1];
|
|
124
207
|
const trimmed = val.trim();
|
|
125
|
-
const
|
|
126
|
-
const
|
|
208
|
+
const literalExpr = unwrapPureStringExpression(trimmed);
|
|
209
|
+
const staticCandidate = literalExpr ?? trimmed;
|
|
210
|
+
const requirePath = sourceDir ? resolveHtlPath(staticCandidate, sourceDir) : null;
|
|
211
|
+
const jsRequirePath = requirePath ? null : (sourceDir ? resolveJsUsePath(staticCandidate, sourceDir) : null);
|
|
127
212
|
if (requirePath) {
|
|
128
213
|
directives.fileUse[name] = requirePath;
|
|
129
214
|
}
|
|
130
215
|
else if (jsRequirePath) {
|
|
131
216
|
directives.jsFileUse[name] = jsRequirePath;
|
|
132
217
|
}
|
|
218
|
+
else if (trimmed.includes('${') && (trimmed.endsWith('.js') || trimmed.endsWith('.json'))) {
|
|
219
|
+
directives.use[name] = val;
|
|
220
|
+
directives.useDefaults[name] = buildDynamicJsUseDefault(convertInterpolatedString(trimmed));
|
|
221
|
+
}
|
|
222
|
+
else if (trimmed.includes('${') && trimmed.endsWith('.html')) {
|
|
223
|
+
directives.dynamicFileUse[name] = `__resolveUsePath(${convertInterpolatedString(trimmed)})`;
|
|
224
|
+
}
|
|
133
225
|
else {
|
|
134
226
|
directives.use[name] = val;
|
|
135
227
|
const def = parseUseDefault(trimmed);
|
|
@@ -140,7 +232,7 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
140
232
|
continue;
|
|
141
233
|
}
|
|
142
234
|
if (key === 'data-sly-test') {
|
|
143
|
-
directives.test = (0, expr_1.convertExpr)(val);
|
|
235
|
+
directives.test = val.trim() ? (0, expr_1.convertExpr)(val) : 'false';
|
|
144
236
|
directives.skip.add(key);
|
|
145
237
|
continue;
|
|
146
238
|
}
|
|
@@ -158,19 +250,27 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
158
250
|
}
|
|
159
251
|
const repeatMatch = /^data-sly-(?:repeat|list)\.(\w+)$/.exec(key);
|
|
160
252
|
if (repeatMatch) {
|
|
253
|
+
const { beginExpr, endExpr, stepExpr } = parseRepeatIterationOptions(val);
|
|
161
254
|
directives.repeat = {
|
|
162
255
|
varName: repeatMatch[1],
|
|
163
256
|
listExpr: (0, expr_1.convertExpr)(val),
|
|
164
257
|
listMode: key.startsWith('data-sly-list.'),
|
|
258
|
+
beginExpr,
|
|
259
|
+
endExpr,
|
|
260
|
+
stepExpr,
|
|
165
261
|
};
|
|
166
262
|
directives.skip.add(key);
|
|
167
263
|
continue;
|
|
168
264
|
}
|
|
169
265
|
if (key === 'data-sly-list' || key === 'data-sly-repeat') {
|
|
266
|
+
const { beginExpr, endExpr, stepExpr } = parseRepeatIterationOptions(val);
|
|
170
267
|
directives.repeat = {
|
|
171
268
|
varName: 'item',
|
|
172
269
|
listExpr: (0, expr_1.convertExpr)(val),
|
|
173
270
|
listMode: key === 'data-sly-list',
|
|
271
|
+
beginExpr,
|
|
272
|
+
endExpr,
|
|
273
|
+
stepExpr,
|
|
174
274
|
};
|
|
175
275
|
directives.skip.add(key);
|
|
176
276
|
continue;
|
|
@@ -202,16 +302,17 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
202
302
|
continue;
|
|
203
303
|
}
|
|
204
304
|
if (key === 'data-sly-resource') {
|
|
205
|
-
|
|
206
|
-
if (!resource) {
|
|
207
|
-
const pathMatch = /@\s*path\s*=\s*([^,}@\s'"]+)/.exec(val);
|
|
208
|
-
if (pathMatch)
|
|
209
|
-
resource = (0, expr_1.convertExpr)('${' + pathMatch[1] + '}');
|
|
210
|
-
}
|
|
305
|
+
const parsed = parseHtlPathAndOptions(val);
|
|
211
306
|
const rtMatch = /@\s*resourceType\s*=\s*['"]([^'"]+)['"]/.exec(val);
|
|
212
307
|
if (rtMatch)
|
|
213
308
|
directives.resourceType = rtMatch[1];
|
|
214
|
-
|
|
309
|
+
const params = { ...parsed.params };
|
|
310
|
+
const { resourceType } = params;
|
|
311
|
+
delete params.resourceType;
|
|
312
|
+
delete params.path;
|
|
313
|
+
if (resourceType && !directives.resourceType)
|
|
314
|
+
directives.resourceType = resourceType;
|
|
315
|
+
directives.resource = { path: parsed.path, params };
|
|
215
316
|
directives.skip.add(key);
|
|
216
317
|
continue;
|
|
217
318
|
}
|
|
@@ -268,7 +369,7 @@ function parseDirectives(attrs, sourceDir = '') {
|
|
|
268
369
|
continue;
|
|
269
370
|
}
|
|
270
371
|
if (key === 'data-sly-include') {
|
|
271
|
-
directives.include = val;
|
|
372
|
+
directives.include = parseHtlPathAndOptions(val);
|
|
272
373
|
directives.skip.add(key);
|
|
273
374
|
continue;
|
|
274
375
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/transpiler/directives.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/transpiler/directives.ts"],"names":[],"mappings":"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"}
|
package/dist/transpiler/expr.js
CHANGED
|
@@ -73,7 +73,7 @@ function transformValue(expr) {
|
|
|
73
73
|
result = result
|
|
74
74
|
.replace(/(\w|\])(?<!\?)\[/g, '$1?.[')
|
|
75
75
|
.replace(/(\w|\])\.(?=([\w$]))/g, (m, a, b) => /\d/.test(a) && /\d/.test(b) ? m : `${a}?.`)
|
|
76
|
-
.replace(/([\w$.?[\]]+)\s+in\s+([\w$.?[\]]+)/g, (_match, left, right) => `(${
|
|
76
|
+
.replace(/([\w$.?[\]]+)\s+in\s+([\w$.?[\]]+)/g, (_match, left, right) => `_htlIn(${left}, ${right})`)
|
|
77
77
|
.replace(/(?<![?.])\b(class|for)\b/g, '_$1');
|
|
78
78
|
// Restore string literals last so their content is never touched.
|
|
79
79
|
strings.forEach((str, i) => { result = result.replace(`__STR${i}__`, str); });
|
|
@@ -223,6 +223,9 @@ function convertAttrValue(value) {
|
|
|
223
223
|
else if (ctx === 'uri') {
|
|
224
224
|
parts.push(`\${_htlUri(${converted})}`);
|
|
225
225
|
}
|
|
226
|
+
else if (ctx === 'number') {
|
|
227
|
+
parts.push(`\${_htlNum(${converted}) ?? ''}`);
|
|
228
|
+
}
|
|
226
229
|
else {
|
|
227
230
|
parts.push(`\${_htlAttr(${converted})}`);
|
|
228
231
|
}
|
|
@@ -248,6 +251,9 @@ function convertTextContent(text) {
|
|
|
248
251
|
const safe = /\|\||&&/.test(converted) ? `(${converted})` : converted;
|
|
249
252
|
parts.push(`\${${safe} ?? ''}`);
|
|
250
253
|
}
|
|
254
|
+
else if (ctx === 'number') {
|
|
255
|
+
parts.push(`\${_htlNum(${converted}) ?? ''}`);
|
|
256
|
+
}
|
|
251
257
|
else {
|
|
252
258
|
parts.push(`\${_htlText(${converted})}`);
|
|
253
259
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/transpiler/expr.ts"],"names":[],"mappings":";;AAiFA,kCA8FC;AAYD,oCAqBC;AAMD,wCAGC;AAOD,
|
|
1
|
+
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/transpiler/expr.ts"],"names":[],"mappings":"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"}
|