@remkoj/optimizely-graph-functions 6.0.0-pre9 → 6.0.0-rc.3
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/AGENTS.md +105 -0
- package/README.md +60 -14
- package/dist/_transform/handleDependDirective.d.ts +11 -0
- package/dist/_transform/handleDependDirective.js +128 -0
- package/dist/_transform/handleDependDirective.js.map +1 -0
- package/dist/_transform/injectComponentDocuments.d.ts +3 -0
- package/dist/_transform/injectComponentDocuments.js +78 -24
- package/dist/_transform/injectComponentDocuments.js.map +1 -1
- package/dist/_transform/injectPageQueries.d.ts +1 -0
- package/dist/_transform/injectPageQueries.js +40 -7
- package/dist/_transform/injectPageQueries.js.map +1 -1
- package/dist/_transform/injectSectionQueries.d.ts +1 -0
- package/dist/_transform/injectSectionQueries.js +64 -17
- package/dist/_transform/injectSectionQueries.js.map +1 -1
- package/dist/_transform/normalizeFragmentNames.js +2 -0
- package/dist/_transform/normalizeFragmentNames.js.map +1 -1
- package/dist/_transform/performInjections.js +2 -35
- package/dist/_transform/performInjections.js.map +1 -1
- package/dist/cms/index.d.ts +4 -10
- package/dist/cms/index.js +64 -29
- package/dist/cms/index.js.map +1 -1
- package/dist/contenttype-loader.d.ts +1 -48
- package/dist/contenttype-loader.js +21 -286
- package/dist/contenttype-loader.js.map +1 -1
- package/dist/document-ast-plugin.d.ts +1 -1
- package/dist/document-ast-plugin.js +1 -1
- package/dist/document-ast-plugin.js.map +1 -1
- package/dist/documents/fragments.cms12.js.map +1 -1
- package/dist/documents/fragments.cms13.js +77 -13
- package/dist/documents/fragments.cms13.js.map +1 -1
- package/dist/documents/queries.cms13.js +4 -4
- package/dist/generator/collision-tracker.d.ts +22 -0
- package/dist/generator/collision-tracker.js +104 -0
- package/dist/generator/collision-tracker.js.map +1 -0
- package/dist/generator/generator.d.ts +77 -0
- package/dist/generator/generator.js +277 -0
- package/dist/generator/generator.js.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.js +42 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/virtual-location.d.ts +41 -0
- package/dist/generator/virtual-location.js +139 -0
- package/dist/generator/virtual-location.js.map +1 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/patch.js.map +1 -1
- package/dist/preset.js +103 -38
- package/dist/preset.js.map +1 -1
- package/dist/transform.d.ts +4 -3
- package/dist/transform.js +8 -1
- package/dist/transform.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +13 -3
- package/dist/utils.js.map +1 -1
- package/package.json +31 -21
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Types } from '@graphql-codegen/plugin-helpers';
|
|
2
2
|
import type { PresetOptions } from '../types';
|
|
3
|
+
export declare function getSectionDocuments(loader?: string): Promise<Types.CustomDocumentLoader[]>;
|
|
3
4
|
export declare function injectSectionQueries(files: Types.DocumentFile[], options: Types.PresetFnArgs<PresetOptions>): Promise<Types.DocumentFile[]>;
|
|
4
5
|
export default injectSectionQueries;
|
|
@@ -33,25 +33,53 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getSectionDocuments = getSectionDocuments;
|
|
36
37
|
exports.injectSectionQueries = injectSectionQueries;
|
|
37
38
|
const graphql_1 = require("graphql");
|
|
38
|
-
const QueryGen = __importStar(require("../contenttype-loader"));
|
|
39
39
|
const OptiCMS = __importStar(require("../cms"));
|
|
40
40
|
const tools_1 = require("./tools");
|
|
41
|
+
const generator_1 = require("../generator");
|
|
42
|
+
async function getSectionDocuments(loader = '@remkoj/optimizely-graph-functions/contenttype-loader') {
|
|
43
|
+
const sectionTypes = OptiCMS.getContentTypesList(undefined, (ct) => {
|
|
44
|
+
if (ct.source == "graph")
|
|
45
|
+
return false;
|
|
46
|
+
return ["_section"].includes((ct.baseType || "").toLowerCase());
|
|
47
|
+
});
|
|
48
|
+
const documents = [];
|
|
49
|
+
for (const sectionType of await sectionTypes) {
|
|
50
|
+
const vLoc = generator_1.VirtualLocation.build(sectionType, { type: 'query' });
|
|
51
|
+
if (vLoc) {
|
|
52
|
+
const def = {};
|
|
53
|
+
def[vLoc] = { loader };
|
|
54
|
+
documents.push(def);
|
|
55
|
+
}
|
|
56
|
+
const fragmentVLoc = generator_1.VirtualLocation.build(sectionType, { type: 'fragment' });
|
|
57
|
+
if (fragmentVLoc) {
|
|
58
|
+
const def = {};
|
|
59
|
+
def[fragmentVLoc] = { loader };
|
|
60
|
+
documents.push(def);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return documents;
|
|
64
|
+
}
|
|
41
65
|
async function injectSectionQueries(files, options) {
|
|
42
66
|
if (options.presetConfig.verbose)
|
|
43
|
-
console.log(`✨ [Optimizely] Generating
|
|
67
|
+
console.log(`✨ [Optimizely] Generating section queries that have not been defined by the implementation`);
|
|
44
68
|
const existingQueries = (0, tools_1.getAllQueries)(files);
|
|
69
|
+
const existingFragments = (0, tools_1.getAllFragments)(files);
|
|
45
70
|
const existingTypes = (0, tools_1.getAllTypeNames)(options.schema);
|
|
46
|
-
const
|
|
71
|
+
const allTypes = OptiCMS.getContentTypes(undefined);
|
|
72
|
+
const sectionTypes = OptiCMS.getContentTypesList(undefined, (ct) => {
|
|
47
73
|
if (ct.source == "graph")
|
|
48
74
|
return false;
|
|
49
75
|
return ["_section"].includes((ct.baseType || "").toLowerCase());
|
|
50
76
|
});
|
|
51
77
|
const newFiles = [];
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
78
|
+
const queryGen = new generator_1.DocumentGenerator(await allTypes);
|
|
79
|
+
for (const sectionContentType of await sectionTypes) {
|
|
80
|
+
const graphDataType = queryGen.getGraphType(sectionContentType);
|
|
81
|
+
const queryName = queryGen.getDefaultQueryName(sectionContentType);
|
|
82
|
+
const fragmentName = queryGen.getDefaultFragmentName(sectionContentType);
|
|
55
83
|
// Check if the type exists in the Schema, if not skip it
|
|
56
84
|
if (!existingTypes.includes(graphDataType)) {
|
|
57
85
|
if (options.presetConfig.verbose)
|
|
@@ -62,18 +90,37 @@ async function injectSectionQueries(files, options) {
|
|
|
62
90
|
if (existingQueries.has(queryName)) {
|
|
63
91
|
if (options.presetConfig.verbose)
|
|
64
92
|
console.log(` - Skipping query generation for ${sectionContentType.key}, the project already includes a definition for ${queryName}`);
|
|
65
|
-
|
|
93
|
+
// Add Query
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const rawSDL = queryGen.buildGetQuery(sectionContentType, queryName);
|
|
97
|
+
const vLoc = generator_1.VirtualLocation.build(sectionContentType, { type: 'query' });
|
|
98
|
+
if (options.presetConfig.verbose)
|
|
99
|
+
console.log(` - Generated query for ${sectionContentType.key} at ${vLoc}`);
|
|
100
|
+
newFiles.push({
|
|
101
|
+
rawSDL,
|
|
102
|
+
document: (0, graphql_1.parse)(rawSDL),
|
|
103
|
+
location: vLoc,
|
|
104
|
+
hash: vLoc
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (existingFragments.has(fragmentName)) {
|
|
108
|
+
if (options.presetConfig.verbose)
|
|
109
|
+
console.log(` - Skipping fragment generation for ${sectionContentType.key}, the project already includes a definition for ${fragmentName}`);
|
|
110
|
+
// Add Fragment
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const rawSDL = queryGen.buildFragment(sectionContentType);
|
|
114
|
+
const vLoc = generator_1.VirtualLocation.build(sectionContentType, { type: 'fragment' });
|
|
115
|
+
if (options.presetConfig.verbose)
|
|
116
|
+
console.log(` - Generated fragment for ${sectionContentType.key} at ${vLoc}`);
|
|
117
|
+
newFiles.push({
|
|
118
|
+
rawSDL,
|
|
119
|
+
document: (0, graphql_1.parse)(rawSDL),
|
|
120
|
+
location: vLoc,
|
|
121
|
+
hash: vLoc
|
|
122
|
+
});
|
|
66
123
|
}
|
|
67
|
-
const rawSDL = QueryGen.buildGetQuery(sectionContentType, queryName);
|
|
68
|
-
const vLoc = QueryGen.buildVirtualLocation(sectionContentType, { type: 'query' });
|
|
69
|
-
if (options.presetConfig.verbose)
|
|
70
|
-
console.log(` - Generated query for ${sectionContentType.key} at ${vLoc}`);
|
|
71
|
-
newFiles.push({
|
|
72
|
-
rawSDL,
|
|
73
|
-
document: (0, graphql_1.parse)(rawSDL),
|
|
74
|
-
location: vLoc,
|
|
75
|
-
hash: vLoc
|
|
76
|
-
});
|
|
77
124
|
}
|
|
78
125
|
return [...files, ...newFiles];
|
|
79
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectSectionQueries.js","sourceRoot":"","sources":["../../src/_transform/injectSectionQueries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"injectSectionQueries.js","sourceRoot":"","sources":["../../src/_transform/injectSectionQueries.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ function normalizeFragmentNames(files, options) {
|
|
|
37
37
|
}
|
|
38
38
|
return prev;
|
|
39
39
|
}, { toRename: [], toRemove: [] });
|
|
40
|
+
if (options.presetConfig.verbose)
|
|
41
|
+
console.log(`✨ [Optimizely] Identified ${operations.toRemove.length} fragments to remove (${operations.toRemove.join(", ")}) and ${operations.toRename.length} fragments to rename`);
|
|
40
42
|
const filteredFiles = files.map(file => {
|
|
41
43
|
let isModified = false;
|
|
42
44
|
const newDocument = file.document ? (0, graphql_1.visit)(file.document, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeFragmentNames.js","sourceRoot":"","sources":["../../src/_transform/normalizeFragmentNames.ts"],"names":[],"mappings":";;AAcA,
|
|
1
|
+
{"version":3,"file":"normalizeFragmentNames.js","sourceRoot":"","sources":["../../src/_transform/normalizeFragmentNames.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +1,11 @@
|
|
|
1
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 () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.performInjections = performInjections;
|
|
37
4
|
exports.getInjectionsByFile = getInjectionsByFile;
|
|
38
5
|
exports.getInjectionsByFragmentName = getInjectionsByFragmentName;
|
|
39
6
|
exports.getComponentFragments = getComponentFragments;
|
|
40
7
|
const graphql_1 = require("graphql");
|
|
41
|
-
const
|
|
8
|
+
const generator_1 = require("../generator");
|
|
42
9
|
const options_1 = require("./options");
|
|
43
10
|
/**
|
|
44
11
|
* Check all fragments within the project and ensure that there's at least a fragment for every
|
|
@@ -156,7 +123,7 @@ async function getComponentFragments(files, { injections, verbose }) {
|
|
|
156
123
|
if (!file.document)
|
|
157
124
|
return componentFragments; /// Stop if we don't have a document
|
|
158
125
|
// Check if this an internally generated fragment
|
|
159
|
-
const vLocInfo = file.location ?
|
|
126
|
+
const vLocInfo = file.location ? generator_1.VirtualLocation.parse(file.location) : undefined;
|
|
160
127
|
if (vLocInfo) {
|
|
161
128
|
// Only process the Virtual Location if it's for a non-property fragment with at least one injection target
|
|
162
129
|
if (vLocInfo.type !== 'fragment' || vLocInfo.forProperty || vLocInfo.injectionTargets.length == 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performInjections.js","sourceRoot":"","sources":["../../src/_transform/performInjections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"performInjections.js","sourceRoot":"","sources":["../../src/_transform/performInjections.ts"],"names":[],"mappings":"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"}
|
package/dist/cms/index.d.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { IntegrationApi, CmsIntegrationApiClient, CmsIntegrationApiOptions } from "@remkoj/optimizely-cms-api";
|
|
2
2
|
export declare function contentTypeToFragmentName(contentType: IntegrationApi.ContentType, forProperty?: boolean): string | undefined;
|
|
3
3
|
export declare function fragmentNameToContentType(fragmentName: string): {
|
|
4
4
|
contentType: string;
|
|
5
5
|
baseType: string;
|
|
6
6
|
forProperty: boolean;
|
|
7
7
|
};
|
|
8
|
-
export declare function getContentType(contentTypeKey: string, clientOrConfig?: CmsIntegrationApiClient | CmsIntegrationApiOptions): Promise<IntegrationApi.ContentType | undefined>;
|
|
9
8
|
export type ContentTypeFilter = (contentType: IntegrationApi.ContentType) => Promise<boolean> | boolean;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @param clientOrConfig
|
|
14
|
-
* @param pageSize
|
|
15
|
-
* @param filter
|
|
16
|
-
*/
|
|
17
|
-
export declare function getAllContentTypes(clientOrConfig?: CmsIntegrationApiClient | CmsIntegrationApiOptions, pageSize?: number, filter?: ContentTypeFilter): AsyncGenerator<IntegrationApi.ContentType>;
|
|
9
|
+
export declare function getContentTypes(configOrClient?: CmsIntegrationApiOptions | CmsIntegrationApiClient, filter?: ContentTypeFilter): Promise<Map<string, IntegrationApi.ContentType>>;
|
|
10
|
+
export declare function getContentTypesList(configOrClient?: CmsIntegrationApiOptions | CmsIntegrationApiClient, filter?: ContentTypeFilter): Promise<Array<IntegrationApi.ContentType>>;
|
|
11
|
+
export declare function getContentType(contentTypeKey: string, clientOrConfig?: CmsIntegrationApiClient | CmsIntegrationApiOptions): Promise<IntegrationApi.ContentType | undefined>;
|
package/dist/cms/index.js
CHANGED
|
@@ -2,29 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.contentTypeToFragmentName = contentTypeToFragmentName;
|
|
4
4
|
exports.fragmentNameToContentType = fragmentNameToContentType;
|
|
5
|
+
exports.getContentTypes = getContentTypes;
|
|
6
|
+
exports.getContentTypesList = getContentTypesList;
|
|
5
7
|
exports.getContentType = getContentType;
|
|
6
|
-
exports.getAllContentTypes = getAllContentTypes;
|
|
7
8
|
const optimizely_cms_api_1 = require("@remkoj/optimizely-cms-api");
|
|
8
9
|
const node_object_hash_1 = require("node-object-hash");
|
|
9
10
|
const tools_1 = require("../tools");
|
|
10
|
-
var hasher = (0, node_object_hash_1.hasher)({ sort: true, coerce: true });
|
|
11
|
-
const clientByHash = new Map();
|
|
12
|
-
function getClient(config) {
|
|
13
|
-
const configHash = hasher.hash(config ?? {});
|
|
14
|
-
let client = clientByHash.get(configHash);
|
|
15
|
-
if (!client) {
|
|
16
|
-
client = new Promise((resolve, reject) => {
|
|
17
|
-
const cms_client = (0, optimizely_cms_api_1.createClient)(config);
|
|
18
|
-
cms_client.getInstanceInfo().then(() => {
|
|
19
|
-
resolve(cms_client);
|
|
20
|
-
}).catch(e => {
|
|
21
|
-
reject(e);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
clientByHash.set(configHash, client);
|
|
25
|
-
}
|
|
26
|
-
return client;
|
|
27
|
-
}
|
|
28
11
|
function contentTypeToFragmentName(contentType, forProperty = false) {
|
|
29
12
|
const contentTypeKey = contentType.key;
|
|
30
13
|
const contentTypeBase = forProperty ? (0, tools_1.ucFirst)((0, tools_1.trimStart)(contentType.baseType ?? '', '_')) : 'Property';
|
|
@@ -45,11 +28,6 @@ function fragmentNameToContentType(fragmentName) {
|
|
|
45
28
|
forProperty
|
|
46
29
|
};
|
|
47
30
|
}
|
|
48
|
-
async function getContentType(contentTypeKey, clientOrConfig) {
|
|
49
|
-
const client = (0, optimizely_cms_api_1.isClientInstance)(clientOrConfig) ? clientOrConfig : await getClient(clientOrConfig);
|
|
50
|
-
const contentType = await client.contentTypesGet({ path: { key: contentTypeKey } }).catch(() => undefined);
|
|
51
|
-
return contentType;
|
|
52
|
-
}
|
|
53
31
|
const DefaultContentTypeFilter = () => true;
|
|
54
32
|
/**
|
|
55
33
|
* Retrieve all content types as an Async Generator, allowing processing of entries whilest they are being loaded from the CMS instance.
|
|
@@ -62,22 +40,24 @@ async function* getAllContentTypes(clientOrConfig, pageSize = 25, filter = Defau
|
|
|
62
40
|
const client = (0, optimizely_cms_api_1.isClientInstance)(clientOrConfig) ? clientOrConfig : await getClient(clientOrConfig);
|
|
63
41
|
let requestPageSize = pageSize;
|
|
64
42
|
let requestPageIndex = 0;
|
|
65
|
-
let totalItemCount
|
|
66
|
-
let totalPages
|
|
43
|
+
let totalItemCount;
|
|
44
|
+
let totalPages;
|
|
67
45
|
do {
|
|
68
|
-
const resultsPage = await client.contentTypesList({ query: { pageIndex: requestPageIndex, pageSize: requestPageSize } }).catch((
|
|
46
|
+
const resultsPage = await client.contentTypesList({ query: { pageIndex: requestPageIndex, pageSize: requestPageSize } }).catch(() => {
|
|
69
47
|
return {
|
|
70
48
|
items: [],
|
|
71
49
|
totalItemCount: 0,
|
|
50
|
+
totalCount: 0,
|
|
72
51
|
pageIndex: requestPageIndex,
|
|
73
52
|
pageSize: requestPageSize
|
|
74
53
|
};
|
|
75
54
|
});
|
|
76
55
|
// Calculate fields for next page
|
|
77
|
-
|
|
56
|
+
// @ts-expect-error Difference between PaaS & SaaS
|
|
57
|
+
totalItemCount = resultsPage.totalItemCount ?? resultsPage.totalCount ?? 0;
|
|
78
58
|
requestPageSize = resultsPage.pageSize ?? 0;
|
|
79
59
|
requestPageIndex = (resultsPage.pageIndex ?? 0) + 1;
|
|
80
|
-
totalPages =
|
|
60
|
+
totalPages = totalItemCount && resultsPage.pageSize ? Math.ceil(totalItemCount / requestPageSize) : 0;
|
|
81
61
|
// Yield items
|
|
82
62
|
for (const contentType of (resultsPage.items ?? [])) {
|
|
83
63
|
if (await filter(contentType))
|
|
@@ -85,4 +65,59 @@ async function* getAllContentTypes(clientOrConfig, pageSize = 25, filter = Defau
|
|
|
85
65
|
}
|
|
86
66
|
} while (requestPageIndex < totalPages);
|
|
87
67
|
}
|
|
68
|
+
async function getAllContentTypesMap(clientOrConfig, pageSize = 25, filter = DefaultContentTypeFilter) {
|
|
69
|
+
const contentTypeMap = new Map();
|
|
70
|
+
const allContentTypes = getAllContentTypes(clientOrConfig, pageSize, filter);
|
|
71
|
+
for await (const ct of allContentTypes) {
|
|
72
|
+
if (ct.key)
|
|
73
|
+
contentTypeMap.set(ct.key, ct);
|
|
74
|
+
}
|
|
75
|
+
return contentTypeMap;
|
|
76
|
+
}
|
|
77
|
+
const hasher = (0, node_object_hash_1.hasher)({ sort: true, coerce: true });
|
|
78
|
+
const clientByHash = new Map();
|
|
79
|
+
const contentTypeList = new Map();
|
|
80
|
+
function getContentTypes(configOrClient, filter) {
|
|
81
|
+
const config = ((0, optimizely_cms_api_1.isClientInstance)(configOrClient) ? configOrClient._config : configOrClient);
|
|
82
|
+
const hash = hasher.hash(config ?? {});
|
|
83
|
+
let list = contentTypeList.get(hash);
|
|
84
|
+
if (!list) {
|
|
85
|
+
list = getAllContentTypesMap(configOrClient, 100);
|
|
86
|
+
contentTypeList.set(hash, list);
|
|
87
|
+
}
|
|
88
|
+
if (filter)
|
|
89
|
+
return list.then(contentTypeMap => {
|
|
90
|
+
const filteredMap = new Map();
|
|
91
|
+
contentTypeMap.forEach((contentType, contentTypeKey) => {
|
|
92
|
+
if (filter(contentType))
|
|
93
|
+
filteredMap.set(contentTypeKey, contentType);
|
|
94
|
+
});
|
|
95
|
+
return filteredMap;
|
|
96
|
+
});
|
|
97
|
+
return list;
|
|
98
|
+
}
|
|
99
|
+
async function getContentTypesList(configOrClient, filter) {
|
|
100
|
+
const types = await getContentTypes(configOrClient, filter);
|
|
101
|
+
return Array.from(types.values());
|
|
102
|
+
}
|
|
103
|
+
async function getContentType(contentTypeKey, clientOrConfig) {
|
|
104
|
+
const types = await getContentTypes(clientOrConfig);
|
|
105
|
+
return types.get(contentTypeKey);
|
|
106
|
+
}
|
|
107
|
+
function getClient(config) {
|
|
108
|
+
const configHash = hasher.hash(config ?? {});
|
|
109
|
+
let client = clientByHash.get(configHash);
|
|
110
|
+
if (!client) {
|
|
111
|
+
client = new Promise((resolve, reject) => {
|
|
112
|
+
const cms_client = (0, optimizely_cms_api_1.createClient)(config);
|
|
113
|
+
cms_client.propertyGroupsList({}).then(() => {
|
|
114
|
+
resolve(cms_client);
|
|
115
|
+
}).catch(e => {
|
|
116
|
+
reject(new Error('Unable to connect', { cause: e }));
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
clientByHash.set(configHash, client);
|
|
120
|
+
}
|
|
121
|
+
return client;
|
|
122
|
+
}
|
|
88
123
|
//# sourceMappingURL=index.js.map
|
package/dist/cms/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cms/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cms/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +1,11 @@
|
|
|
1
1
|
import { type Types } from '@graphql-codegen/plugin-helpers';
|
|
2
|
-
import type { IntegrationApi } from '@remkoj/optimizely-cms-api';
|
|
3
2
|
export * as Tools from './tools';
|
|
4
3
|
type LoaderConfig = {
|
|
4
|
+
cwd: string;
|
|
5
5
|
pluginContext?: {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
};
|
|
8
8
|
};
|
|
9
9
|
type LoaderFunction = (documentUri: string, config: LoaderConfig) => Promise<Types.DocumentFile | undefined | void>;
|
|
10
10
|
declare const ContentTypeLoader: LoaderFunction;
|
|
11
|
-
export type VirtualLocationOptions = {
|
|
12
|
-
forProperty: boolean;
|
|
13
|
-
type: 'fragment' | 'query';
|
|
14
|
-
};
|
|
15
|
-
export type VirtualLocationData = {
|
|
16
|
-
contentTypeBase: string;
|
|
17
|
-
contentTypeKey: string;
|
|
18
|
-
injectionTargets: Array<string>;
|
|
19
|
-
} & VirtualLocationOptions;
|
|
20
|
-
export declare function parseVirtualLocation(virtualPath: string): VirtualLocationData | undefined;
|
|
21
|
-
export declare function buildVirtualLocation(contentType: IntegrationApi.ContentType, options?: Partial<VirtualLocationOptions>): string | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Get the Graph Type for the Content Type
|
|
24
|
-
* @param contentType
|
|
25
|
-
* @returns
|
|
26
|
-
*/
|
|
27
|
-
export declare function getGraphType(contentType: IntegrationApi.ContentType): string;
|
|
28
|
-
export declare function getGraphPropertyType(contentType: IntegrationApi.ContentType): string;
|
|
29
|
-
export declare function parseBaseType(storedBaseType: string): string;
|
|
30
|
-
export declare function extractBaseType(contentType: IntegrationApi.ContentType, fallback?: string): string;
|
|
31
|
-
export declare enum ContentTypeTarget {
|
|
32
|
-
'SectionData' = "SectionData",
|
|
33
|
-
'PageData' = "PageData",
|
|
34
|
-
'MediaData' = "MediaData",
|
|
35
|
-
'ComponentData' = "ComponentData",
|
|
36
|
-
'ElementData' = "ElementData",
|
|
37
|
-
'SectionElementData' = "SectionElementData",
|
|
38
|
-
'FormElementData' = "FormElementData",
|
|
39
|
-
'BlockData' = "BlockData"
|
|
40
|
-
}
|
|
41
|
-
export declare function getContentTypeTargets(contentType: IntegrationApi.ContentType): ContentTypeTarget[];
|
|
42
|
-
export declare function buildGetQuery(contentType: IntegrationApi.ContentType, queryName?: string | ((defaultName: string) => string), propertyTracker?: PropertyCollisionTracker): string;
|
|
43
|
-
/**
|
|
44
|
-
* Retrieve a list of component keys that are referenced as property by this type
|
|
45
|
-
*
|
|
46
|
-
* @param contentType
|
|
47
|
-
* @returns
|
|
48
|
-
*/
|
|
49
|
-
export declare function getReferencedPropertyComponents(contentType: IntegrationApi.ContentType): string[];
|
|
50
|
-
export declare function getSlugFromKey(key: string): string;
|
|
51
|
-
/**
|
|
52
|
-
* Tracker for all properties, indexed by property name, then type
|
|
53
|
-
* for a list of all ContentTypes.
|
|
54
|
-
*/
|
|
55
|
-
export type PropertyCollisionTracker = Map<string, string>;
|
|
56
|
-
export declare function buildFragment(contentType: IntegrationApi.ContentType, fragmentName?: string | ((defaultName: string) => string), forProperty?: boolean, propertyTracker?: PropertyCollisionTracker): string;
|
|
57
|
-
export declare function buildProperty(propertyName: string, propertyConfig?: IntegrationApi.ContentTypeProperty, propertyTracker?: PropertyCollisionTracker): string | null;
|
|
58
11
|
export default ContentTypeLoader;
|