@teleporthq/teleport-plugin-jsx-head-config 0.43.21 → 0.43.22
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/__tests__/index.ts +182 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/structured-data-ast.d.ts +18 -0
- package/dist/cjs/structured-data-ast.d.ts.map +1 -0
- package/dist/cjs/structured-data-ast.js +191 -0
- package/dist/cjs/structured-data-ast.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/structured-data-ast.d.ts +18 -0
- package/dist/esm/structured-data-ast.d.ts.map +1 -0
- package/dist/esm/structured-data-ast.js +164 -0
- package/dist/esm/structured-data-ast.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/index.ts +13 -0
- package/src/structured-data-ast.ts +215 -0
package/__tests__/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as types from '@babel/types'
|
|
2
|
+
import generator from '@babel/generator'
|
|
2
3
|
import { createJSXHeadConfigPlugin } from '../src'
|
|
3
4
|
import { component, elementNode } from '@teleporthq/teleport-uidl-builders'
|
|
4
5
|
import {
|
|
@@ -410,4 +411,185 @@ describe('plugin-jsx-head-config', () => {
|
|
|
410
411
|
expect((titleNode.openingElement.name as types.JSXIdentifier).name).toBe('title')
|
|
411
412
|
expect(structure.dependencies.useRouter).toBeUndefined()
|
|
412
413
|
})
|
|
414
|
+
|
|
415
|
+
const codeOf = (node: types.Node) => generator(node).code
|
|
416
|
+
|
|
417
|
+
it('Should emit a static JSON-LD script verbatim', async () => {
|
|
418
|
+
const uidlSample = component('SimpleComponent', elementNode('container'))
|
|
419
|
+
uidlSample.node.content.key = 'container'
|
|
420
|
+
const ld = '{"@context":"https://schema.org","@type":"Organization","name":"Acme"}'
|
|
421
|
+
uidlSample.seo = { structuredData: [ld] }
|
|
422
|
+
|
|
423
|
+
const freshChunk = createFreshJsxChunk()
|
|
424
|
+
const structure: ComponentStructure = {
|
|
425
|
+
uidl: uidlSample,
|
|
426
|
+
options: {},
|
|
427
|
+
chunks: [freshChunk],
|
|
428
|
+
dependencies: {},
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
await plugin(structure)
|
|
432
|
+
|
|
433
|
+
const astNode = freshChunk.meta.nodesLookup.container as types.JSXElement
|
|
434
|
+
const helmetNode = astNode.children[0] as types.JSXElement
|
|
435
|
+
const scriptNode = helmetNode.children[0] as types.JSXElement
|
|
436
|
+
expect((scriptNode.openingElement.name as types.JSXIdentifier).name).toBe('script')
|
|
437
|
+
|
|
438
|
+
const code = codeOf(scriptNode)
|
|
439
|
+
expect(code).toContain('type="application/ld+json"')
|
|
440
|
+
expect(code).toContain('dangerouslySetInnerHTML')
|
|
441
|
+
// emitted as a (quote-escaped) string literal containing the raw JSON
|
|
442
|
+
expect(code).toContain('@type')
|
|
443
|
+
expect(code).toContain('Organization')
|
|
444
|
+
// a static string is emitted verbatim, not wrapped in JSON.stringify
|
|
445
|
+
expect(code).not.toContain('JSON.stringify')
|
|
446
|
+
})
|
|
447
|
+
|
|
448
|
+
it('Should emit a dynamic Product JSON-LD bound to entity props', async () => {
|
|
449
|
+
const uidlSample = component('SimpleComponent', elementNode('container'))
|
|
450
|
+
uidlSample.node.content.key = 'container'
|
|
451
|
+
uidlSample.seo = {
|
|
452
|
+
structuredData: [
|
|
453
|
+
{
|
|
454
|
+
'@context': 'https://schema.org',
|
|
455
|
+
'@type': 'Product',
|
|
456
|
+
name: {
|
|
457
|
+
type: 'dynamic',
|
|
458
|
+
content: { referenceType: 'prop', id: 'root', refPath: ['ecommerceProduct', 'name'] },
|
|
459
|
+
},
|
|
460
|
+
offers: {
|
|
461
|
+
'@type': 'Offer',
|
|
462
|
+
priceCurrency: {
|
|
463
|
+
type: 'dynamic',
|
|
464
|
+
content: {
|
|
465
|
+
referenceType: 'prop',
|
|
466
|
+
id: 'root',
|
|
467
|
+
refPath: ['ecommerceProduct', 'currency'],
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
availability: {
|
|
471
|
+
type: 'computed',
|
|
472
|
+
kind: 'availability',
|
|
473
|
+
refPath: ['ecommerceProduct'],
|
|
474
|
+
column: 'quantity',
|
|
475
|
+
},
|
|
476
|
+
itemCondition: {
|
|
477
|
+
type: 'computed',
|
|
478
|
+
kind: 'itemCondition',
|
|
479
|
+
refPath: ['ecommerceProduct'],
|
|
480
|
+
column: 'condition',
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
],
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
const freshChunk = createFreshJsxChunk()
|
|
488
|
+
const structure: ComponentStructure = {
|
|
489
|
+
uidl: uidlSample,
|
|
490
|
+
options: {},
|
|
491
|
+
chunks: [freshChunk],
|
|
492
|
+
dependencies: {},
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
await plugin(structure)
|
|
496
|
+
|
|
497
|
+
const astNode = freshChunk.meta.nodesLookup.container as types.JSXElement
|
|
498
|
+
const helmetNode = astNode.children[0] as types.JSXElement
|
|
499
|
+
const scriptNode = helmetNode.children[0] as types.JSXElement
|
|
500
|
+
const code = codeOf(scriptNode)
|
|
501
|
+
|
|
502
|
+
expect(code).toContain('JSON.stringify')
|
|
503
|
+
expect(code).toContain('props?.ecommerceProduct?.name')
|
|
504
|
+
expect(code).toContain('props?.ecommerceProduct?.currency')
|
|
505
|
+
// availability ternary
|
|
506
|
+
expect(code).toContain('props?.ecommerceProduct?.quantity === 0')
|
|
507
|
+
expect(code).toContain('https://schema.org/OutOfStock')
|
|
508
|
+
expect(code).toContain('https://schema.org/InStock')
|
|
509
|
+
// itemCondition map lookup with default
|
|
510
|
+
expect(code).toContain('https://schema.org/NewCondition')
|
|
511
|
+
// </script> breakout guard
|
|
512
|
+
expect(code).toMatch(/\.replace\(\/<\/g/)
|
|
513
|
+
})
|
|
514
|
+
|
|
515
|
+
it('Should emit multiple JSON-LD scripts', async () => {
|
|
516
|
+
const uidlSample = component('SimpleComponent', elementNode('container'))
|
|
517
|
+
uidlSample.node.content.key = 'container'
|
|
518
|
+
uidlSample.seo = {
|
|
519
|
+
structuredData: ['{"@type":"WebSite"}', '{"@type":"Organization"}'],
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
const freshChunk = createFreshJsxChunk()
|
|
523
|
+
const structure: ComponentStructure = {
|
|
524
|
+
uidl: uidlSample,
|
|
525
|
+
options: {},
|
|
526
|
+
chunks: [freshChunk],
|
|
527
|
+
dependencies: {},
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
await plugin(structure)
|
|
531
|
+
|
|
532
|
+
const astNode = freshChunk.meta.nodesLookup.container as types.JSXElement
|
|
533
|
+
const helmetNode = astNode.children[0] as types.JSXElement
|
|
534
|
+
expect(helmetNode.children.length).toBe(2)
|
|
535
|
+
expect((helmetNode.children[0] as types.JSXElement).openingElement.name).toMatchObject({
|
|
536
|
+
name: 'script',
|
|
537
|
+
})
|
|
538
|
+
expect((helmetNode.children[1] as types.JSXElement).openingElement.name).toMatchObject({
|
|
539
|
+
name: 'script',
|
|
540
|
+
})
|
|
541
|
+
})
|
|
542
|
+
|
|
543
|
+
it('Should not change output when no structuredData is present', async () => {
|
|
544
|
+
const uidlSample = component('SimpleComponent', elementNode('container'))
|
|
545
|
+
uidlSample.node.content.key = 'container'
|
|
546
|
+
uidlSample.seo = { title: 'Plain' }
|
|
547
|
+
|
|
548
|
+
const freshChunk = createFreshJsxChunk()
|
|
549
|
+
const structure: ComponentStructure = {
|
|
550
|
+
uidl: uidlSample,
|
|
551
|
+
options: {},
|
|
552
|
+
chunks: [freshChunk],
|
|
553
|
+
dependencies: {},
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
await plugin(structure)
|
|
557
|
+
|
|
558
|
+
const astNode = freshChunk.meta.nodesLookup.container as types.JSXElement
|
|
559
|
+
const helmetNode = astNode.children[0] as types.JSXElement
|
|
560
|
+
// only the title tag — no script tags
|
|
561
|
+
expect(helmetNode.children.length).toBe(1)
|
|
562
|
+
expect((helmetNode.children[0] as types.JSXElement).openingElement.name).toMatchObject({
|
|
563
|
+
name: 'title',
|
|
564
|
+
})
|
|
565
|
+
})
|
|
566
|
+
|
|
567
|
+
it('Should add the translations hook for a locale-bound JSON-LD leaf', async () => {
|
|
568
|
+
const uidlSample = component('SimpleComponent', elementNode('container'))
|
|
569
|
+
uidlSample.node.content.key = 'container'
|
|
570
|
+
uidlSample.seo = {
|
|
571
|
+
structuredData: [
|
|
572
|
+
{
|
|
573
|
+
'@type': 'WebSite',
|
|
574
|
+
name: { type: 'dynamic', content: { referenceType: 'locale', id: 'site.name' } },
|
|
575
|
+
},
|
|
576
|
+
],
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
const freshChunk = createFreshJsxChunk()
|
|
580
|
+
const structure: ComponentStructure = {
|
|
581
|
+
uidl: uidlSample,
|
|
582
|
+
options: {},
|
|
583
|
+
chunks: [freshChunk],
|
|
584
|
+
dependencies: {},
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
await plugin(structure)
|
|
588
|
+
|
|
589
|
+
expect(structure.dependencies.useTranslations).toBeDefined()
|
|
590
|
+
const astNode = freshChunk.meta.nodesLookup.container as types.JSXElement
|
|
591
|
+
const helmetNode = astNode.children[0] as types.JSXElement
|
|
592
|
+
const code = codeOf(helmetNode.children[0] as types.JSXElement)
|
|
593
|
+
expect(code).toContain('translate.raw("site.name")')
|
|
594
|
+
})
|
|
413
595
|
})
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,eAAe,EAGf,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,eAAe,EAGf,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AAKnC,UAAU,mBAAmB;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,sBAUnC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,sBAAsB,CAAC,mBAAmB,CAydjF,CAAA;;AAED,wBAA0C"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -82,6 +82,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
82
82
|
exports.createJSXHeadConfigPlugin = exports.USE_TRANSLATIONS_HOOK = void 0;
|
|
83
83
|
var teleport_plugin_common_1 = require("@teleporthq/teleport-plugin-common");
|
|
84
84
|
var types = __importStar(require("@babel/types"));
|
|
85
|
+
var structured_data_ast_1 = require("./structured-data-ast");
|
|
85
86
|
exports.USE_TRANSLATIONS_HOOK = {
|
|
86
87
|
type: 'package',
|
|
87
88
|
path: 'next-intl',
|
|
@@ -249,6 +250,17 @@ var createJSXHeadConfigPlugin = function (config) {
|
|
|
249
250
|
}
|
|
250
251
|
});
|
|
251
252
|
}
|
|
253
|
+
if (uidl.seo.structuredData && uidl.seo.structuredData.length > 0) {
|
|
254
|
+
uidl.seo.structuredData.forEach(function (entry) {
|
|
255
|
+
var _a = (0, structured_data_ast_1.buildStructuredDataScript)(entry), scriptTag = _a.scriptTag, usesTranslations = _a.usesTranslations;
|
|
256
|
+
if (usesTranslations && !translationsAdded) {
|
|
257
|
+
structure.dependencies.useTranslations = exports.USE_TRANSLATIONS_HOOK;
|
|
258
|
+
reactHooks.push(getTranslationsAST());
|
|
259
|
+
translationsAdded = true;
|
|
260
|
+
}
|
|
261
|
+
headASTTags.push(scriptTag);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
252
264
|
if (headASTTags.length > 0) {
|
|
253
265
|
headConfigTag = teleport_plugin_common_1.ASTBuilders.createJSXTag(configTagIdentifier, headASTTags);
|
|
254
266
|
rootKey = uidl.node.content.key;
|
package/dist/cjs/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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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as types from '@babel/types';
|
|
2
|
+
import { UIDLStructuredDataEntry } from '@teleporthq/teleport-types';
|
|
3
|
+
export interface StructuredDataScript {
|
|
4
|
+
scriptTag: types.JSXElement;
|
|
5
|
+
/** True when any leaf resolved to a `translate.raw(...)` (locale) reference. */
|
|
6
|
+
usesTranslations: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Builds `<script type="application/ld+json" dangerouslySetInnerHTML={{ __html }} />`.
|
|
10
|
+
* - A string entry is a pre-serialized JSON document (the mapper has already
|
|
11
|
+
* escaped `<`), emitted verbatim.
|
|
12
|
+
* - An object entry is built into an object expression and rendered at runtime
|
|
13
|
+
* via `JSON.stringify(obj).replace(/</g, '<')` — the replace prevents a
|
|
14
|
+
* product value containing `</script>` from breaking out of the tag, and
|
|
15
|
+
* `JSON.stringify` drops `undefined` (missing optional fields).
|
|
16
|
+
*/
|
|
17
|
+
export declare const buildStructuredDataScript: (entry: UIDLStructuredDataEntry) => StructuredDataScript;
|
|
18
|
+
//# sourceMappingURL=structured-data-ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-data-ast.d.ts","sourceRoot":"","sources":["../../src/structured-data-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EACL,uBAAuB,EAMxB,MAAM,4BAA4B,CAAA;AAWnC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAA;IAC3B,gFAAgF;IAChF,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAsJD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,UAAW,uBAAuB,KAAG,oBA+B1E,CAAA"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.buildStructuredDataScript = void 0;
|
|
36
|
+
var types = __importStar(require("@babel/types"));
|
|
37
|
+
var teleport_plugin_common_1 = require("@teleporthq/teleport-plugin-common");
|
|
38
|
+
var SCHEMA_CONDITION_MAP = {
|
|
39
|
+
new: 'https://schema.org/NewCondition',
|
|
40
|
+
refurbished: 'https://schema.org/RefurbishedCondition',
|
|
41
|
+
used: 'https://schema.org/UsedCondition',
|
|
42
|
+
};
|
|
43
|
+
var DEFAULT_CONDITION = 'https://schema.org/NewCondition';
|
|
44
|
+
var IN_STOCK = 'https://schema.org/InStock';
|
|
45
|
+
var OUT_OF_STOCK = 'https://schema.org/OutOfStock';
|
|
46
|
+
/**
|
|
47
|
+
* `props?.a?.b` — optional member chain rooted at `props` (the page-level props
|
|
48
|
+
* returned by getStaticProps), so missing entity fields resolve to `undefined`
|
|
49
|
+
* and drop out of `JSON.stringify`.
|
|
50
|
+
*/
|
|
51
|
+
var buildPropExpression = function (refPath) {
|
|
52
|
+
if (refPath === void 0) { refPath = []; }
|
|
53
|
+
var expression = types.identifier('props');
|
|
54
|
+
refPath.forEach(function (segment) {
|
|
55
|
+
expression = types.optionalMemberExpression(expression, types.identifier(segment), false, true);
|
|
56
|
+
});
|
|
57
|
+
return expression;
|
|
58
|
+
};
|
|
59
|
+
var buildLocaleExpression = function (id) {
|
|
60
|
+
return types.callExpression(types.memberExpression(types.identifier('translate'), types.identifier('raw')), [types.stringLiteral(id)]);
|
|
61
|
+
};
|
|
62
|
+
var buildDynamicExpression = function (ref) {
|
|
63
|
+
var _a = ref.content, referenceType = _a.referenceType, refPath = _a.refPath, id = _a.id;
|
|
64
|
+
if (referenceType === 'locale') {
|
|
65
|
+
return { expression: buildLocaleExpression(id), usesTranslations: true };
|
|
66
|
+
}
|
|
67
|
+
// prop (and any other reference) resolves against the page props.
|
|
68
|
+
return { expression: buildPropExpression(refPath || []), usesTranslations: false };
|
|
69
|
+
};
|
|
70
|
+
var buildComputedExpression = function (node) {
|
|
71
|
+
var entityField = buildPropExpression(__spreadArray(__spreadArray([], node.refPath, true), [node.column], false));
|
|
72
|
+
if (node.kind === 'availability') {
|
|
73
|
+
// <entity>.<column> === 0 ? OutOfStock : InStock
|
|
74
|
+
return types.conditionalExpression(types.binaryExpression('===', entityField, types.numericLiteral(0)), types.stringLiteral(OUT_OF_STOCK), types.stringLiteral(IN_STOCK));
|
|
75
|
+
}
|
|
76
|
+
if (node.kind === 'itemCondition') {
|
|
77
|
+
// ({new:..., refurbished:..., used:...})[<entity>.<column>] || NewCondition
|
|
78
|
+
var mapExpression = types.objectExpression(Object.keys(SCHEMA_CONDITION_MAP).map(function (key) {
|
|
79
|
+
return types.objectProperty(types.identifier(key), types.stringLiteral(SCHEMA_CONDITION_MAP[key]));
|
|
80
|
+
}));
|
|
81
|
+
return types.logicalExpression('||', types.memberExpression(mapExpression, entityField, true, false), types.stringLiteral(DEFAULT_CONDITION));
|
|
82
|
+
}
|
|
83
|
+
// concatUrl: `${urlPrefix}${<entity>.<column>}`
|
|
84
|
+
var prefix = node.urlPrefix || '';
|
|
85
|
+
return types.templateLiteral([
|
|
86
|
+
types.templateElement({ raw: prefix, cooked: prefix }, false),
|
|
87
|
+
types.templateElement({ raw: '', cooked: '' }, true),
|
|
88
|
+
], [entityField]);
|
|
89
|
+
};
|
|
90
|
+
/** Converts a plain JSON value (no dynamic/computed markers) into a literal AST. */
|
|
91
|
+
var jsonToAST = function (value) {
|
|
92
|
+
if (value === null || value === undefined) {
|
|
93
|
+
return types.nullLiteral();
|
|
94
|
+
}
|
|
95
|
+
if (typeof value === 'string') {
|
|
96
|
+
return types.stringLiteral(value);
|
|
97
|
+
}
|
|
98
|
+
if (typeof value === 'number') {
|
|
99
|
+
return types.numericLiteral(value);
|
|
100
|
+
}
|
|
101
|
+
if (typeof value === 'boolean') {
|
|
102
|
+
return types.booleanLiteral(value);
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(value)) {
|
|
105
|
+
return types.arrayExpression(value.map(function (item) { return jsonToAST(item); }));
|
|
106
|
+
}
|
|
107
|
+
return types.objectExpression(Object.entries(value).map(function (_a) {
|
|
108
|
+
var key = _a[0], val = _a[1];
|
|
109
|
+
return types.objectProperty(types.stringLiteral(key), jsonToAST(val));
|
|
110
|
+
}));
|
|
111
|
+
};
|
|
112
|
+
var isDynamicRef = function (node) {
|
|
113
|
+
return typeof node === 'object' && node !== null && node.type === 'dynamic';
|
|
114
|
+
};
|
|
115
|
+
var isStaticValue = function (node) {
|
|
116
|
+
return typeof node === 'object' && node !== null && node.type === 'static';
|
|
117
|
+
};
|
|
118
|
+
var isComputed = function (node) {
|
|
119
|
+
return typeof node === 'object' && node !== null && node.type === 'computed';
|
|
120
|
+
};
|
|
121
|
+
var buildNode = function (node) {
|
|
122
|
+
if (node === null) {
|
|
123
|
+
return { expression: types.nullLiteral(), usesTranslations: false };
|
|
124
|
+
}
|
|
125
|
+
if (typeof node === 'string') {
|
|
126
|
+
return { expression: types.stringLiteral(node), usesTranslations: false };
|
|
127
|
+
}
|
|
128
|
+
if (typeof node === 'number') {
|
|
129
|
+
return { expression: types.numericLiteral(node), usesTranslations: false };
|
|
130
|
+
}
|
|
131
|
+
if (typeof node === 'boolean') {
|
|
132
|
+
return { expression: types.booleanLiteral(node), usesTranslations: false };
|
|
133
|
+
}
|
|
134
|
+
if (Array.isArray(node)) {
|
|
135
|
+
var usesTranslations_1 = false;
|
|
136
|
+
var elements = node.map(function (item) {
|
|
137
|
+
var built = buildNode(item);
|
|
138
|
+
usesTranslations_1 = usesTranslations_1 || built.usesTranslations;
|
|
139
|
+
return built.expression;
|
|
140
|
+
});
|
|
141
|
+
return { expression: types.arrayExpression(elements), usesTranslations: usesTranslations_1 };
|
|
142
|
+
}
|
|
143
|
+
if (isStaticValue(node)) {
|
|
144
|
+
return { expression: jsonToAST(node.content), usesTranslations: false };
|
|
145
|
+
}
|
|
146
|
+
if (isDynamicRef(node)) {
|
|
147
|
+
return buildDynamicExpression(node);
|
|
148
|
+
}
|
|
149
|
+
if (isComputed(node)) {
|
|
150
|
+
return { expression: buildComputedExpression(node), usesTranslations: false };
|
|
151
|
+
}
|
|
152
|
+
return buildObject(node);
|
|
153
|
+
};
|
|
154
|
+
var buildObject = function (obj) {
|
|
155
|
+
var usesTranslations = false;
|
|
156
|
+
var properties = Object.entries(obj).map(function (_a) {
|
|
157
|
+
var key = _a[0], value = _a[1];
|
|
158
|
+
var built = buildNode(value);
|
|
159
|
+
usesTranslations = usesTranslations || built.usesTranslations;
|
|
160
|
+
return types.objectProperty(types.stringLiteral(key), built.expression);
|
|
161
|
+
});
|
|
162
|
+
return { expression: types.objectExpression(properties), usesTranslations: usesTranslations };
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Builds `<script type="application/ld+json" dangerouslySetInnerHTML={{ __html }} />`.
|
|
166
|
+
* - A string entry is a pre-serialized JSON document (the mapper has already
|
|
167
|
+
* escaped `<`), emitted verbatim.
|
|
168
|
+
* - An object entry is built into an object expression and rendered at runtime
|
|
169
|
+
* via `JSON.stringify(obj).replace(/</g, '<')` — the replace prevents a
|
|
170
|
+
* product value containing `</script>` from breaking out of the tag, and
|
|
171
|
+
* `JSON.stringify` drops `undefined` (missing optional fields).
|
|
172
|
+
*/
|
|
173
|
+
var buildStructuredDataScript = function (entry) {
|
|
174
|
+
var htmlExpression;
|
|
175
|
+
var usesTranslations = false;
|
|
176
|
+
if (typeof entry === 'string') {
|
|
177
|
+
htmlExpression = types.stringLiteral(entry);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
var built = buildObject(entry);
|
|
181
|
+
usesTranslations = built.usesTranslations;
|
|
182
|
+
var stringifyCall = types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [built.expression]);
|
|
183
|
+
htmlExpression = types.callExpression(types.memberExpression(stringifyCall, types.identifier('replace')), [types.regExpLiteral('<', 'g'), types.stringLiteral('\\u003c')]);
|
|
184
|
+
}
|
|
185
|
+
var scriptTag = teleport_plugin_common_1.ASTBuilders.createSelfClosingJSXTag('script');
|
|
186
|
+
teleport_plugin_common_1.ASTUtils.addAttributeToJSXTag(scriptTag, 'type', 'application/ld+json');
|
|
187
|
+
scriptTag.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('dangerouslySetInnerHTML'), types.jsxExpressionContainer(types.objectExpression([types.objectProperty(types.identifier('__html'), htmlExpression)]))));
|
|
188
|
+
return { scriptTag: scriptTag, usesTranslations: usesTranslations };
|
|
189
|
+
};
|
|
190
|
+
exports.buildStructuredDataScript = buildStructuredDataScript;
|
|
191
|
+
//# sourceMappingURL=structured-data-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-data-ast.js","sourceRoot":"","sources":["../../src/structured-data-ast.ts"],"names":[],"mappings":"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"}
|