@remkoj/optimizely-graph-functions 6.0.0-pre8 → 6.0.0-rc.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.
Files changed (73) hide show
  1. package/LICENSE +12 -12
  2. package/README.md +60 -14
  3. package/dist/_transform/cleanFragments.d.ts +10 -0
  4. package/dist/_transform/cleanFragments.js +39 -0
  5. package/dist/_transform/cleanFragments.js.map +1 -0
  6. package/dist/_transform/cleanSpreads.d.ts +10 -0
  7. package/dist/_transform/cleanSpreads.js +36 -0
  8. package/dist/_transform/cleanSpreads.js.map +1 -0
  9. package/dist/_transform/handleDependDirective.d.ts +11 -0
  10. package/dist/_transform/handleDependDirective.js +128 -0
  11. package/dist/_transform/handleDependDirective.js.map +1 -0
  12. package/dist/_transform/injectComponentDocuments.d.ts +16 -0
  13. package/dist/_transform/injectComponentDocuments.js +177 -0
  14. package/dist/_transform/injectComponentDocuments.js.map +1 -0
  15. package/dist/_transform/injectPageQueries.d.ts +5 -0
  16. package/dist/_transform/injectPageQueries.js +114 -0
  17. package/dist/_transform/injectPageQueries.js.map +1 -0
  18. package/dist/_transform/injectSectionQueries.d.ts +5 -0
  19. package/dist/_transform/injectSectionQueries.js +128 -0
  20. package/dist/_transform/injectSectionQueries.js.map +1 -0
  21. package/dist/_transform/normalizeFragmentNames.d.ts +12 -0
  22. package/dist/_transform/normalizeFragmentNames.js +77 -0
  23. package/dist/_transform/normalizeFragmentNames.js.map +1 -0
  24. package/dist/_transform/normalizeQueryNames.d.ts +12 -0
  25. package/dist/_transform/normalizeQueryNames.js +83 -0
  26. package/dist/_transform/normalizeQueryNames.js.map +1 -0
  27. package/dist/_transform/options.d.ts +3 -0
  28. package/dist/_transform/options.js +21 -0
  29. package/dist/_transform/options.js.map +1 -0
  30. package/dist/_transform/performInjections.d.ts +24 -0
  31. package/dist/_transform/performInjections.js +192 -0
  32. package/dist/_transform/performInjections.js.map +1 -0
  33. package/dist/_transform/tools.d.ts +34 -0
  34. package/dist/_transform/tools.js +103 -0
  35. package/dist/_transform/tools.js.map +1 -0
  36. package/dist/cms/index.d.ts +11 -0
  37. package/dist/cms/index.js +121 -0
  38. package/dist/cms/index.js.map +1 -0
  39. package/dist/contenttype-loader.d.ts +11 -0
  40. package/dist/contenttype-loader.js +72 -0
  41. package/dist/contenttype-loader.js.map +1 -0
  42. package/dist/documents/fragments.cms13.js +147 -39
  43. package/dist/documents/fragments.cms13.js.map +1 -1
  44. package/dist/documents/queries.cms13.js +9 -3
  45. package/dist/documents/queries.cms13.js.map +1 -1
  46. package/dist/embedded-loader.js +31 -16
  47. package/dist/embedded-loader.js.map +1 -1
  48. package/dist/generator/collision-tracker.d.ts +22 -0
  49. package/dist/generator/collision-tracker.js +103 -0
  50. package/dist/generator/collision-tracker.js.map +1 -0
  51. package/dist/generator/generator.d.ts +77 -0
  52. package/dist/generator/generator.js +272 -0
  53. package/dist/generator/generator.js.map +1 -0
  54. package/dist/generator/index.d.ts +3 -0
  55. package/dist/generator/index.js +42 -0
  56. package/dist/generator/index.js.map +1 -0
  57. package/dist/generator/virtual-location.d.ts +41 -0
  58. package/dist/generator/virtual-location.js +139 -0
  59. package/dist/generator/virtual-location.js.map +1 -0
  60. package/dist/index.d.ts +2 -5
  61. package/dist/index.js +4 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/preset.d.ts +2 -4
  64. package/dist/preset.js +112 -73
  65. package/dist/preset.js.map +1 -1
  66. package/dist/tools.d.ts +4 -0
  67. package/dist/tools.js +20 -0
  68. package/dist/tools.js.map +1 -0
  69. package/dist/transform.d.ts +12 -1
  70. package/dist/transform.js +48 -58
  71. package/dist/transform.js.map +1 -1
  72. package/dist/types.d.ts +23 -0
  73. package/package.json +27 -21
package/dist/preset.js CHANGED
@@ -34,14 +34,13 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.preset = void 0;
37
- const graphql_1 = require("graphql");
38
37
  // Import base preset
39
38
  const client_preset_1 = require("@graphql-codegen/client-preset");
40
39
  const GraphQLRequestPlugin = __importStar(require("@graphql-codegen/typescript-graphql-request"));
