@financial-times/cp-content-pipeline-schema 3.4.0 → 3.5.1
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 +33 -0
- package/lib/datasources/capi.d.ts +0 -2
- package/lib/datasources/capi.js +10 -23
- package/lib/datasources/capi.js.map +1 -1
- package/lib/datasources/instrumented.js +4 -1
- package/lib/datasources/instrumented.js.map +1 -1
- package/lib/datasources/origami-image.d.ts +0 -2
- package/lib/datasources/origami-image.js +5 -19
- package/lib/datasources/origami-image.js.map +1 -1
- package/lib/datasources/twitter.d.ts +0 -2
- package/lib/datasources/twitter.js +2 -16
- package/lib/datasources/twitter.js.map +1 -1
- package/lib/datasources/url-management.js +5 -3
- package/lib/datasources/url-management.js.map +1 -1
- package/lib/fixtures/dummyContext.js +1 -1
- package/lib/generated/index.d.ts +73 -22
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/model/Byline.js +11 -14
- package/lib/model/Byline.js.map +1 -1
- package/lib/model/CapiList.js +2 -0
- package/lib/model/CapiList.js.map +1 -1
- package/lib/model/CapiResponse.d.ts +7 -3
- package/lib/model/CapiResponse.js +125 -57
- package/lib/model/CapiResponse.js.map +1 -1
- package/lib/model/CapiResponse.test.js +92 -7
- package/lib/model/CapiResponse.test.js.map +1 -1
- package/lib/model/Clip.js +2 -0
- package/lib/model/Clip.js.map +1 -1
- package/lib/model/Concept.js +4 -10
- package/lib/model/Concept.js.map +1 -1
- package/lib/model/FlourishSource.d.ts +12 -5
- package/lib/model/FlourishSource.js +37 -38
- package/lib/model/FlourishSource.js.map +1 -1
- package/lib/model/FlourishSource.test.js +5 -5
- package/lib/model/FlourishSource.test.js.map +1 -1
- package/lib/model/Image.js +22 -20
- package/lib/model/Image.js.map +1 -1
- package/lib/model/LeadFlourish.d.ts +1 -1
- package/lib/model/LeadFlourish.js +8 -11
- package/lib/model/LeadFlourish.js.map +1 -1
- package/lib/model/LeadFlourish.test.js +5 -7
- package/lib/model/LeadFlourish.test.js.map +1 -1
- package/lib/model/Person.js +5 -16
- package/lib/model/Person.js.map +1 -1
- package/lib/model/Picture.js +3 -0
- package/lib/model/Picture.js.map +1 -1
- package/lib/model/RichText.js +3 -0
- package/lib/model/RichText.js.map +1 -1
- package/lib/model/Topper.js +5 -16
- package/lib/model/Topper.js.map +1 -1
- package/lib/model/schemas/capi/article.d.ts +3 -3
- package/lib/model/schemas/capi/audio.d.ts +5 -5
- package/lib/model/schemas/capi/base-schema.d.ts +5 -5
- package/lib/model/schemas/capi/base-schema.js +1 -1
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +3 -3
- package/lib/model/schemas/capi/custom-code-component.d.ts +3 -3
- package/lib/model/schemas/capi/index.d.ts +20 -20
- package/lib/model/schemas/capi/internal-content.d.ts +1 -1
- package/lib/model/schemas/capi/live-blog-package.d.ts +3 -3
- package/lib/model/schemas/capi/placeholder.d.ts +3 -3
- package/lib/model/schemas/capi/video.d.ts +3 -3
- package/lib/resolvers/content-tree/references/Flourish.d.ts +9 -19
- package/lib/resolvers/content-tree/references/Flourish.js +10 -32
- package/lib/resolvers/content-tree/references/Flourish.js.map +1 -1
- package/lib/resolvers/content-tree/references/Flourish.test.js +3 -3
- package/lib/resolvers/content-tree/references/Flourish.test.js.map +1 -1
- package/lib/resolvers/content-tree/references/RawImage.js +2 -0
- package/lib/resolvers/content-tree/references/RawImage.js.map +1 -1
- package/lib/resolvers/content-tree/references/index.d.ts +2 -2
- package/lib/resolvers/content-tree/references/index.js +1 -1
- package/lib/resolvers/content-tree/references/index.js.map +1 -1
- package/lib/resolvers/content.d.ts +26 -1
- package/lib/resolvers/content.js +21 -1
- package/lib/resolvers/content.js.map +1 -1
- package/lib/resolvers/index.d.ts +27 -3
- package/lib/resolvers/leadFlourish.d.ts +1 -1
- package/lib/resolvers/literal-union.js +1 -0
- package/lib/resolvers/literal-union.js.map +1 -1
- package/lib/types/connection.d.ts +21 -0
- package/lib/types/connection.js +5 -0
- package/lib/types/connection.js.map +1 -0
- package/package.json +1 -1
- package/queries/article.graphql +8 -2
- package/src/datasources/capi.ts +1 -14
- package/src/datasources/origami-image.ts +1 -13
- package/src/datasources/twitter.ts +1 -14
- package/src/fixtures/dummyContext.ts +1 -1
- package/src/generated/index.ts +75 -24
- package/src/index.ts +1 -0
- package/src/model/CapiResponse.test.ts +137 -7
- package/src/model/CapiResponse.ts +129 -37
- package/src/model/FlourishSource.test.ts +5 -5
- package/src/model/FlourishSource.ts +57 -39
- package/src/model/Image.ts +16 -0
- package/src/model/LeadFlourish.test.ts +6 -9
- package/src/model/LeadFlourish.ts +5 -1
- package/src/model/schemas/capi/base-schema.ts +1 -1
- package/src/model/schemas/capi/internal-content.ts +1 -1
- package/src/resolvers/content-tree/references/Flourish.test.ts +4 -3
- package/src/resolvers/content-tree/references/Flourish.ts +16 -32
- package/src/resolvers/content-tree/references/index.ts +4 -4
- package/src/resolvers/content.ts +31 -1
- package/src/types/connection.ts +28 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/content.graphql +40 -2
- package/typedefs/leadFlourish.graphql +1 -1
- package/typedefs/references/flourish.graphql +1 -11
- package/lib/helpers/timeout-error.d.ts +0 -6
- package/lib/helpers/timeout-error.js +0 -15
- package/lib/helpers/timeout-error.js.map +0 -1
- package/src/helpers/timeout-error.ts +0 -13
|
@@ -1,51 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
const imageService_1 = __importDefault(require("../../../helpers/imageService"));
|
|
3
|
+
exports.FlourishSource = exports.Flourish = void 0;
|
|
8
4
|
const FlourishSource_1 = require("../../../model/FlourishSource");
|
|
9
5
|
exports.Flourish = {
|
|
10
6
|
async fallbackImage(parent, _args, context) {
|
|
11
7
|
if (!parent.reference) {
|
|
12
|
-
return
|
|
8
|
+
return null;
|
|
13
9
|
}
|
|
14
10
|
const flourishData = {
|
|
15
11
|
id: parent.reference.id,
|
|
16
12
|
type: parent.reference.flourishType,
|
|
17
13
|
description: parent.reference.description,
|
|
18
14
|
};
|
|
19
|
-
|
|
20
|
-
const width = await flourishSource.width();
|
|
21
|
-
const height = await flourishSource.height();
|
|
22
|
-
const imageServiceWrappedUrl = (0, imageService_1.default)({
|
|
23
|
-
url: flourishSource.flourishUrl(),
|
|
24
|
-
systemCode: context.systemCode ?? 'cp-content-pipeline',
|
|
25
|
-
width,
|
|
26
|
-
});
|
|
27
|
-
return {
|
|
28
|
-
url: imageServiceWrappedUrl,
|
|
29
|
-
type: flourishSource.type(),
|
|
30
|
-
format: flourishSource.format(),
|
|
31
|
-
sourceSet: [],
|
|
32
|
-
width,
|
|
33
|
-
height,
|
|
34
|
-
};
|
|
15
|
+
return FlourishSource_1.FlourishSource.createWithMetadata(flourishData, context);
|
|
35
16
|
},
|
|
36
17
|
type(parent) {
|
|
37
18
|
return parent.reference.type;
|
|
38
19
|
},
|
|
39
20
|
};
|
|
40
|
-
exports.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
async url(parent) {
|
|
48
|
-
return parent.url ?? null;
|
|
49
|
-
},
|
|
21
|
+
exports.FlourishSource = {
|
|
22
|
+
id: (parent) => parent.id(),
|
|
23
|
+
url: (parent) => parent.flourishUrl(),
|
|
24
|
+
type: (parent) => parent.type(),
|
|
25
|
+
width: (parent) => parent.width(),
|
|
26
|
+
height: (parent) => parent.height(),
|
|
27
|
+
format: (parent) => parent.format(),
|
|
50
28
|
};
|
|
51
29
|
//# sourceMappingURL=Flourish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flourish.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/Flourish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Flourish.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/Flourish.ts"],"names":[],"mappings":";;;AAIA,kEAAqF;AAExE,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;YACvB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;YACnC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;SAC1C,CAAA;QAED,OAAO,+BAAmB,CAAC,kBAAkB,CAC3C,YAAY,EACZ,OAAO,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,MAAM;QACT,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAA;IAC9B,CAAC;CAC0B,CAAA;AAEhB,QAAA,cAAc,GAAG;IAC5B,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;IAC3B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;IACnC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;CACF,CAAA"}
|
|
@@ -30,7 +30,7 @@ describe('Flourish Model', () => {
|
|
|
30
30
|
// Regex checks for flourish url whilst leaving spaces for arguments
|
|
31
31
|
// https://public.flourish.studio/{type}/{id}/thumbnail
|
|
32
32
|
const flourishImageUrlRegex = new RegExp(/https:\/\/public.flourish.studio\/.*\/.*\/thumbnail/);
|
|
33
|
-
expect(decodeURIComponent(fallbackResponse
|
|
33
|
+
expect(decodeURIComponent(fallbackResponse?.url())).toMatch(flourishImageUrlRegex);
|
|
34
34
|
});
|
|
35
35
|
it('The Flourish id is included in the flourish image url', async () => {
|
|
36
36
|
const reference = {
|
|
@@ -43,7 +43,7 @@ describe('Flourish Model', () => {
|
|
|
43
43
|
};
|
|
44
44
|
const fallbackResponse = await Flourish_1.Flourish.fallbackImage({ reference }, {}, context);
|
|
45
45
|
const flourishImageUrlRegex = new RegExp(/https:\/\/public.flourish.studio\/.*\/example-id/);
|
|
46
|
-
expect(decodeURIComponent(fallbackResponse
|
|
46
|
+
expect(decodeURIComponent(fallbackResponse?.url())).toMatch(flourishImageUrlRegex);
|
|
47
47
|
});
|
|
48
48
|
it('The Flourish graphic type is included in the flourish image url', async () => {
|
|
49
49
|
const reference = {
|
|
@@ -56,7 +56,7 @@ describe('Flourish Model', () => {
|
|
|
56
56
|
};
|
|
57
57
|
const fallbackResponse = await Flourish_1.Flourish.fallbackImage({ reference }, {}, context);
|
|
58
58
|
const flourishImageUrl = 'https://public.flourish.studio/example-type';
|
|
59
|
-
expect(fallbackResponse
|
|
59
|
+
expect(fallbackResponse?.url() ?? '').toContain(encodeURIComponent(flourishImageUrl));
|
|
60
60
|
});
|
|
61
61
|
});
|
|
62
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flourish.test.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/Flourish.test.ts"],"names":[],"mappings":";;AAAA,2CAAoC;AAEpC,yCAAqC;AAIrC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,2BAA2B,GAAG,cAAI,CAAC,EAAE,EAAE,CAAA;IAC7C,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,gBAAgB,EAAE,2BAA2B;aAC9C;SACF;KACyB,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,cAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,SAAS,GAAyB;oBACtC,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,YAAY;oBAChB,YAAY,EAAE,cAAc;oBAC5B,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,0BAA0B;oBACrC,WAAW,EAAE,qBAAqB;iBACnC,CAAA;
|
|
1
|
+
{"version":3,"file":"Flourish.test.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/Flourish.test.ts"],"names":[],"mappings":";;AAAA,2CAAoC;AAEpC,yCAAqC;AAIrC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,2BAA2B,GAAG,cAAI,CAAC,EAAE,EAAE,CAAA;IAC7C,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,gBAAgB,EAAE,2BAA2B;aAC9C;SACF;KACyB,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,cAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,SAAS,GAAyB;oBACtC,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,YAAY;oBAChB,YAAY,EAAE,cAAc;oBAC5B,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,0BAA0B;oBACrC,WAAW,EAAE,qBAAqB;iBACnC,CAAA;gBAED,MAAM,gBAAgB,GAAG,MAAM,mBAAQ,CAAC,aAAa,CACnD,EAAE,SAAS,EAAE,EACb,EAAE,EACF,OAAO,CACR,CAAA;gBAED,oEAAoE;gBACpE,uDAAuD;gBACvD,MAAM,qBAAqB,GAAG,IAAI,MAAM,CACtC,qDAAqD,CACtD,CAAA;gBAED,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,EAAY,CAAC,CAAC,CAAC,OAAO,CACnE,qBAAqB,CACtB,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACrE,MAAM,SAAS,GAAyB;oBACtC,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,YAAY;oBAChB,YAAY,EAAE,cAAc;oBAC5B,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,0BAA0B;oBACrC,WAAW,EAAE,qBAAqB;iBACnC,CAAA;gBACD,MAAM,gBAAgB,GAAG,MAAM,mBAAQ,CAAC,aAAa,CACnD,EAAE,SAAS,EAAE,EACb,EAAE,EACF,OAAO,CACR,CAAA;gBAED,MAAM,qBAAqB,GAAG,IAAI,MAAM,CACtC,kDAAkD,CACnD,CAAA;gBAED,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,EAAY,CAAC,CAAC,CAAC,OAAO,CACnE,qBAAqB,CACtB,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC/E,MAAM,SAAS,GAAyB;oBACtC,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,YAAY;oBAChB,YAAY,EAAE,cAAc;oBAC5B,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,0BAA0B;oBACrC,WAAW,EAAE,qBAAqB;iBACnC,CAAA;gBACD,MAAM,gBAAgB,GAAG,MAAM,mBAAQ,CAAC,aAAa,CACnD,EAAE,SAAS,EAAE,EACb,EAAE,EACF,OAAO,CACR,CAAA;gBAED,MAAM,gBAAgB,GAAG,6CAA6C,CAAA;gBAEtE,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAC7C,kBAAkB,CAAC,gBAAgB,CAAC,CACrC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -8,6 +8,8 @@ const imageService_1 = __importDefault(require("../../../helpers/imageService"))
|
|
|
8
8
|
const isError_1 = __importDefault(require("../../../helpers/isError"));
|
|
9
9
|
const errors_1 = require("@dotcom-reliability-kit/errors");
|
|
10
10
|
class RawImageModel {
|
|
11
|
+
rawImage;
|
|
12
|
+
context;
|
|
11
13
|
constructor(rawImage, context) {
|
|
12
14
|
this.rawImage = rawImage;
|
|
13
15
|
this.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RawImage.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/RawImage.ts"],"names":[],"mappings":";;;;;;AAEA,iFAA2D;AAG3D,uEAA8C;AAC9C,2DAAiE;AAEjE,MAAM,aAAa;
|
|
1
|
+
{"version":3,"file":"RawImage.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/RawImage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ContentTree } from '@financial-times/content-tree';
|
|
2
2
|
import type { CapiResponse } from '../../../model/CapiResponse';
|
|
3
|
-
import { FlourishResolvers, ImageSetResolvers, ClipSetResolvers, CustomCodeComponentResolvers, LayoutImageResolvers, RawImageResolvers, RecommendedResolvers, ReferenceResolvers, ScrollyImageResolvers, TweetResolvers, VideoReferenceResolvers, CaptionResolvers, AccessibilityResolvers,
|
|
3
|
+
import { FlourishResolvers, ImageSetResolvers, ClipSetResolvers, CustomCodeComponentResolvers, LayoutImageResolvers, RawImageResolvers, RecommendedResolvers, ReferenceResolvers, ScrollyImageResolvers, TweetResolvers, VideoReferenceResolvers, CaptionResolvers, AccessibilityResolvers, AuthorReferenceResolvers, FlourishSourceResolvers } from '../../../generated';
|
|
4
4
|
export type ReferenceWithCAPIData<ReferenceType = ContentTree.Node> = {
|
|
5
5
|
reference: ReferenceType;
|
|
6
6
|
contentApiData?: CapiResponse;
|
|
@@ -13,6 +13,7 @@ export declare const resolvers: {
|
|
|
13
13
|
CustomCodeComponent: CustomCodeComponentResolvers;
|
|
14
14
|
VideoReference: VideoReferenceResolvers;
|
|
15
15
|
Flourish: FlourishResolvers;
|
|
16
|
+
FlourishSource: FlourishSourceResolvers;
|
|
16
17
|
Recommended: RecommendedResolvers;
|
|
17
18
|
LayoutImage: LayoutImageResolvers;
|
|
18
19
|
RawImage: RawImageResolvers;
|
|
@@ -20,7 +21,6 @@ export declare const resolvers: {
|
|
|
20
21
|
MainImage: ImageSetResolvers;
|
|
21
22
|
Caption: CaptionResolvers;
|
|
22
23
|
Accessibility: AccessibilityResolvers;
|
|
23
|
-
FlourishFallback: FlourishFallbackResolvers;
|
|
24
24
|
AuthorReference: AuthorReferenceResolvers;
|
|
25
25
|
};
|
|
26
26
|
export declare const mapNodeToReference: {
|
|
@@ -21,6 +21,7 @@ exports.resolvers = {
|
|
|
21
21
|
CustomCodeComponent: CustomCodeComponent_1.CustomCodeComponent,
|
|
22
22
|
VideoReference: Video_1.Video,
|
|
23
23
|
Flourish: Flourish_1.Flourish,
|
|
24
|
+
FlourishSource: Flourish_1.FlourishSource,
|
|
24
25
|
Recommended: Recommended_1.Recommended,
|
|
25
26
|
LayoutImage: LayoutImage_1.LayoutImage,
|
|
26
27
|
RawImage: RawImage_1.RawImage,
|
|
@@ -28,7 +29,6 @@ exports.resolvers = {
|
|
|
28
29
|
MainImage: ImageSet_1.ImageSet,
|
|
29
30
|
Caption: ClipSet_1.Caption,
|
|
30
31
|
Accessibility: ClipSet_1.Accessibility,
|
|
31
|
-
FlourishFallback: Flourish_1.FlourishFallback,
|
|
32
32
|
AuthorReference: Author_1.Author,
|
|
33
33
|
};
|
|
34
34
|
exports.mapNodeToReference = {
|
|
@@ -1 +1 @@
|
|
|
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,uCAA2D;AAC3D,+DAA2D;AAC3D,mCAA+B;AAC/B,
|
|
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,uCAA2D;AAC3D,+DAA2D;AAC3D,mCAA+B;AAC/B,yCAAqD;AACrD,+CAA2C;AAC3C,+CAA2C;AAC3C,yCAAqC;AACrC,iDAA6C;AAmB7C,qCAAiC;AAOpB,QAAA,SAAS,GAiBlB;IACF,SAAS,EAAT,qBAAS;IACT,KAAK,EAAL,aAAK;IACL,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,mBAAmB,EAAnB,yCAAmB;IACnB,cAAc,EAAE,aAAK;IACrB,QAAQ,EAAR,mBAAQ;IACR,cAAc,EAAd,yBAAc;IACd,WAAW,EAAX,yBAAW;IACX,WAAW,EAAX,yBAAW;IACX,QAAQ,EAAR,mBAAQ;IACR,YAAY,EAAZ,2BAAY;IACZ,SAAS,EAAE,mBAAQ;IACnB,OAAO,EAAP,iBAAO;IACP,aAAa,EAAb,uBAAa;IACb,eAAe,EAAE,eAAM;CACxB,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,uBAAuB,EAAE,qBAAqB;IAC9C,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,aAAa;IAC7B,eAAe,EAAE,cAAc;IAC/B,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,WAAW;IACzB,gBAAgB,EAAE,UAAU;IAC5B,MAAM,EAAE,iBAAiB;CACkD,CAAA"}
|
|
@@ -31,6 +31,30 @@ declare const resolvers: {
|
|
|
31
31
|
type: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<"Article" | "Placeholder" | "Video" | "Audio" | "LiveBlogPackage" | "LiveBlogPost" | "ContentPackage" | "Content" | "MediaResource" | "CustomCodeComponent">, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
|
|
32
32
|
url: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, Partial<import("../generated").ContentUrlArgs>>;
|
|
33
33
|
};
|
|
34
|
+
ContentConnection: {
|
|
35
|
+
edges: (parent: import("../generated").Omit<import("../generated").ContentConnection, "edges"> & {
|
|
36
|
+
edges: ReadonlyArray<import("../generated").Maybe<import("../generated").ResolversParentTypes["ContentEdge"]>>;
|
|
37
|
+
}) => readonly import("../generated").Maybe<import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
38
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
39
|
+
}>[];
|
|
40
|
+
pageInfo: (parent: import("../generated").Omit<import("../generated").ContentConnection, "edges"> & {
|
|
41
|
+
edges: ReadonlyArray<import("../generated").Maybe<import("../generated").ResolversParentTypes["ContentEdge"]>>;
|
|
42
|
+
}) => import("../generated").PageInfo;
|
|
43
|
+
};
|
|
44
|
+
ContentEdge: {
|
|
45
|
+
node: (parent: import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
46
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
47
|
+
}) => import("../generated").Maybe<import("../model/CapiResponse").CapiResponse>;
|
|
48
|
+
cursor: (parent: import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
49
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
50
|
+
}) => string;
|
|
51
|
+
};
|
|
52
|
+
PageInfo: {
|
|
53
|
+
hasPreviousPage: (parent: import("../generated").PageInfo) => boolean;
|
|
54
|
+
hasNextPage: (parent: import("../generated").PageInfo) => boolean;
|
|
55
|
+
startCursor: (parent: import("../generated").PageInfo) => string | null;
|
|
56
|
+
endCursor: (parent: import("../generated").PageInfo) => string | null;
|
|
57
|
+
};
|
|
34
58
|
Article: {
|
|
35
59
|
containedIn: (parent: import("../model/CapiResponse").CapiResponse) => Promise<import("../model/CapiResponse").CapiResponse | null>;
|
|
36
60
|
publication: (parent: import("../model/CapiResponse").CapiResponse) => string[] | null;
|
|
@@ -138,7 +162,8 @@ declare const resolvers: {
|
|
|
138
162
|
url: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, Partial<import("../generated").ContentUrlArgs>>;
|
|
139
163
|
};
|
|
140
164
|
LiveBlogPackage: {
|
|
141
|
-
liveBlogPosts: (parent: import("../model/CapiResponse").CapiResponse) => Promise<[] | import("../model/CapiResponse").CapiResponse[]>;
|
|
165
|
+
liveBlogPosts: (parent: import("../model/CapiResponse").CapiResponse, args: Partial<import("../generated").LiveBlogPackageLiveBlogPostsArgs>) => Promise<[] | import("../model/CapiResponse").CapiResponse[]>;
|
|
166
|
+
liveBlogPostsConnection: (parent: import("../model/CapiResponse").CapiResponse, args: Partial<import("../generated").LiveBlogPackageLiveBlogPostsConnectionArgs>) => Promise<import("../types/connection").Connection<import("../model/CapiResponse").CapiResponse>>;
|
|
142
167
|
pinnedPost: (parent: import("../model/CapiResponse").CapiResponse) => Promise<import("../model/CapiResponse").CapiResponse | null>;
|
|
143
168
|
realtime: (parent: import("../model/CapiResponse").CapiResponse) => boolean | null;
|
|
144
169
|
__resolveType?: import("../generated").TypeResolveFn<"Article" | "Placeholder" | "Video" | "Audio" | "LiveBlogPackage" | "LiveBlogPost" | "ContentPackage", import("../model/CapiResponse").CapiResponse, import("..").QueryContext> | undefined;
|
package/lib/resolvers/content.js
CHANGED
|
@@ -47,6 +47,20 @@ const resolvers = {
|
|
|
47
47
|
},
|
|
48
48
|
...contentResolvers,
|
|
49
49
|
},
|
|
50
|
+
ContentConnection: {
|
|
51
|
+
edges: (parent) => parent.edges,
|
|
52
|
+
pageInfo: (parent) => parent.pageInfo,
|
|
53
|
+
},
|
|
54
|
+
ContentEdge: {
|
|
55
|
+
node: (parent) => parent.node,
|
|
56
|
+
cursor: (parent) => parent.cursor,
|
|
57
|
+
},
|
|
58
|
+
PageInfo: {
|
|
59
|
+
hasPreviousPage: (parent) => parent.hasPreviousPage,
|
|
60
|
+
hasNextPage: (parent) => parent.hasNextPage,
|
|
61
|
+
startCursor: (parent) => parent.startCursor ?? null,
|
|
62
|
+
endCursor: (parent) => parent.endCursor ?? null,
|
|
63
|
+
},
|
|
50
64
|
Article: {
|
|
51
65
|
...contentResolvers,
|
|
52
66
|
containedIn: (parent) => parent.containedIn(),
|
|
@@ -75,7 +89,13 @@ const resolvers = {
|
|
|
75
89
|
},
|
|
76
90
|
LiveBlogPackage: {
|
|
77
91
|
...contentResolvers,
|
|
78
|
-
liveBlogPosts: (parent) => parent.liveBlogPosts(),
|
|
92
|
+
liveBlogPosts: (parent, args) => parent.liveBlogPosts(args),
|
|
93
|
+
liveBlogPostsConnection: (parent, args) => parent.liveBlogPostsConnection({
|
|
94
|
+
first: args.first ?? undefined,
|
|
95
|
+
after: args.after ?? undefined,
|
|
96
|
+
last: args.last ?? undefined,
|
|
97
|
+
before: args.before ?? undefined,
|
|
98
|
+
}),
|
|
79
99
|
pinnedPost: (parent) => parent.pinnedPost(),
|
|
80
100
|
realtime: (parent) => parent.realtime(),
|
|
81
101
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/resolvers/content.ts"],"names":[],"mappings":";;AAAA,4CAAwC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/resolvers/content.ts"],"names":[],"mappings":"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"}
|
package/lib/resolvers/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ declare const resolvers: {
|
|
|
14
14
|
type: (flourish: import("../model/LeadFlourish").LeadFlourish) => string;
|
|
15
15
|
id: (flourish: import("../model/LeadFlourish").LeadFlourish) => string | null;
|
|
16
16
|
description: (flourish: import("../model/LeadFlourish").LeadFlourish) => string;
|
|
17
|
-
fallbackImage: (flourish: import("../model/LeadFlourish").LeadFlourish) => Promise<import("../model/FlourishSource").FlourishSource>;
|
|
17
|
+
fallbackImage: (flourish: import("../model/LeadFlourish").LeadFlourish) => Promise<import("../model/FlourishSource").FlourishSource | null>;
|
|
18
18
|
};
|
|
19
19
|
FlourishSource: {
|
|
20
20
|
id: (parent: import("../model/FlourishSource").FlourishSource) => string;
|
|
@@ -290,7 +290,6 @@ declare const resolvers: {
|
|
|
290
290
|
MainImage: import("../generated").ImageSetResolvers;
|
|
291
291
|
Caption: import("../generated").CaptionResolvers;
|
|
292
292
|
Accessibility: import("../generated").AccessibilityResolvers;
|
|
293
|
-
FlourishFallback: import("../generated").FlourishFallbackResolvers;
|
|
294
293
|
AuthorReference: import("../generated").AuthorReferenceResolvers;
|
|
295
294
|
Picture: {
|
|
296
295
|
__resolveType: import("../generated").TypeResolveFn<"PictureFullBleed" | "PictureInline" | "PictureStandard", import("../model/Picture").Picture, import("..").QueryContext>;
|
|
@@ -545,6 +544,30 @@ declare const resolvers: {
|
|
|
545
544
|
type: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<"Article" | "Placeholder" | "Video" | "Audio" | "LiveBlogPackage" | "LiveBlogPost" | "ContentPackage" | "Content" | "MediaResource" | "CustomCodeComponent">, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
|
|
546
545
|
url: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, Partial<import("../generated").ContentUrlArgs>>;
|
|
547
546
|
};
|
|
547
|
+
ContentConnection: {
|
|
548
|
+
edges: (parent: import("../generated").Omit<import("../generated").ContentConnection, "edges"> & {
|
|
549
|
+
edges: ReadonlyArray<import("../generated").Maybe<import("../generated").ResolversParentTypes["ContentEdge"]>>;
|
|
550
|
+
}) => readonly import("../generated").Maybe<import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
551
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
552
|
+
}>[];
|
|
553
|
+
pageInfo: (parent: import("../generated").Omit<import("../generated").ContentConnection, "edges"> & {
|
|
554
|
+
edges: ReadonlyArray<import("../generated").Maybe<import("../generated").ResolversParentTypes["ContentEdge"]>>;
|
|
555
|
+
}) => import("../generated").PageInfo;
|
|
556
|
+
};
|
|
557
|
+
ContentEdge: {
|
|
558
|
+
node: (parent: import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
559
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
560
|
+
}) => import("../generated").Maybe<import("../model/CapiResponse").CapiResponse>;
|
|
561
|
+
cursor: (parent: import("../generated").Omit<import("../generated").ContentEdge, "node"> & {
|
|
562
|
+
node: import("../generated").Maybe<import("../generated").ResolversParentTypes["Content"]>;
|
|
563
|
+
}) => string;
|
|
564
|
+
};
|
|
565
|
+
PageInfo: {
|
|
566
|
+
hasPreviousPage: (parent: import("../generated").PageInfo) => boolean;
|
|
567
|
+
hasNextPage: (parent: import("../generated").PageInfo) => boolean;
|
|
568
|
+
startCursor: (parent: import("../generated").PageInfo) => string | null;
|
|
569
|
+
endCursor: (parent: import("../generated").PageInfo) => string | null;
|
|
570
|
+
};
|
|
548
571
|
Article: {
|
|
549
572
|
containedIn: (parent: import("../model/CapiResponse").CapiResponse) => Promise<import("../model/CapiResponse").CapiResponse | null>;
|
|
550
573
|
publication: (parent: import("../model/CapiResponse").CapiResponse) => string[] | null;
|
|
@@ -652,7 +675,8 @@ declare const resolvers: {
|
|
|
652
675
|
url: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, Partial<import("../generated").ContentUrlArgs>>;
|
|
653
676
|
};
|
|
654
677
|
LiveBlogPackage: {
|
|
655
|
-
liveBlogPosts: (parent: import("../model/CapiResponse").CapiResponse) => Promise<[] | import("../model/CapiResponse").CapiResponse[]>;
|
|
678
|
+
liveBlogPosts: (parent: import("../model/CapiResponse").CapiResponse, args: Partial<import("../generated").LiveBlogPackageLiveBlogPostsArgs>) => Promise<[] | import("../model/CapiResponse").CapiResponse[]>;
|
|
679
|
+
liveBlogPostsConnection: (parent: import("../model/CapiResponse").CapiResponse, args: Partial<import("../generated").LiveBlogPackageLiveBlogPostsConnectionArgs>) => Promise<import("../types/connection").Connection<import("../model/CapiResponse").CapiResponse>>;
|
|
656
680
|
pinnedPost: (parent: import("../model/CapiResponse").CapiResponse) => Promise<import("../model/CapiResponse").CapiResponse | null>;
|
|
657
681
|
realtime: (parent: import("../model/CapiResponse").CapiResponse) => boolean | null;
|
|
658
682
|
__resolveType?: import("../generated").TypeResolveFn<"Article" | "Placeholder" | "Video" | "Audio" | "LiveBlogPackage" | "LiveBlogPost" | "ContentPackage", import("../model/CapiResponse").CapiResponse, import("..").QueryContext> | undefined;
|
|
@@ -3,7 +3,7 @@ declare const resolvers: {
|
|
|
3
3
|
type: (flourish: import("../model/LeadFlourish").LeadFlourish) => string;
|
|
4
4
|
id: (flourish: import("../model/LeadFlourish").LeadFlourish) => string | null;
|
|
5
5
|
description: (flourish: import("../model/LeadFlourish").LeadFlourish) => string;
|
|
6
|
-
fallbackImage: (flourish: import("../model/LeadFlourish").LeadFlourish) => Promise<import("../model/FlourishSource").FlourishSource>;
|
|
6
|
+
fallbackImage: (flourish: import("../model/LeadFlourish").LeadFlourish) => Promise<import("../model/FlourishSource").FlourishSource | null>;
|
|
7
7
|
};
|
|
8
8
|
FlourishSource: {
|
|
9
9
|
id: (parent: import("../model/FlourishSource").FlourishSource) => string;
|
|
@@ -5,6 +5,7 @@ const graphql_1 = require("graphql");
|
|
|
5
5
|
const validLiteralUnionValue = (value, validValues) => typeof value === 'string' && validValues.includes(value);
|
|
6
6
|
exports.validLiteralUnionValue = validLiteralUnionValue;
|
|
7
7
|
class LiteralUnionScalar extends graphql_1.GraphQLScalarType {
|
|
8
|
+
values;
|
|
8
9
|
constructor(config) {
|
|
9
10
|
super({
|
|
10
11
|
...config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal-union.js","sourceRoot":"","sources":["../../src/resolvers/literal-union.ts"],"names":[],"mappings":";;;AAAA,qCAIgB;AAQT,MAAM,sBAAsB,GAAG,CACpC,KAAc,EACd,WAAuB,EACa,EAAE,CACtC,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAJ7C,QAAA,sBAAsB,0BAIuB;AAM1D,MAAa,kBAEX,SAAQ,2BAAoD;
|
|
1
|
+
{"version":3,"file":"literal-union.js","sourceRoot":"","sources":["../../src/resolvers/literal-union.ts"],"names":[],"mappings":";;;AAAA,qCAIgB;AAQT,MAAM,sBAAsB,GAAG,CACpC,KAAc,EACd,WAAuB,EACa,EAAE,CACtC,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAJ7C,QAAA,sBAAsB,0BAIuB;AAM1D,MAAa,kBAEX,SAAQ,2BAAoD;IAC5D,MAAM,CAAY;IAElB,YAAY,MAA4C;QACtD,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9C,mEAAmE;YACnE,wEAAwE;SACzE,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC7B,CAAC;IAED,UAAU,CAAC,MAAe;QACxB,IAAI,CAAC,IAAA,8BAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,uEAAuE;YACvE,wCAAwC;YACxC,MAAM,IAAI,sBAAY,CACpB,YAAY,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,SAAS,CACxD,IAAI,CAAC,MAAM,CACZ,aAAa,MAAM,EAAE,CACvB,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,qEAAqE;IACrE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7D,CAAC;CACF;AAlCD,gDAkCC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ConnectionCursor = string;
|
|
2
|
+
export interface ConnectionPageInfo {
|
|
3
|
+
hasPreviousPage: boolean;
|
|
4
|
+
hasNextPage: boolean;
|
|
5
|
+
startCursor?: ConnectionCursor;
|
|
6
|
+
endCursor?: ConnectionCursor;
|
|
7
|
+
}
|
|
8
|
+
export interface ConnectionEdge<T> {
|
|
9
|
+
node: T;
|
|
10
|
+
cursor: ConnectionCursor;
|
|
11
|
+
}
|
|
12
|
+
export interface Connection<T> {
|
|
13
|
+
edges: ConnectionEdge<T>[];
|
|
14
|
+
pageInfo: ConnectionPageInfo;
|
|
15
|
+
}
|
|
16
|
+
export interface ConnectionArguments {
|
|
17
|
+
first?: number;
|
|
18
|
+
after?: ConnectionCursor;
|
|
19
|
+
last?: number;
|
|
20
|
+
before?: ConnectionCursor;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/types/connection.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,4CAA4C"}
|
package/package.json
CHANGED
package/queries/article.graphql
CHANGED
|
@@ -665,7 +665,7 @@ fragment ArticleFields on Content {
|
|
|
665
665
|
}
|
|
666
666
|
}
|
|
667
667
|
... on LiveBlogPackage {
|
|
668
|
-
liveBlogPosts {
|
|
668
|
+
liveBlogPosts(count: $liveBlogPostCount) {
|
|
669
669
|
...Content
|
|
670
670
|
url
|
|
671
671
|
... on LiveBlogPost {
|
|
@@ -678,6 +678,11 @@ fragment ArticleFields on Content {
|
|
|
678
678
|
}
|
|
679
679
|
}
|
|
680
680
|
}
|
|
681
|
+
liveBlogPostsConnection(first: $liveBlogPostCount) {
|
|
682
|
+
pageInfo {
|
|
683
|
+
hasNextPage
|
|
684
|
+
}
|
|
685
|
+
}
|
|
681
686
|
pinnedPost {
|
|
682
687
|
...PinnedPost
|
|
683
688
|
}
|
|
@@ -696,7 +701,7 @@ fragment ArticleFields on Content {
|
|
|
696
701
|
}
|
|
697
702
|
}
|
|
698
703
|
|
|
699
|
-
query Article($uuid: String!, $useVanities: Boolean
|
|
704
|
+
query Article($uuid: String!, $useVanities: Boolean!, $liveBlogPostCount: Int) {
|
|
700
705
|
content(uuid: $uuid) {
|
|
701
706
|
...ArticleFields
|
|
702
707
|
}
|
|
@@ -705,6 +710,7 @@ query Article($uuid: String!, $useVanities: Boolean!) {
|
|
|
705
710
|
query ArticleFromJSON(
|
|
706
711
|
$content: JSON!
|
|
707
712
|
$useVanities: Boolean!
|
|
713
|
+
$liveBlogPostCount: Int
|
|
708
714
|
$uuid: String = null
|
|
709
715
|
) {
|
|
710
716
|
contentFromJSON(content: $content) {
|
package/src/datasources/capi.ts
CHANGED
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
PrefixingKeyValueCache,
|
|
7
7
|
} from '@apollo/utils.keyvaluecache'
|
|
8
8
|
import { CapiList } from '../model/CapiList'
|
|
9
|
-
import TimeoutError from '../helpers/timeout-error'
|
|
10
9
|
import { Person } from '../model/Person'
|
|
11
10
|
|
|
12
11
|
const REQUEST_TIMEOUT = process.env.CAPI_DATASOURCE_REQUEST_TIMEOUT
|
|
@@ -38,20 +37,13 @@ export class CapiDataSource extends InstrumentedRESTDataSource {
|
|
|
38
37
|
return 'up-ica'
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
abortController = new AbortController()
|
|
42
|
-
timeout: ReturnType<typeof setTimeout> | undefined = undefined
|
|
43
|
-
|
|
44
40
|
nextNotificationLink?: string
|
|
45
41
|
|
|
46
42
|
override willSendRequest(path: string, request: AugmentedRequest) {
|
|
47
43
|
super.willSendRequest(path, request)
|
|
48
44
|
|
|
45
|
+
request.signal = AbortSignal.timeout(REQUEST_TIMEOUT)
|
|
49
46
|
request.headers['x-api-key'] = this.capiKey
|
|
50
|
-
request.signal = this.abortController.signal
|
|
51
|
-
this.timeout = setTimeout(
|
|
52
|
-
() => this.abortController.abort(new TimeoutError(REQUEST_TIMEOUT)),
|
|
53
|
-
REQUEST_TIMEOUT
|
|
54
|
-
)
|
|
55
47
|
}
|
|
56
48
|
|
|
57
49
|
async getContent(
|
|
@@ -71,11 +63,6 @@ export class CapiDataSource extends InstrumentedRESTDataSource {
|
|
|
71
63
|
this.context.contentRequestedOnce = true
|
|
72
64
|
this.calls.push(uuid)
|
|
73
65
|
|
|
74
|
-
if (this.timeout) {
|
|
75
|
-
clearTimeout(this.timeout)
|
|
76
|
-
this.timeout = undefined
|
|
77
|
-
}
|
|
78
|
-
|
|
79
66
|
return CapiResponse.fromJSON(content, this.context, packageContainer)
|
|
80
67
|
}
|
|
81
68
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import TimeoutError from '../helpers/timeout-error'
|
|
2
1
|
import { InstrumentedRESTDataSource } from './instrumented'
|
|
3
2
|
import { AugmentedRequest, CacheOptions } from '@apollo/datasource-rest'
|
|
4
3
|
|
|
@@ -12,9 +11,6 @@ export class OrigamiImageDataSource extends InstrumentedRESTDataSource {
|
|
|
12
11
|
return 'origami-image-service-v2'
|
|
13
12
|
}
|
|
14
13
|
|
|
15
|
-
abortController = new AbortController()
|
|
16
|
-
timeout: ReturnType<typeof setTimeout> | undefined = undefined
|
|
17
|
-
|
|
18
14
|
imageMetadataCacheTTL = process.env.IMAGE_METADATA_CACHE_TTL
|
|
19
15
|
? parseInt(process.env.IMAGE_METADATA_CACHE_TTL)
|
|
20
16
|
: 60 * 60 * 24 * 7 // 1 week
|
|
@@ -22,11 +18,7 @@ export class OrigamiImageDataSource extends InstrumentedRESTDataSource {
|
|
|
22
18
|
override willSendRequest(path: string, request: AugmentedRequest) {
|
|
23
19
|
super.willSendRequest(path, request)
|
|
24
20
|
|
|
25
|
-
request.signal =
|
|
26
|
-
this.timeout = setTimeout(
|
|
27
|
-
() => this.abortController.abort(new TimeoutError(REQUEST_TIMEOUT)),
|
|
28
|
-
REQUEST_TIMEOUT
|
|
29
|
-
)
|
|
21
|
+
request.signal = AbortSignal.timeout(REQUEST_TIMEOUT)
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
protected cacheOptionsFor(): CacheOptions {
|
|
@@ -42,10 +34,6 @@ export class OrigamiImageDataSource extends InstrumentedRESTDataSource {
|
|
|
42
34
|
|
|
43
35
|
this.calls.push(url)
|
|
44
36
|
|
|
45
|
-
if (this.timeout) {
|
|
46
|
-
clearTimeout(this.timeout)
|
|
47
|
-
this.timeout = undefined
|
|
48
|
-
}
|
|
49
37
|
return imageMetadata
|
|
50
38
|
}
|
|
51
39
|
}
|
|
@@ -2,7 +2,6 @@ import { AugmentedRequest, CacheOptions } from '@apollo/datasource-rest'
|
|
|
2
2
|
import * as z from 'zod'
|
|
3
3
|
|
|
4
4
|
import { InstrumentedRESTDataSource } from './instrumented'
|
|
5
|
-
import TimeoutError from '../helpers/timeout-error'
|
|
6
5
|
|
|
7
6
|
const REQUEST_TIMEOUT = process.env.TWITTER_DATASOURCE_REQUEST_TIMEOUT
|
|
8
7
|
? parseInt(process.env.TWITTER_DATASOURCE_REQUEST_TIMEOUT)
|
|
@@ -16,17 +15,10 @@ export class TwitterDataSource extends InstrumentedRESTDataSource {
|
|
|
16
15
|
return 'twitter-oembed-api'
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
abortController = new AbortController()
|
|
20
|
-
timeout: ReturnType<typeof setTimeout> | undefined = undefined
|
|
21
|
-
|
|
22
18
|
override willSendRequest(path: string, request: AugmentedRequest) {
|
|
23
19
|
super.willSendRequest(path, request)
|
|
24
20
|
|
|
25
|
-
request.signal =
|
|
26
|
-
this.timeout = setTimeout(
|
|
27
|
-
() => this.abortController.abort(new TimeoutError(REQUEST_TIMEOUT)),
|
|
28
|
-
REQUEST_TIMEOUT
|
|
29
|
-
)
|
|
21
|
+
request.signal = AbortSignal.timeout(REQUEST_TIMEOUT)
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
async getTweet(tweetUrl: string) {
|
|
@@ -34,11 +26,6 @@ export class TwitterDataSource extends InstrumentedRESTDataSource {
|
|
|
34
26
|
|
|
35
27
|
this.calls.push(tweetUrl)
|
|
36
28
|
|
|
37
|
-
if (this.timeout) {
|
|
38
|
-
clearTimeout(this.timeout)
|
|
39
|
-
this.timeout = undefined
|
|
40
|
-
}
|
|
41
|
-
|
|
42
29
|
return Tweet.parse(tweet)
|
|
43
30
|
}
|
|
44
31
|
|