@edgedev/template-engine 0.1.6 → 0.1.8
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.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +138 -78
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +195 -103
package/dist/index.d.ts
CHANGED
|
@@ -8,21 +8,39 @@ export { normalizeTheme, buildCssVarsBlock, } from './unoSsr.js';
|
|
|
8
8
|
export { unoCssFromHtml } from './unoSsr.js';
|
|
9
9
|
export declare const renderTemplate: (content: string, values?: TemplateValues, meta?: TemplateMeta) => string;
|
|
10
10
|
export interface PageRenderBlock {
|
|
11
|
+
id?: string | null;
|
|
11
12
|
name?: string | null;
|
|
12
13
|
content: string;
|
|
13
14
|
values?: TemplateValues | null;
|
|
14
15
|
meta?: TemplateMeta | null;
|
|
15
16
|
}
|
|
16
17
|
export interface PageRenderResultBlock {
|
|
18
|
+
id?: string;
|
|
17
19
|
name?: string;
|
|
18
20
|
html: string;
|
|
19
21
|
}
|
|
20
22
|
export interface PageRenderResult {
|
|
21
23
|
blocks: PageRenderResultBlock[];
|
|
22
24
|
css: string;
|
|
25
|
+
html: string;
|
|
23
26
|
}
|
|
24
27
|
export type PageRenderHydrateOptions = Pick<HydrateValuesOptions, 'uniqueKey' | 'clientOptions'>;
|
|
25
|
-
export
|
|
26
|
-
|
|
28
|
+
export interface PageStructureColumn {
|
|
29
|
+
id?: string | null;
|
|
30
|
+
blocks?: string[] | null;
|
|
31
|
+
span?: number | null;
|
|
32
|
+
}
|
|
33
|
+
export interface PageStructureRow {
|
|
34
|
+
id?: string | null;
|
|
35
|
+
width?: string | null;
|
|
36
|
+
background?: string | null;
|
|
37
|
+
verticalAlign?: string | null;
|
|
38
|
+
mobileOrder?: string | null;
|
|
39
|
+
gap?: string | number | null;
|
|
40
|
+
columns?: PageStructureColumn[] | null;
|
|
41
|
+
}
|
|
42
|
+
export type PageStructure = PageStructureRow[];
|
|
43
|
+
export declare const pageRender: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined, hydrateOptions?: PageRenderHydrateOptions | null, structure?: PageStructure | null) => Promise<PageRenderResult>;
|
|
44
|
+
export declare const pageRenderPlaceHolder: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined, structure?: PageStructure | null) => Promise<PageRenderResult>;
|
|
27
45
|
export default renderTemplate;
|
|
28
46
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,KAAK,EAAwB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEpF,OAAO,EAAE,aAAa,EAAE,CAAA;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAwG5C,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,SAAQ,cAAmB,EAC3B,OAAM,YAAiB,KACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// ALSO HAVE HELPER FUNCTIONS THIS USES AND WE CAN USE ELSEWHERE TO DO GET KV DATA AND QUERY KV DATA BASED ON OUR INDEX STRUCTURE
|
|
5
5
|
// ALSO TAKE A LOOK AT OUR BLOCKS WE ARE GETTING... ALSO MAKE SURE THAT THE META WE PASS IN AS A VAR IS AN OVERRIDE OF THE TEMPLATE META...
|
|
6
6
|
// MAKE SURE THE META IN THE TEMPLATE IS BEING USED. MAKE SURE SAME
|
|
7
|
-
import { parseConfig } from './templateConfig.js';
|
|
7
|
+
import { ARRAY_BLOCK_RE, parseConfig } from './templateConfig.js';
|
|
8
8
|
import { hydrateValues } from './hydrateValues.js';
|
|
9
9
|
import { unoCssFromHtml } from './unoSsr.js';
|
|
10
10
|
export { hydrateValues };
|
|
@@ -98,33 +98,13 @@ const aliasRegex = (alias) => {
|
|
|
98
98
|
export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
99
99
|
if (!content || typeof content !== 'string')
|
|
100
100
|
return '';
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (match[1]) {
|
|
109
|
-
stack.push({ index: match.index, len: match[0].length, json: match[1] });
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
if (!stack.length)
|
|
113
|
-
continue;
|
|
114
|
-
const start = stack.pop();
|
|
115
|
-
if (stack.length === 0) {
|
|
116
|
-
return {
|
|
117
|
-
start: start.index,
|
|
118
|
-
startLen: start.len,
|
|
119
|
-
json: start.json,
|
|
120
|
-
end: match.index,
|
|
121
|
-
endLen: match[0].length,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return null;
|
|
126
|
-
};
|
|
127
|
-
const renderArrayBlock = (json, innerTpl) => {
|
|
101
|
+
const renderSection = (template, data, alias, schemaCtx) => {
|
|
102
|
+
if (!template)
|
|
103
|
+
return '';
|
|
104
|
+
const scopedValues = typeof data === 'object' && data !== null
|
|
105
|
+
? data
|
|
106
|
+
: {};
|
|
107
|
+
let expanded = template.replace(SUBARRAY_BLOCK_RE, (_match, tagAlias, json, innerTpl) => {
|
|
128
108
|
const cfg = parseConfig(json || '{}') ?? {};
|
|
129
109
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : '';
|
|
130
110
|
let list;
|
|
@@ -141,8 +121,6 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
141
121
|
else if (Array.isArray(cfg.value)) {
|
|
142
122
|
list = cfg.value;
|
|
143
123
|
}
|
|
144
|
-
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
145
|
-
list = cfg.value;
|
|
146
124
|
if (!Array.isArray(list)) {
|
|
147
125
|
const fallback = getCommonList(scopedValues);
|
|
148
126
|
if (Array.isArray(fallback))
|
|
@@ -150,31 +128,13 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
150
128
|
}
|
|
151
129
|
let normalized = coerceList(list);
|
|
152
130
|
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return normalized.map(entry => renderSection(innerTpl, entry,
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
const block = findNextBlock(input);
|
|
161
|
-
if (!block)
|
|
162
|
-
return input;
|
|
163
|
-
const before = input.slice(0, block.start);
|
|
164
|
-
const innerTpl = input.slice(block.start + block.startLen, block.end);
|
|
165
|
-
const after = input.slice(block.end + block.endLen);
|
|
166
|
-
const rendered = renderArrayBlock(block.json, innerTpl);
|
|
167
|
-
return process(before + rendered + after);
|
|
168
|
-
};
|
|
169
|
-
return process(template);
|
|
170
|
-
};
|
|
171
|
-
const renderSection = (template, data, alias, schemaCtx) => {
|
|
172
|
-
if (!template)
|
|
173
|
-
return '';
|
|
174
|
-
const scopedValues = typeof data === 'object' && data !== null
|
|
175
|
-
? data
|
|
176
|
-
: {};
|
|
177
|
-
let expanded = template.replace(SUBARRAY_BLOCK_RE, (_match, tagAlias, json, innerTpl) => {
|
|
131
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
132
|
+
? cfg.as.trim()
|
|
133
|
+
: (tagAlias?.trim() || undefined);
|
|
134
|
+
const childSchema = typeof cfg.schema === 'object' ? cfg.schema : schemaCtx;
|
|
135
|
+
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('');
|
|
136
|
+
});
|
|
137
|
+
expanded = expanded.replace(ARRAY_BLOCK_RE, (_m, json, innerTpl) => {
|
|
178
138
|
const cfg = parseConfig(json || '{}') ?? {};
|
|
179
139
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : '';
|
|
180
140
|
let list;
|
|
@@ -198,13 +158,10 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
198
158
|
}
|
|
199
159
|
let normalized = coerceList(list);
|
|
200
160
|
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
201
|
-
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
202
|
-
? cfg.as.trim()
|
|
203
|
-
: (tagAlias?.trim() || undefined);
|
|
161
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined;
|
|
204
162
|
const childSchema = typeof cfg.schema === 'object' ? cfg.schema : schemaCtx;
|
|
205
163
|
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('');
|
|
206
164
|
});
|
|
207
|
-
expanded = renderArrayBlocks(expanded, scopedValues, schemaCtx);
|
|
208
165
|
if (alias && typeof alias === 'string') {
|
|
209
166
|
expanded = expanded.replace(aliasRegex(alias), (_match, path) => {
|
|
210
167
|
const value = getByPath(scopedValues, path);
|
|
@@ -287,7 +244,22 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
287
244
|
return String(value);
|
|
288
245
|
return String(value);
|
|
289
246
|
});
|
|
290
|
-
output =
|
|
247
|
+
output = output.replace(ARRAY_BLOCK_RE, (full, json, innerTpl) => {
|
|
248
|
+
const cfg = parseConfig(json) ?? {};
|
|
249
|
+
const field = typeof cfg.field === 'string' ? cfg.field : undefined;
|
|
250
|
+
if (field?.startsWith('item.'))
|
|
251
|
+
return full;
|
|
252
|
+
let list = field ? values[field] : undefined;
|
|
253
|
+
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
254
|
+
list = cfg.value;
|
|
255
|
+
let normalized = coerceList(list);
|
|
256
|
+
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
257
|
+
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined;
|
|
258
|
+
const schemaContext = field && meta[field]?.schema
|
|
259
|
+
? meta[field]?.schema
|
|
260
|
+
: (typeof cfg.schema === 'object' ? cfg.schema : undefined);
|
|
261
|
+
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('');
|
|
262
|
+
});
|
|
291
263
|
output = output.replace(PLACEHOLDER_RE, (_match, json) => {
|
|
292
264
|
const cfg = parseConfig(json) ?? {};
|
|
293
265
|
const field = typeof cfg.field === 'string' ? cfg.field : undefined;
|
|
@@ -338,14 +310,102 @@ const buildHydrateOptions = (input) => {
|
|
|
338
310
|
clientOptions: safeClientOptions,
|
|
339
311
|
};
|
|
340
312
|
};
|
|
341
|
-
|
|
313
|
+
const normalizeClassToken = (value, fallback) => {
|
|
314
|
+
if (value == null)
|
|
315
|
+
return fallback;
|
|
316
|
+
const str = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : '');
|
|
317
|
+
return /^[A-Za-z0-9._/-]+$/.test(str) ? str : fallback;
|
|
318
|
+
};
|
|
319
|
+
const normalizeBackgroundClass = (value) => {
|
|
320
|
+
const token = normalizeClassToken(value, 'transparent');
|
|
321
|
+
if (!token || token === 'transparent')
|
|
322
|
+
return 'bg-transparent';
|
|
323
|
+
return token.startsWith('bg-') ? token : `bg-${token}`;
|
|
324
|
+
};
|
|
325
|
+
const normalizeWidthClass = (value) => {
|
|
326
|
+
const token = normalizeClassToken(value, 'full');
|
|
327
|
+
if (!token || token === 'full')
|
|
328
|
+
return 'w-full';
|
|
329
|
+
if (token.startsWith('max-w-'))
|
|
330
|
+
return `${token} w-full mx-auto`;
|
|
331
|
+
return token;
|
|
332
|
+
};
|
|
333
|
+
const normalizeGapValue = (value) => {
|
|
334
|
+
return normalizeClassToken(value, '4');
|
|
335
|
+
};
|
|
336
|
+
const normalizeAlignClass = (value) => {
|
|
337
|
+
const token = normalizeClassToken(value, 'start');
|
|
338
|
+
if (token === 'center')
|
|
339
|
+
return 'items-center';
|
|
340
|
+
if (token === 'end')
|
|
341
|
+
return 'items-end';
|
|
342
|
+
return 'items-start';
|
|
343
|
+
};
|
|
344
|
+
const normalizeMobileOrderClass = (value) => {
|
|
345
|
+
return value === 'reverse'
|
|
346
|
+
? 'flex flex-col-reverse md:grid md:grid-cols-6'
|
|
347
|
+
: 'flex flex-col md:grid md:grid-cols-6';
|
|
348
|
+
};
|
|
349
|
+
const normalizeColumnSpanClass = (value) => {
|
|
350
|
+
const n = Number(value);
|
|
351
|
+
const clamped = Number.isFinite(n) ? Math.min(Math.max(Math.round(n), 1), 6) : 6;
|
|
352
|
+
return `md:col-span-${clamped}`;
|
|
353
|
+
};
|
|
354
|
+
const buildStructuredLayout = (structure, renderedBlocks) => {
|
|
355
|
+
if (!Array.isArray(structure) || structure.length === 0)
|
|
356
|
+
return null;
|
|
357
|
+
const blockLookup = new Map();
|
|
358
|
+
for (const block of renderedBlocks) {
|
|
359
|
+
if (block?.id)
|
|
360
|
+
blockLookup.set(block.id, block.html);
|
|
361
|
+
}
|
|
362
|
+
const sections = [];
|
|
363
|
+
for (const row of structure) {
|
|
364
|
+
const columns = Array.isArray(row?.columns) ? row.columns : [];
|
|
365
|
+
if (!columns.length)
|
|
366
|
+
continue;
|
|
367
|
+
const widthClass = normalizeWidthClass(row?.width);
|
|
368
|
+
const backgroundClass = normalizeBackgroundClass(row?.background);
|
|
369
|
+
const alignClass = normalizeAlignClass(row?.verticalAlign);
|
|
370
|
+
const gapValue = normalizeGapValue(row?.gap);
|
|
371
|
+
const gapClass = `gap-${gapValue}`;
|
|
372
|
+
const stackClass = `space-y-${gapValue}`;
|
|
373
|
+
const orderClass = normalizeMobileOrderClass(row?.mobileOrder);
|
|
374
|
+
const columnHtml = columns
|
|
375
|
+
.map((col) => {
|
|
376
|
+
const blockIds = Array.isArray(col?.blocks) ? col.blocks : [];
|
|
377
|
+
const inner = blockIds
|
|
378
|
+
.map(blockId => (blockId ? (blockLookup.get(blockId) ?? '') : ''))
|
|
379
|
+
.filter(Boolean)
|
|
380
|
+
.join('');
|
|
381
|
+
if (!inner)
|
|
382
|
+
return '';
|
|
383
|
+
const spanClass = normalizeColumnSpanClass(col?.span);
|
|
384
|
+
return `<div class="w-full ${spanClass} ${stackClass}">${inner}</div>`;
|
|
385
|
+
})
|
|
386
|
+
.filter(Boolean)
|
|
387
|
+
.join('');
|
|
388
|
+
if (!columnHtml)
|
|
389
|
+
continue;
|
|
390
|
+
const section = `<section class="w-full ${backgroundClass}"><div class="${[widthClass, orderClass, gapClass, alignClass].filter(Boolean).join(' ')}">${columnHtml}</div></section>`;
|
|
391
|
+
sections.push(section);
|
|
392
|
+
}
|
|
393
|
+
return sections.length ? sections.join('') : null;
|
|
394
|
+
};
|
|
395
|
+
const buildPageHtml = (renderedBlocks, structure) => {
|
|
396
|
+
const defaultHtml = renderedBlocks.map(block => block.html).filter(Boolean).join('\n');
|
|
397
|
+
const structured = buildStructuredLayout(structure, renderedBlocks);
|
|
398
|
+
return structured || defaultHtml;
|
|
399
|
+
};
|
|
400
|
+
export const pageRender = async (blocks, theme, extraHtml = '', hydrateOptions, structure) => {
|
|
401
|
+
console.warn('starting page render...', structure);
|
|
342
402
|
const renderedBlocks = [];
|
|
343
|
-
const htmlFragments = [];
|
|
344
403
|
const hydrationConfig = buildHydrateOptions(hydrateOptions);
|
|
345
404
|
for (const block of blocks) {
|
|
346
405
|
if (!block?.content) {
|
|
347
406
|
const blockName = typeof block?.name === 'string' ? block.name : undefined;
|
|
348
|
-
|
|
407
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined;
|
|
408
|
+
renderedBlocks.push({ id: blockId, name: blockName, html: '' });
|
|
349
409
|
continue;
|
|
350
410
|
}
|
|
351
411
|
const meta = coerceTemplateMeta(block.meta);
|
|
@@ -361,27 +421,27 @@ export const pageRender = async (blocks, theme, extraHtml = '', hydrateOptions)
|
|
|
361
421
|
content = content.replace(/\{\{\s*loaded\s*\}\}/g, '');
|
|
362
422
|
const html = renderTemplate(content, resolvedValues ?? undefined, meta);
|
|
363
423
|
const blockName = typeof block.name === 'string' ? block.name : undefined;
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
htmlFragments.push(html);
|
|
424
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined;
|
|
425
|
+
renderedBlocks.push({ id: blockId, name: blockName, html });
|
|
367
426
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
const combinedHtml =
|
|
427
|
+
const pageHtml = buildPageHtml(renderedBlocks, structure);
|
|
428
|
+
const extra = typeof extraHtml === 'string' ? extraHtml : '';
|
|
429
|
+
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n');
|
|
371
430
|
const safeTheme = theme && typeof theme === 'object' ? theme : {};
|
|
372
431
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme);
|
|
373
432
|
return {
|
|
374
433
|
blocks: renderedBlocks,
|
|
375
434
|
css,
|
|
435
|
+
html: pageHtml,
|
|
376
436
|
};
|
|
377
437
|
};
|
|
378
|
-
export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '') => {
|
|
438
|
+
export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '', structure) => {
|
|
379
439
|
const renderedBlocks = [];
|
|
380
|
-
const htmlFragments = [];
|
|
381
440
|
for (const block of blocks) {
|
|
382
441
|
if (!block?.content) {
|
|
383
442
|
const blockName = typeof block?.name === 'string' ? block.name : undefined;
|
|
384
|
-
|
|
443
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined;
|
|
444
|
+
renderedBlocks.push({ id: blockId, name: blockName, html: '' });
|
|
385
445
|
continue;
|
|
386
446
|
}
|
|
387
447
|
const meta = coerceTemplateMeta(block.meta);
|
|
@@ -390,13 +450,12 @@ export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '') => {
|
|
|
390
450
|
content = content.replace(/\{\{\s*loaded\s*\}\}/g, 'hidden');
|
|
391
451
|
const html = renderTemplate(content, initialValues ?? undefined, meta);
|
|
392
452
|
const blockName = typeof block.name === 'string' ? block.name : undefined;
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
htmlFragments.push(html);
|
|
453
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined;
|
|
454
|
+
renderedBlocks.push({ id: blockId, name: blockName, html });
|
|
396
455
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
const combinedHtml =
|
|
456
|
+
const pageHtml = buildPageHtml(renderedBlocks, structure);
|
|
457
|
+
const extra = typeof extraHtml === 'string' ? extraHtml : '';
|
|
458
|
+
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n');
|
|
400
459
|
console.log('generating css...', combinedHtml.length);
|
|
401
460
|
const safeTheme = theme && typeof theme === 'object' ? theme : {};
|
|
402
461
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme);
|
|
@@ -404,6 +463,7 @@ export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '') => {
|
|
|
404
463
|
return {
|
|
405
464
|
blocks: renderedBlocks,
|
|
406
465
|
css,
|
|
466
|
+
html: pageHtml,
|
|
407
467
|
};
|
|
408
468
|
};
|
|
409
469
|
export default renderTemplate;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// ALSO TAKE A LOOK AT OUR BLOCKS WE ARE GETTING... ALSO MAKE SURE THAT THE META WE PASS IN AS A VAR IS AN OVERRIDE OF THE TEMPLATE META...
|
|
6
6
|
// MAKE SURE THE META IN THE TEMPLATE IS BEING USED. MAKE SURE SAME
|
|
7
7
|
|
|
8
|
-
import { parseConfig } from './templateConfig.js'
|
|
8
|
+
import { ARRAY_BLOCK_RE, parseConfig } from './templateConfig.js'
|
|
9
9
|
import { hydrateValues, type HydrateValuesOptions } from './hydrateValues.js'
|
|
10
10
|
import { unoCssFromHtml } from './unoSsr.js'
|
|
11
11
|
import type { MetaEntry, SchemaMap, TemplateMeta, TemplateValues } from './types.js'
|
|
@@ -149,50 +149,20 @@ export const renderTemplate = (
|
|
|
149
149
|
): string => {
|
|
150
150
|
if (!content || typeof content !== 'string')
|
|
151
151
|
return ''
|
|
152
|
-
|
|
153
|
-
const renderArrayBlocks = (
|
|
152
|
+
const renderSection = (
|
|
154
153
|
template: string,
|
|
155
|
-
|
|
154
|
+
data: unknown,
|
|
155
|
+
alias?: string,
|
|
156
156
|
schemaCtx?: SchemaMap,
|
|
157
157
|
): string => {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
startLen: number
|
|
161
|
-
json: string
|
|
162
|
-
end: number
|
|
163
|
-
endLen: number
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const tokenRe = /\{\{\{\s*#array\s*({[\s\S]*?})\s*\}\}\}|\{\{\{\s*\/array\s*\}\}\}/g
|
|
167
|
-
|
|
168
|
-
const findNextBlock = (input: string): BlockMatch | null => {
|
|
169
|
-
tokenRe.lastIndex = 0
|
|
170
|
-
const stack: Array<{ index: number; len: number; json: string }> = []
|
|
171
|
-
let match: RegExpExecArray | null
|
|
172
|
-
while ((match = tokenRe.exec(input))) {
|
|
173
|
-
if (match[1]) {
|
|
174
|
-
stack.push({ index: match.index, len: match[0].length, json: match[1] })
|
|
175
|
-
continue
|
|
176
|
-
}
|
|
158
|
+
if (!template)
|
|
159
|
+
return ''
|
|
177
160
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
const start = stack.pop()!
|
|
182
|
-
if (stack.length === 0) {
|
|
183
|
-
return {
|
|
184
|
-
start: start.index,
|
|
185
|
-
startLen: start.len,
|
|
186
|
-
json: start.json,
|
|
187
|
-
end: match.index,
|
|
188
|
-
endLen: match[0].length,
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return null
|
|
193
|
-
}
|
|
161
|
+
const scopedValues = typeof data === 'object' && data !== null
|
|
162
|
+
? (data as Record<string, unknown>)
|
|
163
|
+
: {}
|
|
194
164
|
|
|
195
|
-
|
|
165
|
+
let expanded = template.replace(SUBARRAY_BLOCK_RE, (_match, tagAlias, json, innerTpl) => {
|
|
196
166
|
const cfg = parseConfig(json || '{}') ?? {}
|
|
197
167
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : ''
|
|
198
168
|
let list: unknown
|
|
@@ -211,9 +181,6 @@ export const renderTemplate = (
|
|
|
211
181
|
list = cfg.value
|
|
212
182
|
}
|
|
213
183
|
|
|
214
|
-
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
215
|
-
list = cfg.value
|
|
216
|
-
|
|
217
184
|
if (!Array.isArray(list)) {
|
|
218
185
|
const fallback = getCommonList(scopedValues)
|
|
219
186
|
if (Array.isArray(fallback))
|
|
@@ -223,43 +190,15 @@ export const renderTemplate = (
|
|
|
223
190
|
let normalized = coerceList(list)
|
|
224
191
|
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
225
192
|
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
: (typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : schemaCtx)
|
|
230
|
-
|
|
231
|
-
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('')
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
const process = (input: string): string => {
|
|
235
|
-
const block = findNextBlock(input)
|
|
236
|
-
if (!block)
|
|
237
|
-
return input
|
|
238
|
-
|
|
239
|
-
const before = input.slice(0, block.start)
|
|
240
|
-
const innerTpl = input.slice(block.start + block.startLen, block.end)
|
|
241
|
-
const after = input.slice(block.end + block.endLen)
|
|
242
|
-
|
|
243
|
-
const rendered = renderArrayBlock(block.json, innerTpl)
|
|
244
|
-
return process(before + rendered + after)
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
return process(template)
|
|
248
|
-
}
|
|
249
|
-
const renderSection = (
|
|
250
|
-
template: string,
|
|
251
|
-
data: unknown,
|
|
252
|
-
alias?: string,
|
|
253
|
-
schemaCtx?: SchemaMap,
|
|
254
|
-
): string => {
|
|
255
|
-
if (!template)
|
|
256
|
-
return ''
|
|
193
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
194
|
+
? cfg.as.trim()
|
|
195
|
+
: (tagAlias?.trim() || undefined)
|
|
257
196
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
197
|
+
const childSchema = typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : schemaCtx
|
|
198
|
+
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('')
|
|
199
|
+
})
|
|
261
200
|
|
|
262
|
-
|
|
201
|
+
expanded = expanded.replace(ARRAY_BLOCK_RE, (_m, json, innerTpl) => {
|
|
263
202
|
const cfg = parseConfig(json || '{}') ?? {}
|
|
264
203
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : ''
|
|
265
204
|
let list: unknown
|
|
@@ -287,16 +226,11 @@ export const renderTemplate = (
|
|
|
287
226
|
let normalized = coerceList(list)
|
|
288
227
|
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
289
228
|
|
|
290
|
-
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
291
|
-
? cfg.as.trim()
|
|
292
|
-
: (tagAlias?.trim() || undefined)
|
|
293
|
-
|
|
229
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined
|
|
294
230
|
const childSchema = typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : schemaCtx
|
|
295
231
|
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('')
|
|
296
232
|
})
|
|
297
233
|
|
|
298
|
-
expanded = renderArrayBlocks(expanded, scopedValues, schemaCtx)
|
|
299
|
-
|
|
300
234
|
if (alias && typeof alias === 'string') {
|
|
301
235
|
expanded = expanded.replace(aliasRegex(alias), (_match, path) => {
|
|
302
236
|
const value = getByPath(scopedValues, path)
|
|
@@ -391,7 +325,27 @@ export const renderTemplate = (
|
|
|
391
325
|
return String(value)
|
|
392
326
|
})
|
|
393
327
|
|
|
394
|
-
output =
|
|
328
|
+
output = output.replace(ARRAY_BLOCK_RE, (full, json, innerTpl) => {
|
|
329
|
+
const cfg = parseConfig(json) ?? {}
|
|
330
|
+
const field = typeof cfg.field === 'string' ? cfg.field : undefined
|
|
331
|
+
|
|
332
|
+
if (field?.startsWith('item.'))
|
|
333
|
+
return full
|
|
334
|
+
|
|
335
|
+
let list: unknown = field ? values[field] : undefined
|
|
336
|
+
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
337
|
+
list = cfg.value
|
|
338
|
+
|
|
339
|
+
let normalized = coerceList(list)
|
|
340
|
+
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
341
|
+
|
|
342
|
+
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined
|
|
343
|
+
const schemaContext = field && meta[field]?.schema
|
|
344
|
+
? meta[field]?.schema
|
|
345
|
+
: (typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : undefined)
|
|
346
|
+
|
|
347
|
+
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('')
|
|
348
|
+
})
|
|
395
349
|
|
|
396
350
|
output = output.replace(PLACEHOLDER_RE, (_match, json) => {
|
|
397
351
|
const cfg = parseConfig(json) ?? {}
|
|
@@ -412,6 +366,7 @@ export const renderTemplate = (
|
|
|
412
366
|
}
|
|
413
367
|
|
|
414
368
|
export interface PageRenderBlock {
|
|
369
|
+
id?: string | null
|
|
415
370
|
name?: string | null
|
|
416
371
|
content: string
|
|
417
372
|
values?: TemplateValues | null
|
|
@@ -419,6 +374,7 @@ export interface PageRenderBlock {
|
|
|
419
374
|
}
|
|
420
375
|
|
|
421
376
|
export interface PageRenderResultBlock {
|
|
377
|
+
id?: string
|
|
422
378
|
name?: string
|
|
423
379
|
html: string
|
|
424
380
|
}
|
|
@@ -426,10 +382,29 @@ export interface PageRenderResultBlock {
|
|
|
426
382
|
export interface PageRenderResult {
|
|
427
383
|
blocks: PageRenderResultBlock[]
|
|
428
384
|
css: string
|
|
385
|
+
html: string
|
|
429
386
|
}
|
|
430
387
|
|
|
431
388
|
export type PageRenderHydrateOptions = Pick<HydrateValuesOptions, 'uniqueKey' | 'clientOptions'>
|
|
432
389
|
|
|
390
|
+
export interface PageStructureColumn {
|
|
391
|
+
id?: string | null
|
|
392
|
+
blocks?: string[] | null
|
|
393
|
+
span?: number | null
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export interface PageStructureRow {
|
|
397
|
+
id?: string | null
|
|
398
|
+
width?: string | null
|
|
399
|
+
background?: string | null
|
|
400
|
+
verticalAlign?: string | null
|
|
401
|
+
mobileOrder?: string | null
|
|
402
|
+
gap?: string | number | null
|
|
403
|
+
columns?: PageStructureColumn[] | null
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export type PageStructure = PageStructureRow[]
|
|
407
|
+
|
|
433
408
|
const isPlainObject = (value: unknown): value is Record<string, unknown> => {
|
|
434
409
|
return !!value && typeof value === 'object' && !Array.isArray(value)
|
|
435
410
|
}
|
|
@@ -474,20 +449,136 @@ const buildHydrateOptions = (
|
|
|
474
449
|
}
|
|
475
450
|
}
|
|
476
451
|
|
|
452
|
+
const normalizeClassToken = (value: unknown, fallback: string): string => {
|
|
453
|
+
if (value == null)
|
|
454
|
+
return fallback
|
|
455
|
+
const str = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : '')
|
|
456
|
+
return /^[A-Za-z0-9._/-]+$/.test(str) ? str : fallback
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const normalizeBackgroundClass = (value: unknown): string => {
|
|
460
|
+
const token = normalizeClassToken(value, 'transparent')
|
|
461
|
+
if (!token || token === 'transparent')
|
|
462
|
+
return 'bg-transparent'
|
|
463
|
+
return token.startsWith('bg-') ? token : `bg-${token}`
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
const normalizeWidthClass = (value: unknown): string => {
|
|
467
|
+
const token = normalizeClassToken(value, 'full')
|
|
468
|
+
if (!token || token === 'full')
|
|
469
|
+
return 'w-full'
|
|
470
|
+
if (token.startsWith('max-w-'))
|
|
471
|
+
return `${token} w-full mx-auto`
|
|
472
|
+
return token
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
const normalizeGapValue = (value: unknown): string => {
|
|
476
|
+
return normalizeClassToken(value, '4')
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
const normalizeAlignClass = (value: unknown): string => {
|
|
480
|
+
const token = normalizeClassToken(value, 'start')
|
|
481
|
+
if (token === 'center')
|
|
482
|
+
return 'items-center'
|
|
483
|
+
if (token === 'end')
|
|
484
|
+
return 'items-end'
|
|
485
|
+
return 'items-start'
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
const normalizeMobileOrderClass = (value: unknown): string => {
|
|
489
|
+
return value === 'reverse'
|
|
490
|
+
? 'flex flex-col-reverse md:grid md:grid-cols-6'
|
|
491
|
+
: 'flex flex-col md:grid md:grid-cols-6'
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
const normalizeColumnSpanClass = (value: unknown): string => {
|
|
495
|
+
const n = Number(value)
|
|
496
|
+
const clamped = Number.isFinite(n) ? Math.min(Math.max(Math.round(n), 1), 6) : 6
|
|
497
|
+
return `md:col-span-${clamped}`
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
type RenderedBlockWithId = PageRenderResultBlock & { id?: string }
|
|
501
|
+
|
|
502
|
+
const buildStructuredLayout = (
|
|
503
|
+
structure: PageStructure | null | undefined,
|
|
504
|
+
renderedBlocks: RenderedBlockWithId[],
|
|
505
|
+
): string | null => {
|
|
506
|
+
if (!Array.isArray(structure) || structure.length === 0)
|
|
507
|
+
return null
|
|
508
|
+
|
|
509
|
+
const blockLookup = new Map<string, string>()
|
|
510
|
+
for (const block of renderedBlocks) {
|
|
511
|
+
if (block?.id)
|
|
512
|
+
blockLookup.set(block.id, block.html)
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
const sections: string[] = []
|
|
516
|
+
|
|
517
|
+
for (const row of structure) {
|
|
518
|
+
const columns = Array.isArray(row?.columns) ? row.columns : []
|
|
519
|
+
if (!columns.length)
|
|
520
|
+
continue
|
|
521
|
+
|
|
522
|
+
const widthClass = normalizeWidthClass(row?.width)
|
|
523
|
+
const backgroundClass = normalizeBackgroundClass(row?.background)
|
|
524
|
+
const alignClass = normalizeAlignClass(row?.verticalAlign)
|
|
525
|
+
const gapValue = normalizeGapValue(row?.gap)
|
|
526
|
+
const gapClass = `gap-${gapValue}`
|
|
527
|
+
const stackClass = `space-y-${gapValue}`
|
|
528
|
+
const orderClass = normalizeMobileOrderClass(row?.mobileOrder)
|
|
529
|
+
|
|
530
|
+
const columnHtml = columns
|
|
531
|
+
.map((col) => {
|
|
532
|
+
const blockIds = Array.isArray(col?.blocks) ? col.blocks : []
|
|
533
|
+
const inner = blockIds
|
|
534
|
+
.map(blockId => (blockId ? (blockLookup.get(blockId) ?? '') : ''))
|
|
535
|
+
.filter(Boolean)
|
|
536
|
+
.join('')
|
|
537
|
+
|
|
538
|
+
if (!inner)
|
|
539
|
+
return ''
|
|
540
|
+
|
|
541
|
+
const spanClass = normalizeColumnSpanClass(col?.span)
|
|
542
|
+
return `<div class="w-full ${spanClass} ${stackClass}">${inner}</div>`
|
|
543
|
+
})
|
|
544
|
+
.filter(Boolean)
|
|
545
|
+
.join('')
|
|
546
|
+
|
|
547
|
+
if (!columnHtml)
|
|
548
|
+
continue
|
|
549
|
+
|
|
550
|
+
const section = `<section class="w-full ${backgroundClass}"><div class="${[widthClass, orderClass, gapClass, alignClass].filter(Boolean).join(' ')}">${columnHtml}</div></section>`
|
|
551
|
+
sections.push(section)
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
return sections.length ? sections.join('') : null
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
const buildPageHtml = (
|
|
558
|
+
renderedBlocks: RenderedBlockWithId[],
|
|
559
|
+
structure?: PageStructure | null,
|
|
560
|
+
): string => {
|
|
561
|
+
const defaultHtml = renderedBlocks.map(block => block.html).filter(Boolean).join('\n')
|
|
562
|
+
const structured = buildStructuredLayout(structure, renderedBlocks)
|
|
563
|
+
return structured || defaultHtml
|
|
564
|
+
}
|
|
565
|
+
|
|
477
566
|
export const pageRender = async (
|
|
478
567
|
blocks: PageRenderBlock[],
|
|
479
568
|
theme: Record<string, unknown> | null | undefined,
|
|
480
569
|
extraHtml: string | null | undefined = '',
|
|
481
570
|
hydrateOptions?: PageRenderHydrateOptions | null,
|
|
571
|
+
structure?: PageStructure | null,
|
|
482
572
|
): Promise<PageRenderResult> => {
|
|
483
|
-
|
|
484
|
-
const
|
|
573
|
+
console.warn('starting page render...', structure)
|
|
574
|
+
const renderedBlocks: RenderedBlockWithId[] = []
|
|
485
575
|
const hydrationConfig = buildHydrateOptions(hydrateOptions)
|
|
486
576
|
|
|
487
577
|
for (const block of blocks) {
|
|
488
578
|
if (!block?.content) {
|
|
489
579
|
const blockName = typeof block?.name === 'string' ? block.name : undefined
|
|
490
|
-
|
|
580
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined
|
|
581
|
+
renderedBlocks.push({ id: blockId, name: blockName, html: '' })
|
|
491
582
|
continue
|
|
492
583
|
}
|
|
493
584
|
|
|
@@ -510,21 +601,21 @@ export const pageRender = async (
|
|
|
510
601
|
)
|
|
511
602
|
|
|
512
603
|
const blockName = typeof block.name === 'string' ? block.name : undefined
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
htmlFragments.push(html)
|
|
604
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined
|
|
605
|
+
renderedBlocks.push({ id: blockId, name: blockName, html })
|
|
516
606
|
}
|
|
517
607
|
|
|
518
|
-
|
|
519
|
-
|
|
608
|
+
const pageHtml = buildPageHtml(renderedBlocks, structure)
|
|
609
|
+
const extra = typeof extraHtml === 'string' ? extraHtml : ''
|
|
610
|
+
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n')
|
|
520
611
|
|
|
521
|
-
const combinedHtml = htmlFragments.join('\n')
|
|
522
612
|
const safeTheme = theme && typeof theme === 'object' ? theme : {}
|
|
523
613
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme)
|
|
524
614
|
|
|
525
615
|
return {
|
|
526
616
|
blocks: renderedBlocks,
|
|
527
617
|
css,
|
|
618
|
+
html: pageHtml,
|
|
528
619
|
}
|
|
529
620
|
}
|
|
530
621
|
|
|
@@ -532,13 +623,14 @@ export const pageRenderPlaceHolder = async (
|
|
|
532
623
|
blocks: PageRenderBlock[],
|
|
533
624
|
theme: Record<string, unknown> | null | undefined,
|
|
534
625
|
extraHtml: string | null | undefined = '',
|
|
626
|
+
structure?: PageStructure | null,
|
|
535
627
|
): Promise<PageRenderResult> => {
|
|
536
|
-
const renderedBlocks:
|
|
537
|
-
const htmlFragments: string[] = []
|
|
628
|
+
const renderedBlocks: RenderedBlockWithId[] = []
|
|
538
629
|
for (const block of blocks) {
|
|
539
630
|
if (!block?.content) {
|
|
540
631
|
const blockName = typeof block?.name === 'string' ? block.name : undefined
|
|
541
|
-
|
|
632
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined
|
|
633
|
+
renderedBlocks.push({ id: blockId, name: blockName, html: '' })
|
|
542
634
|
continue
|
|
543
635
|
}
|
|
544
636
|
|
|
@@ -554,15 +646,14 @@ export const pageRenderPlaceHolder = async (
|
|
|
554
646
|
)
|
|
555
647
|
|
|
556
648
|
const blockName = typeof block.name === 'string' ? block.name : undefined
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
htmlFragments.push(html)
|
|
649
|
+
const blockId = typeof block?.id === 'string' ? block.id : undefined
|
|
650
|
+
renderedBlocks.push({ id: blockId, name: blockName, html })
|
|
560
651
|
}
|
|
561
652
|
|
|
562
|
-
|
|
563
|
-
|
|
653
|
+
const pageHtml = buildPageHtml(renderedBlocks, structure)
|
|
654
|
+
const extra = typeof extraHtml === 'string' ? extraHtml : ''
|
|
655
|
+
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n')
|
|
564
656
|
|
|
565
|
-
const combinedHtml = htmlFragments.join('\n')
|
|
566
657
|
console.log('generating css...', combinedHtml.length)
|
|
567
658
|
const safeTheme = theme && typeof theme === 'object' ? theme : {}
|
|
568
659
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme)
|
|
@@ -570,6 +661,7 @@ export const pageRenderPlaceHolder = async (
|
|
|
570
661
|
return {
|
|
571
662
|
blocks: renderedBlocks,
|
|
572
663
|
css,
|
|
664
|
+
html: pageHtml,
|
|
573
665
|
}
|
|
574
666
|
}
|
|
575
667
|
|