41
40
  const AddPlugin = __importStar(require("@graphql-codegen/add"));
42
41
  // Import injected parts
43
42
  const index_1 = __importStar(require("./index"));
44
- const transform_1 = __importStar(require("./transform"));
43
+ const transform_1 = require("./transform");
45
44
  exports.preset = {
46
45
  /**
47
46
  * Prepare the documents to be parsed by this preset, without modifying the original array
@@ -52,20 +51,46 @@ exports.preset = {
52
51
  */
53
52
  prepareDocuments: async (outputFilePath, outputSpecificDocuments) => {
54
53
  // Get the configured documents
55
- const optiDocs = outputSpecificDocuments.filter((x => typeof (x) == 'string' && x.startsWith('opti-cms:')));
56
- const normalDocs = outputSpecificDocuments.filter(x => !(typeof (x) == 'string' && x.startsWith('opti-cms:')));
54
+ const optiDocs = outputSpecificDocuments.filter(((x) => typeof x == 'string' && x.startsWith('opti-cms:')));
55
+ const normalDocs = outputSpecificDocuments.filter((x) => !(typeof x == 'string' && x.startsWith('opti-cms:')));
57
56
  // Get the base documents
58
- const documents = client_preset_1.preset.prepareDocuments ?
59
- await client_preset_1.preset.prepareDocuments(outputFilePath, normalDocs) :
60
- [...normalDocs, `!${outputFilePath}`];
57
+ const documents = client_preset_1.preset.prepareDocuments
58
+ ? await client_preset_1.preset.prepareDocuments(outputFilePath, normalDocs)
59
+ : [...normalDocs, `!${outputFilePath}`];
61
60
  // Transform / inject the Opti-CMS documents
62
- const CmsDocLoaders = (optiDocs.length == 0 ? ['opti-cms:/fragments/13', 'opti-cms:/queries/13'] : optiDocs).map(optiDoc => {
61
+ const CmsDocLoaders = (optiDocs.length == 0
62
+ ? ['opti-cms:/fragments/13', /*'opti-cms:/queries/13'*/]
63
+ : optiDocs).map((optiDoc) => {
63
64
  const loader = {};
64
- loader[optiDoc] = { loader: "@remkoj/optimizely-graph-functions/loader" };
65
+ loader[optiDoc] = { loader: '@remkoj/optimizely-graph-functions/loader' };
65
66
  return loader;
66
67
  });
68
+ // Get page documents
69
+ const [pageDocuments, sectionDocuments, componentDocuments, injectionTargets] = await Promise.all([
70
+ (0, transform_1.getPageDocuments)(),
71
+ (0, transform_1.getSectionDocuments)(),
72
+ (0, transform_1.getComponentDocuments)(),
73
+ (0, transform_1.getInjectionTargetDocuments)()
74
+ ]);
67
75
  // Create a new, extended, array
68
- return [...documents, ...CmsDocLoaders];
76
+ const allDocuments = [
77
+ ...CmsDocLoaders,
78
+ ...pageDocuments,
79
+ ...sectionDocuments,
80
+ ...componentDocuments,
81
+ ...injectionTargets
82
+ ];
83
+ function compareOperationDocuments(a, b) {
84
+ const aPath = typeof (a) === 'string' ? a : Object.getOwnPropertyNames(a).join(';');
85
+ const bPath = typeof (b) === 'string' ? b : Object.getOwnPropertyNames(b).join(';');
86
+ if (aPath < bPath)
87
+ return -1;
88
+ if (aPath > bPath)
89
+ return 1;
90
+ return 0;
91
+ }
92
+ allDocuments.sort(compareOperationDocuments);
93
+ return [...documents, ...allDocuments];
69
94
  },
70
95
  buildGeneratesSection: async (options) => {
71
96
  // Extend the default plugin configuration
@@ -76,9 +101,9 @@ exports.preset = {
76
101
  // Provided options
77
102
  ...options.config,
78
103
  // Enforced settings
79
- namingConvention: "keep", // Keep casing "as-is" from Optimizely Graph
104
+ namingConvention: 'keep', // Keep casing "as-is" from Optimizely Graph
80
105
  };
81
- // Change the default for fragment masking from 'useFragment' to
106
+ // Change the default for fragment masking from 'useFragment' to
82
107
  // 'getFragmentData', in order to prevent issues with code checks for
83
108
  // React hooks
84
109
  if (options.presetConfig.fragmentMasking !== false) {
@@ -86,69 +111,51 @@ exports.preset = {
86
111
  ...options.presetConfig,
87
112
  fragmentMasking: {
88
113
  unmaskFunctionName: 'getFragmentData',
89
- ...(typeof (options.presetConfig?.fragmentMasking) == 'object' ? options.presetConfig?.fragmentMasking : {})
90
- }
114
+ ...(typeof options.presetConfig?.fragmentMasking == 'object'
115
+ ? options.presetConfig?.fragmentMasking
116
+ : {}),
117
+ },
91
118
  };
92
119
  }
93
- // Extend the document transforms in order to apply the transformations
94
- // needed to automatically inject Block, Page & Element fragments
95
- options.documentTransforms = [
96
- ...(options.documentTransforms || []),
97
- {
98
- name: 'optly-transform',
99
- transformObject: transform_1.default,
100
- config: {
101
- ...options.config,
102
- ...(0, transform_1.pickTransformOptions)(options.presetConfig)
103
- }
104
- }
105
- ];
106
- // The packages contain quite a few utility fragments, however these
107
- // can cause errors if there're no Content Types using the types
108
- // targeted by these fragments as they won't be available in Optimizely
109
- // Graph - so we're removing them first
110
- options.documents = options.documents.map(doc => {
111
- if (doc.document) {
112
- const newDocument = (0, graphql_1.visit)(doc.document, {
113
- FragmentDefinition: {
114
- enter: (node) => {
115
- if (!options.schema.definitions.some(x => (x.kind == graphql_1.Kind.OBJECT_TYPE_DEFINITION || x.kind == graphql_1.Kind.INTERFACE_TYPE_DEFINITION) && x.name.value == node.typeCondition.name.value)) {
116
- if (options.presetConfig.verbose)
117
- console.log(`⚠ Removing fragment ${node.name.value} from the documents, as its target ${node.typeCondition.name.value} is not available in the schema`);
118
- return null;
119
- }
120
- }
121
- }
122
- });
123
- return {
124
- ...doc,
125
- document: newDocument
126
- };
127
- }
128
- return doc;
129
- });
120
+ // Apply all changes to the document set, prior to validating it. They're executed in the order of the array
121
+ options.documentTransforms = injectOptimizelyTransforms(options.documentTransforms, options);
122
+ options.documents = await (0, transform_1.executeDocumentTransforms)(options.documents, [
123
+ transform_1.cleanFragments, // Remove fragments that target non-existing types
124
+ transform_1.normalizeFragmentNames, // Allow overriding of built-in fragments
125
+ transform_1.normalizeQueryNames, // Allow overriding of built-in queries
126
+ transform_1.performInjections, // Run injections of component fragments adjacent to placeholder fragments
127
+ transform_1.cleanFragmentSpreads, // Remove all fragment spreads that target a fragment that does not exist in the documents
128
+ transform_1.handleDependDirective, // Remove the "item" field in queries and fragments from the "ContentReference" type if it's not in the schema
129
+ ], options);
130
130
  // Build the preset files
131
131
  const section = await client_preset_1.preset.buildGeneratesSection(options);
132
- // Add GraphQL Request Client
132
+ // Add GraphQL Request Client.
133
133
  section.push({
134
134
  filename: `${options.baseOutputDir}client.ts`,
135
135
  pluginMap: {
136
- "add": AddPlugin,
137
- "typescript-graphql-request": GraphQLRequestPlugin
136
+ add: AddPlugin,
137
+ 'typescript-graphql-request': GraphQLRequestPlugin,
138
138
  },
139
139
  plugins: [
140
140
  {
141
141
  add: {
142
- content: ["import type * as Schema from \"./graphql\";"]
142
+ content: [
143
+ '// This is an auto-generated file, do not modify',
144
+ 'import type * as Schema from "./graphql";',
145
+ ],
143
146
  },
144
147
  },
145
148
  {
146
149
  'typescript-graphql-request': {
147
- ...options.config,
148
150
  useTypeImports: true,
149
- importOperationTypesFrom: "Schema",
150
- }
151
- }
151
+ importOperationTypesFrom: 'Schema',
152
+ //rawRequest: options.presetConfig.recursion ? true : undefined,
153
+ //documentMode: options.presetConfig.recursion ? DocumentMode.string : undefined,
154
+ experimentalAddDocumentNodeType: options.presetConfig.recursion ? true : undefined,
155
+ //rawString: options.presetConfig.recursion ? true : undefined,
156
+ ...options.config,
157
+ },
158
+ },
152
159
  ],
153
160
  schema: options.schema,
154
161
  schemaAst: options.schemaAst,
@@ -157,18 +164,19 @@ exports.preset = {
157
164
  },
158
165
  profiler: options.profiler,
159
166
  documents: options.documents,
160
- documentTransforms: options.documentTransforms
167
+ documentTransforms: options.documentTransforms,
161
168
  });
162
- // Add the functions file
169
+ // Add the functions file, which will materialize the defined
170
+ // functions.
163
171
  section.push({
164
172
  filename: `${options.baseOutputDir}functions.ts`,
165
173
  pluginMap: {
166
- ['optly-functions']: index_1.default
174
+ ['optly-functions']: index_1.default,
167
175
  },
168
176
  plugins: [
169
177
  {
170
- ['optly-functions']: {}
171
- }
178
+ ['optly-functions']: {},
179
+ },
172
180
  ],
173
181
  schema: options.schema,
174
182
  schemaAst: options.schemaAst,
@@ -178,41 +186,72 @@ exports.preset = {
178
186
  ...(0, index_1.pickPluginOptions)(options.presetConfig),
179
187
  },
180
188
  documents: options.documents,
181
- documentTransforms: options.documentTransforms
189
+ documentTransforms: options.documentTransforms,
182
190
  });
