@financial-times/cp-content-pipeline-schema 2.5.0 → 2.5.2
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/CHANGELOG.md +15 -0
- package/lib/datasources/instrumented.js.map +1 -1
- package/lib/datasources/origami-image.js +1 -1
- package/lib/datasources/origami-image.js.map +1 -1
- package/lib/helpers/imageService.d.ts +2 -1
- package/lib/model/Byline.js +1 -1
- package/lib/model/Byline.js.map +1 -1
- package/lib/model/Clip.d.ts +3 -2
- package/lib/model/Clip.js +7 -5
- package/lib/model/Clip.js.map +1 -1
- package/lib/model/Concept.d.ts +3 -13
- package/lib/model/Concept.js +10 -10
- package/lib/model/Concept.js.map +1 -1
- package/lib/model/Image.d.ts +1 -5
- package/lib/model/Image.js.map +1 -1
- package/lib/model/Image.test.js.map +1 -1
- package/lib/model/Topper.d.ts +2 -5
- package/lib/model/Topper.js +1 -1
- package/lib/model/Topper.js.map +1 -1
- package/lib/model/schemas/capi/base-schema.d.ts +0 -119
- package/lib/model/schemas/capi/base-schema.js +7 -7
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/resolvers/clip.d.ts +9 -1
- package/lib/resolvers/content-tree/nodePredicates.d.ts +0 -5
- package/lib/resolvers/content-tree/nodePredicates.js +1 -26
- package/lib/resolvers/content-tree/nodePredicates.js.map +1 -1
- package/lib/resolvers/content-tree/references/index.js.map +1 -1
- package/lib/resolvers/content-tree/tagMappings.test.js +6 -9
- package/lib/resolvers/content-tree/tagMappings.test.js.map +1 -1
- package/lib/resolvers/image.d.ts +1 -1
- package/lib/resolvers/index.d.ts +10 -2
- package/lib/resolvers/scalars.d.ts +0 -1
- package/lib/resolvers/scalars.js +3 -3
- package/lib/resolvers/scalars.js.map +1 -1
- package/package.json +1 -1
- package/src/datasources/instrumented.ts +0 -1
- package/src/datasources/origami-image.ts +1 -1
- package/src/helpers/imageService.ts +1 -1
- package/src/model/Byline.ts +1 -1
- package/src/model/Clip.ts +11 -8
- package/src/model/Concept.ts +5 -9
- package/src/model/Image.test.ts +1 -6
- package/src/model/Image.ts +1 -6
- package/src/model/Topper.ts +3 -7
- package/src/model/schemas/capi/base-schema.ts +3 -3
- package/src/resolvers/content-tree/nodePredicates.ts +0 -42
- package/src/resolvers/content-tree/references/index.ts +0 -2
- package/src/resolvers/content-tree/tagMappings.test.ts +6 -10
- package/src/resolvers/scalars.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/lib/fixtures/clipSet.d.ts +0 -2
- package/lib/fixtures/clipSet.js +0 -70
- package/lib/fixtures/clipSet.js.map +0 -1
- package/lib/helpers/kebabCaseToPascalCase.d.ts +0 -1
- package/lib/helpers/kebabCaseToPascalCase.js +0 -7
- package/lib/helpers/kebabCaseToPascalCase.js.map +0 -1
- package/src/fixtures/clipSet.ts +0 -72
- package/src/helpers/kebabCaseToPascalCase.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/base-schema.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,MAAM,OAAO,GAAG,OAAC,CAAC,MAAM,CAAC;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/base-schema.ts"],"names":[],"mappings":"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"}
|
package/lib/resolvers/clip.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
declare const resolvers: {
|
|
2
2
|
Clip: {
|
|
3
3
|
__resolveType: () => string;
|
|
4
|
-
dataSource: (clip: import("../model/Clip").Clip) =>
|
|
4
|
+
dataSource: (clip: import("../model/Clip").Clip) => {
|
|
5
|
+
binaryUrl: string;
|
|
6
|
+
mediaType: string;
|
|
7
|
+
audioCodec?: string | undefined;
|
|
8
|
+
duration?: number | undefined;
|
|
9
|
+
pixelHeight?: number | undefined;
|
|
10
|
+
pixelWidth?: number | undefined;
|
|
11
|
+
videoCodec?: string | undefined;
|
|
12
|
+
}[];
|
|
5
13
|
type: (clip: import("../model/Clip").Clip) => string;
|
|
6
14
|
format: (clip: import("../model/Clip").Clip) => "mobile" | "standard-inline";
|
|
7
15
|
poster: (clip: import("../model/Clip").Clip) => string;
|
|
@@ -4,13 +4,8 @@ type ValuesOfTuple<Tuple extends readonly string[]> = Tuple[number];
|
|
|
4
4
|
type NodeOfType<Type extends AnyNode['type']> = Extract<AnyNode, {
|
|
5
5
|
type: Type;
|
|
6
6
|
}>;
|
|
7
|
-
type NodesOfTypes<Types extends readonly AnyNode['type'][]> = {
|
|
8
|
-
-readonly [key in keyof Types]: NodeOfType<Types[key]>;
|
|
9
|
-
};
|
|
10
7
|
export declare const phrasingTypes: readonly ["text", "break", "strong", "emphasis", "strikethrough", "link"];
|
|
11
8
|
export declare const findChildOftype: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeType | undefined;
|
|
12
9
|
export declare const everyChildIsType: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeType[];
|
|
13
10
|
export declare const childrenOfTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeOfType<ValuesOfTuple<Types>>[];
|
|
14
|
-
export declare const nodesAreOrderedTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: readonly AnyNode[]) => nodes is NodesOfTypes<Types>;
|
|
15
|
-
export declare const childrenOfOrderedTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodesOfTypes<Types>;
|
|
16
11
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.childrenOfTypes = exports.everyChildIsType = exports.findChildOftype = exports.phrasingTypes = void 0;
|
|
4
4
|
const errors_1 = require("@dotcom-reliability-kit/errors");
|
|
5
5
|
exports.phrasingTypes = [
|
|
6
6
|
'text',
|
|
@@ -61,29 +61,4 @@ const childrenOfTypes = (types, nodes, parentType, context) => {
|
|
|
61
61
|
return nodes;
|
|
62
62
|
};
|
|
63
63
|
exports.childrenOfTypes = childrenOfTypes;
|
|
64
|
-
const nodesAreOrderedTypes = (types, nodes) => {
|
|
65
|
-
for (const [index, node] of nodes.entries()) {
|
|
66
|
-
if (node.type !== types[index]) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
};
|
|
72
|
-
exports.nodesAreOrderedTypes = nodesAreOrderedTypes;
|
|
73
|
-
const childrenOfOrderedTypes = (types, nodes, parentType, context) => {
|
|
74
|
-
if ((0, exports.nodesAreOrderedTypes)(types, nodes)) {
|
|
75
|
-
return nodes;
|
|
76
|
-
}
|
|
77
|
-
context?.logger.error({
|
|
78
|
-
event: 'RECOVERABLE_ERROR',
|
|
79
|
-
error: new errors_1.OperationalError({
|
|
80
|
-
code: 'BODY_XML_UNEXPECTED_STRUCTURE',
|
|
81
|
-
message: `Unexpected children types for ${parentType}`,
|
|
82
|
-
expected: types,
|
|
83
|
-
actual: nodes.map((node) => node.type),
|
|
84
|
-
}),
|
|
85
|
-
});
|
|
86
|
-
return nodes;
|
|
87
|
-
};
|
|
88
|
-
exports.childrenOfOrderedTypes = childrenOfOrderedTypes;
|
|
89
64
|
//# sourceMappingURL=nodePredicates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodePredicates.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/nodePredicates.ts"],"names":[],"mappings":";;;AAAA,2DAAiE;
|
|
1
|
+
{"version":3,"file":"nodePredicates.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/nodePredicates.ts"],"names":[],"mappings":";;;AAAA,2DAAiE;AAQpD,QAAA,aAAa,GAAG;IAC3B,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,eAAe;IACf,MAAM;CACE,CAAA;AAEH,MAAM,eAAe,GAAG,CAC7B,IAAsB,EACtB,KAAgB,EAChB,UAA2B,EAC3B,OAAsB,EACA,EAAE;IACxB,MAAM,SAAS,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEnC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,IAAI,yBAAgB,CAAC;gBAC1B,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,sCAAsC,UAAU,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACvC,CAAC;SACH,CAAC,CAAA;KACH;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAtBY,QAAA,eAAe,mBAsB3B;AAEM,MAAM,gBAAgB,GAAG,CAC9B,IAAsB,EACtB,KAAgB,EAChB,UAA2B,EAC3B,OAAsB,EACV,EAAE;IACd,MAAM,SAAS,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IACzE,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEjD,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,IAAI,yBAAgB,CAAC;gBAC1B,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,iCAAiC,UAAU,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACvC,CAAC;SACH,CAAC,CAAA;KACH;IAED,OAAO,KAAmB,CAAA;AAC5B,CAAC,CAAA;AAtBY,QAAA,gBAAgB,oBAsB5B;AAEM,MAAM,eAAe,GAAG,CAC7B,KAAY,EACZ,KAAgB,EAChB,UAA2B,EAC3B,OAAsB,EACc,EAAE;IACtC,MAAM,SAAS,GAAG,CAAC,IAAa,EAA4C,EAAE,CAC5E,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEjD,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,IAAI,yBAAgB,CAAC;gBAC1B,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,yCAAyC,UAAU,EAAE;gBAC9D,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACvC,CAAC;SACH,CAAC,CAAA;KACH;IAED,OAAO,KAA2C,CAAA;AACpD,CAAC,CAAA;AAvBY,QAAA,eAAe,mBAuB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/index.ts"],"names":[],"mappings":";;;AAGA,2CAAuC;AAEvC,mCAA+B;AAC/B,yCAAqC;AACrC,uCAAmC;AACnC,mCAA+B;AAC/B,yCAAqC;AACrC,+CAA2C;AAC3C,+CAA2C;AAC3C,yCAAqC;AACrC,iDAA6C;AAoBhC,QAAA,SAAS,GAWlB;IACF,SAAS,EAAT,qBAAS;IACT,KAAK,EAAL,aAAK;IACL,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,cAAc,EAAE,aAAK;IACrB,QAAQ,EAAR,mBAAQ;IACR,WAAW,EAAX,yBAAW;IACX,WAAW,EAAX,yBAAW;IACX,QAAQ,EAAR,mBAAQ;IACR,YAAY,EAAZ,2BAAY;CACb,CAAA;AAEY,QAAA,kBAAkB,GAAG;IAChC,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,aAAa;IAC7B,eAAe,EAAE,cAAc;IAC/B,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,gBAAgB,EAAE,UAAU;CAC+C,CAAA"}
|
|
@@ -22,12 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
const tagMappings_1 = __importStar(require("./tagMappings"));
|
|
30
|
-
const cheerio_1 =
|
|
27
|
+
const cheerio_1 = require("cheerio");
|
|
31
28
|
function expectNotArray(thing) {
|
|
32
29
|
expect(thing).not.toBeInstanceOf(Array);
|
|
33
30
|
}
|
|
@@ -37,13 +34,13 @@ function expectNodeType(node, type) {
|
|
|
37
34
|
}
|
|
38
35
|
describe('tagMappings test', () => {
|
|
39
36
|
it('getBooleanAttributeValue attrubute', () => {
|
|
40
|
-
let $el = cheerio_1.
|
|
37
|
+
let $el = (0, cheerio_1.load)('<ft-content autoplay></ft-content>')('ft-content');
|
|
41
38
|
expect((0, tagMappings_1.getBooleanAttributeValue)($el, 'autoplay')).toBe(true);
|
|
42
|
-
$el = cheerio_1.
|
|
39
|
+
$el = (0, cheerio_1.load)('<ft-content autoplay="true"></ft-content>')('ft-content');
|
|
43
40
|
expect((0, tagMappings_1.getBooleanAttributeValue)($el, 'autoplay')).toBe(true);
|
|
44
|
-
$el = cheerio_1.
|
|
41
|
+
$el = (0, cheerio_1.load)('<ft-content autoplay="false"></ft-content>')('ft-content');
|
|
45
42
|
expect((0, tagMappings_1.getBooleanAttributeValue)($el, 'autoplay')).toBe(false);
|
|
46
|
-
$el = cheerio_1.
|
|
43
|
+
$el = (0, cheerio_1.load)('<ft-content></ft-content>')('ft-content');
|
|
47
44
|
expect((0, tagMappings_1.getBooleanAttributeValue)($el, 'autoplay')).toBe(false);
|
|
48
45
|
});
|
|
49
46
|
it('clip mappging test with an example real article', () => {
|
|
@@ -58,7 +55,7 @@ describe('tagMappings test', () => {
|
|
|
58
55
|
</experimental>
|
|
59
56
|
<body>`;
|
|
60
57
|
const selector = 'ft-content[type="http://www.ft.com/ontology/content/clip"]';
|
|
61
|
-
const $el = cheerio_1.
|
|
58
|
+
const $el = (0, cheerio_1.load)(bodyXML)(selector);
|
|
62
59
|
const mapping = tagMappings_1.default[selector]($el, () => []);
|
|
63
60
|
expectNodeType(mapping, 'clip');
|
|
64
61
|
expect(mapping.url).toBe('https://storytelling-clips.s3.amazonaws.com/World/Joe%20Biden%20on%20debt%20ceiling%20deal%20v1.mp4');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagMappings.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/tagMappings.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tagMappings.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/tagMappings.test.ts"],"names":[],"mappings":"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"}
|
package/lib/resolvers/image.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ declare const resolvers: {
|
|
|
10
10
|
id: (image: import("../model/Image").Image) => string;
|
|
11
11
|
width: (image: import("../model/Image").Image) => Promise<number | null>;
|
|
12
12
|
height: (image: import("../model/Image").Image) => Promise<number | null>;
|
|
13
|
-
sourceSet: (image: import("../model/Image").Image, args: Partial<import("../generated").ImageSourceSetArgs>) => Promise<import("../
|
|
13
|
+
sourceSet: (image: import("../model/Image").Image, args: Partial<import("../generated").ImageSourceSetArgs>) => Promise<import("../generated").ImageSource[]>;
|
|
14
14
|
altText: (image: import("../model/Image").Image) => string;
|
|
15
15
|
};
|
|
16
16
|
};
|
package/lib/resolvers/index.d.ts
CHANGED
|
@@ -90,7 +90,15 @@ declare const resolvers: {
|
|
|
90
90
|
MetaLink: import("../generated").MetaLinkResolvers<import("..").QueryContext, import("../model/Concept").Concept | import("../model/CapiResponse").CapiResponse>;
|
|
91
91
|
Clip: {
|
|
92
92
|
__resolveType: () => string;
|
|
93
|
-
dataSource: (clip: import("../model/Clip").Clip) =>
|
|
93
|
+
dataSource: (clip: import("../model/Clip").Clip) => {
|
|
94
|
+
binaryUrl: string;
|
|
95
|
+
mediaType: string;
|
|
96
|
+
audioCodec?: string | undefined;
|
|
97
|
+
duration?: number | undefined;
|
|
98
|
+
pixelHeight?: number | undefined;
|
|
99
|
+
pixelWidth?: number | undefined;
|
|
100
|
+
videoCodec?: string | undefined;
|
|
101
|
+
}[];
|
|
94
102
|
type: (clip: import("../model/Clip").Clip) => string;
|
|
95
103
|
format: (clip: import("../model/Clip").Clip) => "mobile" | "standard-inline";
|
|
96
104
|
poster: (clip: import("../model/Clip").Clip) => string;
|
|
@@ -105,7 +113,7 @@ declare const resolvers: {
|
|
|
105
113
|
id: (image: import("../model/Image").Image) => string;
|
|
106
114
|
width: (image: import("../model/Image").Image) => Promise<number | null>;
|
|
107
115
|
height: (image: import("../model/Image").Image) => Promise<number | null>;
|
|
108
|
-
sourceSet: (image: import("../model/Image").Image, args: Partial<import("../generated").ImageSourceSetArgs>) => Promise<import("../
|
|
116
|
+
sourceSet: (image: import("../model/Image").Image, args: Partial<import("../generated").ImageSourceSetArgs>) => Promise<import("../generated").ImageSource[]>;
|
|
109
117
|
altText: (image: import("../model/Image").Image) => string;
|
|
110
118
|
};
|
|
111
119
|
Query: {
|
|
@@ -2,7 +2,6 @@ import { LiteralUnionScalar } from './literal-union';
|
|
|
2
2
|
export declare const ImageFormat: LiteralUnionScalar<["standard", "standard-inline", "desktop", "mobile", "wide", "square", "square-ftedit", "portrait", "landscape"]>;
|
|
3
3
|
export declare const PackageDesign: LiteralUnionScalar<["special-report", "extra", "basic", "extra-wide"]>;
|
|
4
4
|
export declare const TopperBackgroundColour: LiteralUnionScalar<["paper", "wheat", "white", "black", "claret", "oxford", "slate", "crimson", "sky", "matisse"]>;
|
|
5
|
-
export declare const FollowButtonVariant: LiteralUnionScalar<["standard", "inverse", "opinion", "alphaville", "monochrome", "inverse-monochrome"]>;
|
|
6
5
|
export declare const AccessLevel: LiteralUnionScalar<["premium", "subscribed", "registered", "free"]>;
|
|
7
6
|
export declare const CanBeSyndicated: LiteralUnionScalar<["yes", "no", "verify", "withContributorPayment", "unknown"]>;
|
|
8
7
|
export declare const ImageType: LiteralUnionScalar<["image", "graphic"]>;
|
package/lib/resolvers/scalars.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContentType = exports.RichTextSource = exports.ClipFormat = exports.ImageType = exports.CanBeSyndicated = exports.AccessLevel = exports.
|
|
3
|
+
exports.ContentType = exports.RichTextSource = exports.ClipFormat = exports.ImageType = exports.CanBeSyndicated = exports.AccessLevel = exports.TopperBackgroundColour = exports.PackageDesign = exports.ImageFormat = void 0;
|
|
4
4
|
const literal_union_1 = require("./literal-union");
|
|
5
5
|
exports.ImageFormat = new literal_union_1.LiteralUnionScalar({
|
|
6
6
|
name: 'ImageFormat',
|
|
@@ -35,7 +35,7 @@ exports.TopperBackgroundColour = new literal_union_1.LiteralUnionScalar({
|
|
|
35
35
|
'matisse',
|
|
36
36
|
],
|
|
37
37
|
});
|
|
38
|
-
|
|
38
|
+
const FollowButtonVariant = new literal_union_1.LiteralUnionScalar({
|
|
39
39
|
name: 'FollowButtonVariant',
|
|
40
40
|
values: [
|
|
41
41
|
'standard',
|
|
@@ -85,7 +85,7 @@ const resolvers = {
|
|
|
85
85
|
ImageFormat: exports.ImageFormat,
|
|
86
86
|
PackageDesign: exports.PackageDesign,
|
|
87
87
|
TopperBackgroundColour: exports.TopperBackgroundColour,
|
|
88
|
-
FollowButtonVariant
|
|
88
|
+
FollowButtonVariant,
|
|
89
89
|
AccessLevel: exports.AccessLevel,
|
|
90
90
|
CanBeSyndicated: exports.CanBeSyndicated,
|
|
91
91
|
ImageType: exports.ImageType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalars.js","sourceRoot":"","sources":["../../src/resolvers/scalars.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEvC,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU;QACV,iBAAiB;QACjB,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,eAAe;QACf,UAAU;QACV,WAAW;KACZ;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,kCAAkB,CAEjD;IACA,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;CAC3D,CAAC,CAAA;AAEW,QAAA,sBAAsB,GAAG,IAAI,kCAAkB,CAa1D;IACA,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,SAAS;KACV;CACF,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"scalars.js","sourceRoot":"","sources":["../../src/resolvers/scalars.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEvC,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU;QACV,iBAAiB;QACjB,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,eAAe;QACf,UAAU;QACV,WAAW;KACZ;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,kCAAkB,CAEjD;IACA,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;CAC3D,CAAC,CAAA;AAEW,QAAA,sBAAsB,GAAG,IAAI,kCAAkB,CAa1D;IACA,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,SAAS;KACV;CACF,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,IAAI,kCAAkB,CAShD;IACA,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE;QACN,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,oBAAoB;KACrB;CACF,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAE/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;CACxD,CAAC,CAAA;AAEW,QAAA,eAAe,GAAG,IAAI,kCAAkB,CAEnD;IACA,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,CAAC;CACrE,CAAC,CAAA;AAEW,QAAA,SAAS,GAAG,IAAI,kCAAkB,CAAuB;IACpE,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,IAAI,kCAAkB,CAC9C;IACE,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;CACtC,CACF,CAAA;AAEY,QAAA,cAAc,GAAG,IAAI,kCAAkB,CAElD;IACA,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;CAC3D,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,SAAS;QACT,aAAa;QACb,OAAO;QACP,OAAO;QACP,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,SAAS;QACT,eAAe;KAChB;CACF,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG;IAChB,UAAU,EAAV,kBAAU;IACV,WAAW,EAAX,mBAAW;IACX,aAAa,EAAb,qBAAa;IACb,sBAAsB,EAAtB,8BAAsB;IACtB,mBAAmB;IACnB,WAAW,EAAX,mBAAW;IACX,eAAe,EAAf,uBAAe;IACf,SAAS,EAAT,iBAAS;IACT,cAAc,EAAd,sBAAc;IACd,WAAW,EAAX,mBAAW;CACZ,CAAA;AAED,kBAAe,SAAS,CAAA"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
DataSourceFetchResult,
|
|
5
5
|
DataSourceRequest,
|
|
6
6
|
AugmentedRequest,
|
|
7
|
-
RequestOptions,
|
|
8
7
|
} from '@apollo/datasource-rest'
|
|
9
8
|
import { PrefixingKeyValueCache } from '@apollo/utils.keyvaluecache'
|
|
10
9
|
import { SerializedRequest } from '@dotcom-reliability-kit/serialize-request'
|
|
@@ -5,7 +5,7 @@ import { AugmentedRequest, CacheOptions } from '@apollo/datasource-rest'
|
|
|
5
5
|
const REQUEST_TIMEOUT = 5000 // 5 seconds
|
|
6
6
|
|
|
7
7
|
export class OrigamiImageDataSource extends InstrumentedRESTDataSource {
|
|
8
|
-
baseURL = 'https://www.ft.com/__origami/service/image/v2'
|
|
8
|
+
baseURL = 'https://www.ft.com/__origami/service/image/v2/'
|
|
9
9
|
backendSystemCodes = ['origami-image-service-v2']
|
|
10
10
|
|
|
11
11
|
abortController = new AbortController()
|
package/src/model/Byline.ts
CHANGED
|
@@ -17,7 +17,7 @@ export class Byline {
|
|
|
17
17
|
const split = this.#splitBylineByName(bylineWithCorrectApostrophes, [
|
|
18
18
|
...this.authorUrlMapping.keys(),
|
|
19
19
|
])
|
|
20
|
-
return
|
|
20
|
+
return this.#buildUrlTree(this.authorUrlMapping, split)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
#splitBylineByName(byline: string, names: string[]) {
|
package/src/model/Clip.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import { ClipFormat } from '../resolvers/scalars'
|
|
8
8
|
import imageServiceUrl from '../helpers/imageService'
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
type ClipSource = {
|
|
11
11
|
binaryUrl: string
|
|
12
12
|
mediaType: string
|
|
13
13
|
audioCodec?: string
|
|
@@ -17,7 +17,7 @@ export type ClipSource = {
|
|
|
17
17
|
videoCodec?: string
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
interface ClipVideo {
|
|
21
21
|
id(): string
|
|
22
22
|
type(): string
|
|
23
23
|
format(): LiteralUnionScalarValues<typeof ClipFormat>
|
|
@@ -79,11 +79,14 @@ export class Clip implements ClipVideo {
|
|
|
79
79
|
'full-grid': 1200,
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
const url = this.clip.poster?.members[0].binaryUrl
|
|
83
|
-
return url
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
const url = this.clip.poster?.members[0].binaryUrl
|
|
83
|
+
return url
|
|
84
|
+
? imageServiceUrl({
|
|
85
|
+
url,
|
|
86
|
+
systemCode: 'cp-content-pipeline',
|
|
87
|
+
width:
|
|
88
|
+
this.layout && mapSizes[this.layout] ? mapSizes[this.layout] : 700,
|
|
89
|
+
})
|
|
90
|
+
: ''
|
|
88
91
|
}
|
|
89
92
|
}
|
package/src/model/Concept.ts
CHANGED
|
@@ -5,21 +5,17 @@ import imageServiceUrl from '../helpers/imageService'
|
|
|
5
5
|
import isError from '../helpers/isError'
|
|
6
6
|
import conceptIds from '@financial-times/n-concept-ids'
|
|
7
7
|
import decorateHeadshotUrl, { UUID_REGEX } from '../helpers/decorateHeadshotUrl'
|
|
8
|
+
import type { TopperWithHeadshotHeadshotArgs } from '../generated'
|
|
8
9
|
|
|
9
10
|
const CAPI_ID_PREFIX = /^https?:\/\/(?:www|api)\.ft\.com\/things?\//
|
|
10
11
|
const BASE_URL = 'https://www.ft.com/stream/'
|
|
11
12
|
const FT_URL = 'https://www.ft.com'
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
type URLArguments = {
|
|
14
15
|
vanity?: boolean | null
|
|
15
16
|
relative?: boolean | null
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
export type HeadshotArguments = {
|
|
19
|
-
width?: number | null
|
|
20
|
-
dpr?: number | null
|
|
21
|
-
}
|
|
22
|
-
|
|
23
19
|
export const predicates = {
|
|
24
20
|
hasAuthor: 'http://www.ft.com/ontology/annotation/hasAuthor',
|
|
25
21
|
isClassifiedBy: 'http://www.ft.com/ontology/classification/isClassifiedBy',
|
|
@@ -30,14 +26,14 @@ export const predicates = {
|
|
|
30
26
|
about: 'http://www.ft.com/ontology/annotation/about',
|
|
31
27
|
} as const
|
|
32
28
|
|
|
33
|
-
|
|
29
|
+
const types = {
|
|
34
30
|
brand: 'http://www.ft.com/ontology/product/Brand',
|
|
35
31
|
genre: 'http://www.ft.com/ontology/Genre',
|
|
36
32
|
organisation: 'http://www.ft.com/ontology/organisation/Organisation',
|
|
37
33
|
publicCompany: 'http://www.ft.com/ontology/company/PublicCompany',
|
|
38
34
|
}
|
|
39
35
|
|
|
40
|
-
|
|
36
|
+
const packageBrands = [
|
|
41
37
|
'specialReport',
|
|
42
38
|
'ftSeries',
|
|
43
39
|
'ftGuides',
|
|
@@ -175,7 +171,7 @@ export class Concept {
|
|
|
175
171
|
return url
|
|
176
172
|
}
|
|
177
173
|
|
|
178
|
-
async headshot(args?:
|
|
174
|
+
async headshot(args?: TopperWithHeadshotHeadshotArgs) {
|
|
179
175
|
const uuid = this.apiUrl().match(UUID_REGEX)?.[0]
|
|
180
176
|
|
|
181
177
|
if (!this.isAuthor() || !uuid) return null
|
package/src/model/Image.test.ts
CHANGED
|
@@ -4,12 +4,7 @@ import type { QueryContext } from '..'
|
|
|
4
4
|
import { Image } from '../types/internal-content'
|
|
5
5
|
import { OrigamiImageDataSource } from '../datasources/origami-image'
|
|
6
6
|
import { MAX_IMAGE_WIDTH } from '../helpers/imageService'
|
|
7
|
-
|
|
8
|
-
type ImageSource = {
|
|
9
|
-
url: string
|
|
10
|
-
width?: number
|
|
11
|
-
dpr?: number
|
|
12
|
-
}
|
|
7
|
+
import type { ImageSource } from '../generated'
|
|
13
8
|
|
|
14
9
|
describe('Image', () => {
|
|
15
10
|
const mockImage = {
|
package/src/model/Image.ts
CHANGED
|
@@ -13,12 +13,7 @@ import {
|
|
|
13
13
|
import { ImageFormat, ImageType } from '../resolvers/scalars'
|
|
14
14
|
import isError from '../helpers/isError'
|
|
15
15
|
import { BaseError } from '@dotcom-reliability-kit/errors'
|
|
16
|
-
|
|
17
|
-
export type ImageSource = {
|
|
18
|
-
url: string
|
|
19
|
-
width?: number
|
|
20
|
-
dpr?: number
|
|
21
|
-
}
|
|
16
|
+
import type { ImageSource } from '../generated'
|
|
22
17
|
|
|
23
18
|
export type ImageSourceArgs = {
|
|
24
19
|
width?: number | null
|
package/src/model/Topper.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
import { TopperBackgroundColour } from '../resolvers/scalars'
|
|
9
9
|
import { RichText } from './RichText'
|
|
10
10
|
import imageServiceUrl from '../helpers/imageService'
|
|
11
|
+
import type { TopperWithHeadshotHeadshotArgs } from '../generated'
|
|
11
12
|
|
|
12
13
|
type TopperType =
|
|
13
14
|
| 'DeepPortraitTopper'
|
|
@@ -19,11 +20,6 @@ type TopperType =
|
|
|
19
20
|
| 'BrandedTopper'
|
|
20
21
|
| 'BasicTopper'
|
|
21
22
|
|
|
22
|
-
export type HeadshotArguments = {
|
|
23
|
-
width?: number | null
|
|
24
|
-
dpr?: number | null
|
|
25
|
-
}
|
|
26
|
-
|
|
27
23
|
type TopperBackgroundColourValues = LiteralUnionScalarValues<
|
|
28
24
|
typeof TopperBackgroundColour
|
|
29
25
|
>
|
|
@@ -303,7 +299,7 @@ export class Topper {
|
|
|
303
299
|
return this.capiResponse.design()
|
|
304
300
|
}
|
|
305
301
|
|
|
306
|
-
async headshot(args:
|
|
302
|
+
async headshot(args: TopperWithHeadshotHeadshotArgs) {
|
|
307
303
|
let headshotUrl: string | undefined
|
|
308
304
|
|
|
309
305
|
if (this.capiResponse.isPodcast()) {
|
|
@@ -313,7 +309,7 @@ export class Topper {
|
|
|
313
309
|
if (this.capiResponse.isOpinion()) {
|
|
314
310
|
const authors = this.capiResponse.getAuthors()
|
|
315
311
|
const headshotUrls: (string | null)[] = await Promise.all(
|
|
316
|
-
authors.map(async (author) =>
|
|
312
|
+
authors.map(async (author) => author.headshot(args))
|
|
317
313
|
).then((res) => res.filter(Boolean))
|
|
318
314
|
|
|
319
315
|
headshotUrl = headshotUrls[0] ?? undefined
|
|
@@ -14,7 +14,7 @@ export const Annotation = Concept.extend({
|
|
|
14
14
|
predicate: z.string(),
|
|
15
15
|
})
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
const Topper = z.object({
|
|
18
18
|
headline: z.string().optional(),
|
|
19
19
|
standfirst: z.string().optional(),
|
|
20
20
|
backgroundColour: z.string(),
|
|
@@ -84,7 +84,7 @@ export const LeadImage = z.object({
|
|
|
84
84
|
image: Image,
|
|
85
85
|
})
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
const AlternativeImage = z.object({
|
|
88
88
|
promotionalImage: BaseImage,
|
|
89
89
|
})
|
|
90
90
|
|
|
@@ -136,7 +136,7 @@ export const ClipSet = z.object({
|
|
|
136
136
|
.optional(),
|
|
137
137
|
})
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
const DataSource = z.object({
|
|
140
140
|
binaryUrl: z.string(),
|
|
141
141
|
duration: z.number(),
|
|
142
142
|
filesize: z.number(),
|
|
@@ -6,10 +6,6 @@ type ValuesOfTuple<Tuple extends readonly string[]> = Tuple[number]
|
|
|
6
6
|
|
|
7
7
|
type NodeOfType<Type extends AnyNode['type']> = Extract<AnyNode, { type: Type }>
|
|
8
8
|
|
|
9
|
-
type NodesOfTypes<Types extends readonly AnyNode['type'][]> = {
|
|
10
|
-
-readonly [key in keyof Types]: NodeOfType<Types[key]>
|
|
11
|
-
}
|
|
12
|
-
|
|
13
9
|
export const phrasingTypes = [
|
|
14
10
|
'text',
|
|
15
11
|
'break',
|
|
@@ -91,41 +87,3 @@ export const childrenOfTypes = <Types extends readonly AnyNode['type'][]>(
|
|
|
91
87
|
|
|
92
88
|
return nodes as NodeOfType<ValuesOfTuple<Types>>[]
|
|
93
89
|
}
|
|
94
|
-
|
|
95
|
-
export const nodesAreOrderedTypes = <Types extends readonly AnyNode['type'][]>(
|
|
96
|
-
types: Types,
|
|
97
|
-
nodes: readonly AnyNode[]
|
|
98
|
-
): nodes is NodesOfTypes<Types> => {
|
|
99
|
-
for (const [index, node] of nodes.entries()) {
|
|
100
|
-
if (node.type !== types[index]) {
|
|
101
|
-
return false
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return true
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export const childrenOfOrderedTypes = <
|
|
109
|
-
Types extends readonly AnyNode['type'][]
|
|
110
|
-
>(
|
|
111
|
-
types: Types,
|
|
112
|
-
nodes: AnyNode[],
|
|
113
|
-
parentType: AnyNode['type'],
|
|
114
|
-
context?: QueryContext
|
|
115
|
-
): NodesOfTypes<Types> => {
|
|
116
|
-
if (nodesAreOrderedTypes(types, nodes)) {
|
|
117
|
-
return nodes
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
context?.logger.error({
|
|
121
|
-
event: 'RECOVERABLE_ERROR',
|
|
122
|
-
error: new OperationalError({
|
|
123
|
-
code: 'BODY_XML_UNEXPECTED_STRUCTURE',
|
|
124
|
-
message: `Unexpected children types for ${parentType}`,
|
|
125
|
-
expected: types,
|
|
126
|
-
actual: nodes.map((node) => node.type),
|
|
127
|
-
}),
|
|
128
|
-
})
|
|
129
|
-
|
|
130
|
-
return nodes as unknown as NodesOfTypes<Types>
|
|
131
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyNode, OldClip } from './Workarounds'
|
|
2
2
|
import tagMappings, { getBooleanAttributeValue } from './tagMappings'
|
|
3
|
-
import
|
|
3
|
+
import { load } from 'cheerio'
|
|
4
4
|
|
|
5
5
|
function expectNotArray<T>(thing: T | T[]): asserts thing is T {
|
|
6
6
|
expect(thing).not.toBeInstanceOf(Array)
|
|
@@ -16,17 +16,13 @@ function expectNodeType<T extends AnyNode>(
|
|
|
16
16
|
|
|
17
17
|
describe('tagMappings test', () => {
|
|
18
18
|
it('getBooleanAttributeValue attrubute', () => {
|
|
19
|
-
let $el =
|
|
19
|
+
let $el = load('<ft-content autoplay></ft-content>')('ft-content')
|
|
20
20
|
expect(getBooleanAttributeValue($el, 'autoplay')).toBe(true)
|
|
21
|
-
$el =
|
|
22
|
-
'ft-content'
|
|
23
|
-
)
|
|
21
|
+
$el = load('<ft-content autoplay="true"></ft-content>')('ft-content')
|
|
24
22
|
expect(getBooleanAttributeValue($el, 'autoplay')).toBe(true)
|
|
25
|
-
$el =
|
|
26
|
-
'ft-content'
|
|
27
|
-
)
|
|
23
|
+
$el = load('<ft-content autoplay="false"></ft-content>')('ft-content')
|
|
28
24
|
expect(getBooleanAttributeValue($el, 'autoplay')).toBe(false)
|
|
29
|
-
$el =
|
|
25
|
+
$el = load('<ft-content></ft-content>')('ft-content')
|
|
30
26
|
expect(getBooleanAttributeValue($el, 'autoplay')).toBe(false)
|
|
31
27
|
})
|
|
32
28
|
|
|
@@ -43,7 +39,7 @@ describe('tagMappings test', () => {
|
|
|
43
39
|
<body>`
|
|
44
40
|
const selector =
|
|
45
41
|
'ft-content[type="http://www.ft.com/ontology/content/clip"]'
|
|
46
|
-
const $el =
|
|
42
|
+
const $el = load(bodyXML)(selector)
|
|
47
43
|
const mapping = tagMappings[selector]($el, () => [])
|
|
48
44
|
|
|
49
45
|
expectNodeType<OldClip>(mapping, 'clip')
|
package/src/resolvers/scalars.ts
CHANGED