183
- // Update all sections for Optimizely Graph
191
+ // Update file generation configs
184
192
  section.forEach((fileConfig, idx) => {
185
193
  // Modify index.ts with additional exports
186
- if (fileConfig.filename.endsWith("index.ts")) {
194
+ if (fileConfig.filename.endsWith('index.ts')) {
187
195
  section[idx].plugins.unshift({
188
196
  add: {
189
197
  content: [
190
198
  'export * as Schema from "./graphql";',
191
199
  'export * from "./functions";',
192
200
  'export { getSdk, type Sdk } from "./client";',
193
- ]
194
- }
201
+ ],
202
+ },
195
203
  });
196
204
  section[idx].plugins.push({
197
205
  add: {
198
- content: ['', `export const WITH_RECURSIVE_SUPPORT = ${options.presetConfig.recursion === true ? 'true' : 'false'};`]
199
- }
206
+ content: [
207
+ '',
208
+ `export const WITH_RECURSIVE_SUPPORT = ${options.presetConfig.recursion === true ? 'true' : 'false'};`,
209
+ ],
210
+ },
200
211
  });
201
212
  }
213
+ //if (!hasOptimizelyTransform(fileConfig.documentTransforms))
214
+ // fileConfig.documentTransforms = injectOptimizelyTransforms(fileConfig.documentTransforms)
202
215
  // Optimizely Graph supports recursive queries to allow fetching
203
216
  // data as created in the CMS. This can cause issues when using
204
217
  // multiple GraphQL sources, hence the ability to enable/disalbe
205
218
  // the support for recursive queries.
206
- if (fileConfig.skipDocumentsValidation != true && options.presetConfig.recursion === true) {
219
+ if (fileConfig.skipDocumentsValidation != true &&
220
+ options.presetConfig.recursion === true) {
207
221
  const currentOptions = fileConfig.skipDocumentsValidation || {};
208
222
  section[idx].skipDocumentsValidation = {
209
223
  ...currentOptions,
210
- ignoreRules: [...(currentOptions.ignoreRules ?? []), 'NoFragmentCyclesRule']
224
+ ignoreRules: [
225
+ ...(currentOptions.ignoreRules ?? []),
226
+ 'NoFragmentCyclesRule',
227
+ ],
211
228
  };
212
229
  }
213
230
  });
214
231
  return section;
215
232
  },
216
233
  };
234
+ function injectOptimizelyTransforms(currentTransforms, options) {
235
+ const dt = currentTransforms ?? [];
236
+ dt.unshift({
237
+ name: 'Optimizely.CMS',
238
+ transformObject: {
239
+ transform: (tOpts) => (0, transform_1.executeDocumentTransforms)(tOpts.documents, [
240
+ transform_1.cleanFragments, // Remove fragments that target non-existing types
241
+ transform_1.normalizeFragmentNames, // Allow overriding of built-in fragments
242
+ transform_1.normalizeQueryNames, // Allow overriding of built-in queries
243
+ transform_1.performInjections, // Run injections of component fragments adjacent to placeholder fragments
244
+ transform_1.cleanFragmentSpreads, // Remove all fragment spreads that target a fragment that does not exist in the documents
245
+ transform_1.handleDependDirective, // Remove the "item" field in queries and fragments from the "ContentReference" type if it's not in the schema
246
+ ], options),
247
+ },
248
+ });
249
+ return dt;
250
+ }
251
+ function hasOptimizelyTransform(currentTransforms) {
252
+ if (!Array.isArray(currentTransforms))
253
+ return false;
254
+ return currentTransforms.some(x => x.name === 'Optimizely.CMS');
255
+ }
217
256
  exports.default = exports.preset;
218
257
  //# sourceMappingURL=preset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function ucFirst<S extends string>(input: S): Capitalize<S>;
2
+ export declare function lcFirst<S extends string>(input: S): Uncapitalize<S>;
3
+ export declare function trimStart(target: string, toTrim?: string): string;
4
+ export declare function isNonEmptyString<S extends string>(toTest: S | null | undefined | object | number | boolean): toTest is S;
package/dist/tools.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ucFirst = ucFirst;
4
+ exports.lcFirst = lcFirst;
5
+ exports.trimStart = trimStart;
6
+ exports.isNonEmptyString = isNonEmptyString;
7
+ function ucFirst(input) {
8
+ return (input.substring(0, 1).toUpperCase() + input.substring(1));
9
+ }
10
+ function lcFirst(input) {
11
+ return (input.substring(0, 1).toLowerCase() + input.substring(1));
12
+ }
13
+ function trimStart(target, toTrim = ' ') {
14
+ const regex = new RegExp(`/^(${toTrim})+/`);
15
+ return target.replace(regex, '');
16
+ }
17
+ function isNonEmptyString(toTest) {
18
+ return typeof toTest === 'string' && toTest.length > 0;
19
+ }
20
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;AAAA,0BAEC;AAED,0BAEC;AAED,8BAGC;AAED,4CAEC;AAfD,SAAgB,OAAO,CAAmB,KAAQ;IAChD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAkB,CAAC;AACrF,CAAC;AAED,SAAgB,OAAO,CAAmB,KAAQ;IAChD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAoB,CAAC;AACvF,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,SAAiB,GAAG;IAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,MAAM,KAAK,CAAC,CAAA;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,gBAAgB,CAAmB,MAAwD;IACzG,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AACxD,CAAC"}
@@ -1,6 +1,17 @@
1
1
  import { type Types } from '@graphql-codegen/plugin-helpers';
2
2
  import type { TransformOptions } from './types';
3
- export declare function pickTransformOptions(options: Record<string, any>): TransformOptions;
3
+ export { cleanFragments } from "./_transform/cleanFragments";
4
+ export { injectComponentDocuments, getComponentDocuments, injectInjectionTargets, getInjectionTargetDocuments } from "./_transform/injectComponentDocuments";
5
+ export { normalizeFragmentNames } from "./_transform/normalizeFragmentNames";
6
+ export { normalizeQueryNames } from "./_transform/normalizeQueryNames";
7
+ export { pickTransformOptions } from "./_transform/options";
8
+ export { injectPageQueries, getPageDocuments } from "./_transform/injectPageQueries";
9
+ export { injectSectionQueries, getSectionDocuments } from "./_transform/injectSectionQueries";
10
+ export { performInjections } from "./_transform/performInjections";
11
+ export { cleanFragmentSpreads } from "./_transform/cleanSpreads";
12
+ export { handleDependDirective } from "./_transform/handleDependDirective";
13
+ export type TransformFn<T = any> = (files: Types.DocumentFile[], options: Types.PresetFnArgs<T>) => Promise<Types.DocumentFile[]> | Types.DocumentFile[];
14
+ export declare function executeDocumentTransforms<T = any>(files: Types.DocumentFile[], transforms: Array<TransformFn<T>>, options: Types.PresetFnArgs<T>): Promise<Types.DocumentFile[]>;
4
15
  export declare const transform: Types.DocumentTransformFunction<TransformOptions>;
5
16
  declare const _default: {
6
17
  transform: Types.DocumentTransformFunction<TransformOptions>;
package/dist/transform.js CHANGED
@@ -1,71 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transform = void 0;
4
- exports.pickTransformOptions = pickTransformOptions;
3
+ exports.transform = exports.handleDependDirective = exports.cleanFragmentSpreads = exports.performInjections = exports.getSectionDocuments = exports.injectSectionQueries = exports.getPageDocuments = exports.injectPageQueries = exports.pickTransformOptions = exports.normalizeQueryNames = exports.normalizeFragmentNames = exports.getInjectionTargetDocuments = exports.injectInjectionTargets = exports.getComponentDocuments = exports.injectComponentDocuments = exports.cleanFragments = void 0;
4
+ exports.executeDocumentTransforms = executeDocumentTransforms;
5
5
  const graphql_1 = require("graphql");
6
- function pickTransformOptions(options) {
7
- return {
8
- injections: options.injections ?? [],
9
- verbose: options.verbose ?? false,
10
- recursion: options.recursion ?? true
11
- };
6
+ var cleanFragments_1 = require("./_transform/cleanFragments");
7
+ Object.defineProperty(exports, "cleanFragments", { enumerable: true, get: function () { return cleanFragments_1.cleanFragments; } });
8
+ var injectComponentDocuments_1 = require("./_transform/injectComponentDocuments");
9
+ Object.defineProperty(exports, "injectComponentDocuments", { enumerable: true, get: function () { return injectComponentDocuments_1.injectComponentDocuments; } });
10
+ Object.defineProperty(exports, "getComponentDocuments", { enumerable: true, get: function () { return injectComponentDocuments_1.getComponentDocuments; } });
11
+ Object.defineProperty(exports, "injectInjectionTargets", { enumerable: true, get: function () { return injectComponentDocuments_1.injectInjectionTargets; } });
12
+ Object.defineProperty(exports, "getInjectionTargetDocuments", { enumerable: true, get: function () { return injectComponentDocuments_1.getInjectionTargetDocuments; } });
13
+ var normalizeFragmentNames_1 = require("./_transform/normalizeFragmentNames");
14
+ Object.defineProperty(exports, "normalizeFragmentNames", { enumerable: true, get: function () { return normalizeFragmentNames_1.normalizeFragmentNames; } });
15
+ var normalizeQueryNames_1 = require("./_transform/normalizeQueryNames");
16
+ Object.defineProperty(exports, "normalizeQueryNames", { enumerable: true, get: function () { return normalizeQueryNames_1.normalizeQueryNames; } });
17
+ var options_1 = require("./_transform/options");
18
+ Object.defineProperty(exports, "pickTransformOptions", { enumerable: true, get: function () { return options_1.pickTransformOptions; } });
19
+ var injectPageQueries_1 = require("./_transform/injectPageQueries");
20
+ Object.defineProperty(exports, "injectPageQueries", { enumerable: true, get: function () { return injectPageQueries_1.injectPageQueries; } });
21
+ Object.defineProperty(exports, "getPageDocuments", { enumerable: true, get: function () { return injectPageQueries_1.getPageDocuments; } });
22
+ var injectSectionQueries_1 = require("./_transform/injectSectionQueries");
23
+ Object.defineProperty(exports, "injectSectionQueries", { enumerable: true, get: function () { return injectSectionQueries_1.injectSectionQueries; } });
24
+ Object.defineProperty(exports, "getSectionDocuments", { enumerable: true, get: function () { return injectSectionQueries_1.getSectionDocuments; } });
25
+ var performInjections_1 = require("./_transform/performInjections");
26
+ Object.defineProperty(exports, "performInjections", { enumerable: true, get: function () { return performInjections_1.performInjections; } });
27
+ var cleanSpreads_1 = require("./_transform/cleanSpreads");
28
+ Object.defineProperty(exports, "cleanFragmentSpreads", { enumerable: true, get: function () { return cleanSpreads_1.cleanFragmentSpreads; } });
29
+ var handleDependDirective_1 = require("./_transform/handleDependDirective");
30
+ Object.defineProperty(exports, "handleDependDirective", { enumerable: true, get: function () { return handleDependDirective_1.handleDependDirective; } });
31
+ async function executeDocumentTransforms(files, transforms, options) {
32
+ let transformedFiles = files;
33
+ for (const transform of transforms)
34
+ transformedFiles = await transform(transformedFiles, options);
35
+ return transformedFiles;
12
36
  }
13
- const transform = ({ documents: files, config, schema, pluginContext }) => {
14
- if (config.verbose)
37
+ const options_2 = require("./_transform/options");
38
+ const performInjections_2 = require("./_transform/performInjections");
39
+ const transform = async ({ documents: files, config, schema, pluginContext }) => {
40
+ // Create context
41
+ const transformConfig = { ...options_2.defaultOptions, ...config };
42
+ if (transformConfig.verbose)
15
43
  console.debug(`[ OPTIMIZELY ] Starting Optimizely Graph Query & Fragment transformations`);
16
- const injections = config.injections ?? [];
17
- // Retrieve component fragments
18
- if (config.verbose)
19
- console.debug(`[ OPTIMIZELY ] Searching for fragments to inject`);
20
- const componentFragments = {};
21
- files.forEach(file => {
22
- if (!file.document)
23
- return;
24
- const applicableInjections = injections.filter(injection => !injection.pathRegex || (new RegExp(injection.pathRegex)).test(file.location ?? ""));
25
- if (!applicableInjections || applicableInjections.length == 0)
26
- return;
27
- (0, graphql_1.visit)(file.document, {
28
- FragmentDefinition: {
29
- enter(node) {
30
- const matchingInjections = applicableInjections.filter(injection => !injection.nameRegex || (new RegExp(injection.nameRegex)).test(node.name.value));
31
- if (!matchingInjections || matchingInjections.length == 0)
32
- return false;
33
- matchingInjections.forEach(injection => {
34
- if (config.verbose)
35
- console.debug(`[ OPTIMIZELY ] Found ${node.name.value} for ${injection.into} in file ${node.loc?.source?.name}`);
36
- if (!componentFragments[injection.into])
37
- componentFragments[injection.into] = [];
38
- if (!componentFragments[injection.into].some(f => f.name.value == node.name.value))
39
- componentFragments[injection.into].push(node);
40
- });
41
- return undefined;
42
- }
43
- }
44
- });
45
- });
44
+ // Process all documents to extract the fragments that must be injected
45
+ const componentFragments = await (0, performInjections_2.getComponentFragments)(files, transformConfig);
46
46
  // Get the names we actually need to inject into, and return when none are present
47
- const intoNames = Object.getOwnPropertyNames(componentFragments);
47
+ const intoNames = Array.from(componentFragments.keys());
48
48
  if (intoNames.length == 0)
49
49
  return files;
50
50
  if (config.verbose)
51
- console.debug(`[ OPTIMIZELY ] Update queries & fragments using the fragment(s): ${intoNames.join(', ')}`);
51
+ intoNames.forEach(intoName => {
52
+ console.debug(`[ OPTIMIZELY ] Update queries & fragments using the fragment ${intoName} to also use the fragments: ${(componentFragments.get(intoName) ?? []).map(x => x.name).join(',')}`);
53
+ });
52
54
  // Update the documents
53
55
  const transformedFiles = files.map(file => {
54
56
  if (config.verbose)
55
57
  console.debug(`[ OPTIMIZELY ] Processing ${file.location}`);
56
58
  const document = file.document ? (0, graphql_1.visit)(file.document, {
57
- // Remove fragments from the preset, for which the target type does not exist
58
- /*FragmentDefinition: {
59
- enter(node) {
60
- if (file.location && !fs.existsSync(file.location)) {
61
- const typePresent = schema.definitions.some(definition => (definition.kind == Kind.OBJECT_TYPE_DEFINITION || definition.kind == Kind.INTERFACE_TYPE_DEFINITION) && definition.name.value == node.typeCondition.name.value)
62
- if (!typePresent) {
63
- if (config.verbose) console.debug(`[OPTIMIZELY] Type ${ node.typeCondition.name.value } not found, dropping fragment ${ node.name.value }`)
64
- return null
65
- }
66
- }
67
- }
68
- },*/
69
59
  // Replace the fragment occurances
70
60
  SelectionSet: {
71
61
  leave(node, key, parent, path, ancestors) {
@@ -86,10 +76,10 @@ const transform = ({ documents: files, config, schema, pluginContext }) => {
86
76
  console.debug(`[ OPTIMIZELY ] Identified usage of fragment(s) ${sectionsToAdd.join(', ')} in ${parentName}, starting injection procedure`);
87
77
  const newSelections = []; //.filter(selection => !(selection.kind == Kind.FRAGMENT_SPREAD && intoNames.includes(selection.name.value)))
88
78
  sectionsToAdd.forEach(sectionName => {
89
- const addedSelections = componentFragments[sectionName].map(fragment => {
90
- if (newSelections.some(selection => selection.kind == graphql_1.Kind.FRAGMENT_SPREAD && selection.name.value == fragment.name.value)) {
79
+ const addedSelections = (componentFragments.get(sectionName) ?? []).map(fragment => {
80
+ if (newSelections.some(selection => selection.kind == graphql_1.Kind.FRAGMENT_SPREAD && selection.name.value == fragment.name)) {
91
81
  if (config.verbose)
92
- console.debug(`[ OPTIMIZELY ] Fragment ${fragment.name.value} is already adjacent to ${sectionName}`);
82
+ console.debug(`[ OPTIMIZELY ] Fragment ${fragment.name} is already adjacent to ${sectionName}`);
93
83
  return undefined;
94
84
  }
95
85
  /*if (config.verbose)
@@ -99,7 +89,7 @@ const transform = ({ documents: files, config, schema, pluginContext }) => {
99
89
  directives: [],
100
90
  name: {
101
91
  kind: graphql_1.Kind.NAME,
102
- value: fragment.name.value
92
+ value: fragment.name
103
93
  }
104
94
  };
105
95
  }).filter(isNotNullOrUndefined);
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;AAMA,oDAOC;AAVD,qCAAqC;AAGrC,SAAgB,oBAAoB,CAAC,OAA2B;IAE5D,OAAO;QACH,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;KACvC,CAAA;AACL,CAAC;AAEM,MAAM,SAAS,GAAuD,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;IAEhI,IAAI,MAAM,CAAC,OAAO;QACd,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAA;IAC9F,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAA;IAE1C,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO;QACd,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,MAAM,kBAAkB,GAAmD,EAAE,CAAA;IAC7E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC1B,MAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;QAChJ,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC;YAAE,OAAM;QACrE,IAAA,eAAK,EAAC,IAAI,CAAC,QAAQ,EAAE;YACjB,kBAAkB,EAAE;gBAChB,KAAK,CAAC,IAAI;oBACN,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;oBACpJ,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC;wBACrD,OAAO,KAAK,CAAA;oBAChB,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBACnC,IAAI,MAAM,CAAC,OAAO;4BAAE,OAAO,CAAC,KAAK,CAAC,wBAAyB,IAAI,CAAC,IAAI,CAAC,KAAM,QAAS,SAAS,CAAC,IAAK,YAAa,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAK,EAAE,CAAC,CAAA;wBAC1I,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;4BACnC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;wBAC3C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;4BAC9E,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACrD,CAAC,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBACpB,CAAC;aACJ;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,kFAAkF;IAClF,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IAChE,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,MAAM,CAAC,OAAO;QACd,OAAO,CAAC,KAAK,CAAC,oEAAqE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE9G,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtC,IAAI,MAAM,CAAC,OAAO;YACd,OAAO,CAAC,KAAK,CAAC,6BAA8B,IAAI,CAAC,QAAS,EAAE,CAAC,CAAA;QAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,QAAQ,EAAE;YAElD,6EAA6E;YAC7E;;;;;;;;;;gBAUI;YAEJ,kCAAkC;YAClC,YAAY,EAAE;gBACV,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;oBACpC,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAA;oBAC5F,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;yBAChC,GAAG,CAAC,SAAS,CAAC,EAAE;wBACb,IAAI,SAAS,CAAC,IAAI,IAAI,cAAI,CAAC,eAAe;4BACtC,OAAO,SAAS,CAAA;wBACpB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAA;wBAChJ,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK;4BAC1E,OAAO,CAAC,KAAK,CAAC,wBAAyB,SAAS,CAAC,IAAI,CAAC,KAAM,OAAQ,UAAW,OAAQ,YAAa,qBAAqB,CAAC,CAAA;wBAC9H,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;oBACtE,CAAC,CAAC;yBACD,MAAM,CAAC,oBAAoB,CAAC,CAAA;oBACjC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;wBAAE,OAAM;oBAErC,IAAI,MAAM,CAAC,OAAO;wBACd,OAAO,CAAC,KAAK,CAAC,kDAAmD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAE,OAAQ,UAAW,gCAAgC,CAAC,CAAA;oBAGlJ,MAAM,aAAa,GAAqB,EAAE,CAAA,CAAC,6GAA6G;oBACxJ,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;wBAChC,MAAM,eAAe,GAA0B,kBAAkB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;4BAC1F,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,cAAI,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gCACzH,IAAI,MAAM,CAAC,OAAO;oCACd,OAAO,CAAC,KAAK,CAAC,2BAA4B,QAAQ,CAAC,IAAI,CAAC,KAAM,2BAA4B,WAAY,EAAE,CAAC,CAAA;gCAC7G,OAAO,SAAS,CAAA;4BACpB,CAAC;4BACD;uIAC2G;4BAC3G,OAAO;gCACH,IAAI,EAAE,cAAI,CAAC,eAAe;gCAC1B,UAAU,EAAE,EAAE;gCACd,IAAI,EAAE;oCACF,IAAI,EAAE,cAAI,CAAC,IAAI;oCACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;iCAC7B;6BACkB,CAAA;wBAC3B,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;wBAC/B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC7B,IAAI,MAAM,CAAC,OAAO;gCACd,OAAO,CAAC,GAAG,CAAC,kCAAmC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAiB,WAAY,EAAE,CAAC,CAAA;4BACpI,aAAa,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;wBAC1C,CAAC;oBACL,CAAC,CAAC,CAAA;oBAEF,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;wBACzB,OAAM;oBAEV,MAAM,OAAO,GAAsB;wBAC/B,GAAG,IAAI;wBACP,UAAU,EAAE,CAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,aAAa,CAAE;qBACxD,CAAA;oBACD,OAAO,OAAO,CAAA;gBAClB,CAAC;aACJ;SACJ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEd,OAAO;YACH,GAAG,IAAI;YACP,QAAQ,EAAE,QAAQ;SACrB,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,OAAO;QACd,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,OAAO,gBAAgB,CAAA;AAC3B,CAAC,CAAA;AA9HY,QAAA,SAAS,aA8HrB;AAED,kBAAe,EAAE,SAAS,EAAT,iBAAS,EAAE,CAAA;AAE5B,SAAS,oBAAoB,CAAI,MAAiB;IAE9C,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAA;AAClD,CAAC;AACD,SAAS,qBAAqB,CAAC,CAAmD;IAE9E,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI;QAC/C,OAAO,KAAK,CAAA;IAChB,OAAQ,CAAa,CAAC,IAAI,IAAI,cAAI,CAAC,mBAAmB,IAAK,CAAa,CAAC,IAAI,IAAI,cAAI,CAAC,oBAAoB,CAAA;AAC9G,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,14 +1,37 @@
1
1
  import type { FragmentDefinitionNode, OperationDefinitionNode } from 'graphql';
2
+ import type { CmsIntegrationApiOptions } from '@remkoj/optimizely-cms-api';
3
+ import type { ClientPresetConfig as ClientPresetOptions } from '@graphql-codegen/client-preset';
4
+ export type PresetOptions = ClientPresetOptions & PluginOptions & TransformOptions;
5
+ export type PluginOptions = {
6
+ functions?: string[];
7
+ prettyPrintQuery?: boolean;
8
+ clientPath?: string;
9
+ };
2
10
  export type TransformOptions = {
3
11
  /**
4
12
  * Configure fragment injection targets and filters as a set of injection
5
13
  * rules.
6
14
  */
7
15
  injections?: Injection[];
16
+ /**
17
+ * Define whether the injection process should cleanup targeted fragments
18
+ * from the affected queries & fragments. Defaults to "true".
19
+ *
20
+ * Possible options:
21
+ * - `true`: Clean the targeted fragment spreads and proceed to remove the following fragment spreads: BlockData, PageData
22
+ * - `false`: Do not perform any cleaning
23
+ * - string[]: Remove the listed fragment spreads after processing
24
+ */
25
+ cleanup?: boolean | string[];
8
26
  /**
9
27
  * Enable verbose output
10
28
  */
11
29
  verbose?: boolean;
30
+ /**
31
+ * Override the keys to login to Optimizely CMS to fully auto-generate
32
+ * fragments during the compilation process.
33
+ */
34
+ cmsClient?: CmsIntegrationApiOptions;
12
35
  /**
13
36
  * Disables the recursive validation of GraphQL-Codegen and updates the
14
37
  * rules to ensure that the code is properly generated.