@remkoj/optimizely-graph-functions 2.0.4 → 3.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.cms13.js","sourceRoot":"","sources":["../../src/documents/queries.cms13.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX;;;;;;;;;;;;;;;;MAgBE;IACF;;;;;;;;;;;;MAYE;IACF;;;;;;;;;;;;;;;;;MAiBE;CACL,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type Types } from '@graphql-codegen/plugin-helpers';
2
+ type LoaderConfig = {
3
+ pluginContext?: {
4
+ [key: string]: any;
5
+ };
6
+ };
7
+ type LoaderFunction = (documentUri: string, config: LoaderConfig) => Promise<Types.DocumentFile | undefined | void>;
8
+ /**
9
+ * Custom loader for embedded Optimizely CMS 12/13 fragments & queries. It
10
+ * requires the document to be specified as an supported URI.
11
+ *
12
+ * `opti-cms:/(fragments|queries)/(12|13)`
13
+ *
14
+ * @param documentUri The identifier of the embedded fragments/queries to load
15
+ * @param config The configuration
16
+ */
17
+ declare const EmbeddedLoader: LoaderFunction;
18
+ export default EmbeddedLoader;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const graphql_1 = require("graphql");
4
+ /**
5
+ * Custom loader for embedded Optimizely CMS 12/13 fragments & queries. It
6
+ * requires the document to be specified as an supported URI.
7
+ *
8
+ * `opti-cms:/(fragments|queries)/(12|13)`
9
+ *
10
+ * @param documentUri The identifier of the embedded fragments/queries to load
11
+ * @param config The configuration
12
+ */
13
+ const EmbeddedLoader = async (documentUri, config) => {
14
+ const docId = new URL(documentUri);
15
+ if (docId.protocol != "opti-cms:")
16
+ throw new Error("[Optimizely Graph Functions - Embedded Documents] Unsupported protocol, only the \"opti-cms:\" protocol is supported");
17
+ let rawData;
18
+ switch (docId.pathname) {
19
+ case "/fragments/13":
20
+ rawData = require("./documents/fragments.cms13").default;
21
+ break;
22
+ case "/queries/13":
23
+ rawData = require("./documents/queries.cms13").default;
24
+ break;
25
+ case "/fragments/12":
26
+ rawData = require("./documents/fragments.cms12").default;
27
+ break;
28
+ case "/queries/12":
29
+ rawData = require("./documents/queries.cms12").default;
30
+ break;
31
+ default:
32
+ throw new Error(`[Optimizely Graph Functions - Embedded Documents] Path not found: ${docId.pathname}`);
33
+ }
34
+ return generateDocument(rawData, documentUri);
35
+ };
36
+ function generateDocument(rawData, location) {
37
+ if (rawData == undefined)
38
+ return undefined;
39
+ const rawSDL = Array.isArray(rawData) ? rawData.join("\n\n") : rawData;
40
+ const document = (0, graphql_1.parse)(rawSDL);
41
+ return {
42
+ document,
43
+ location,
44
+ rawSDL,
45
+ hash: location
46
+ };
47
+ }
48
+ exports.default = EmbeddedLoader;
49
+ //# sourceMappingURL=embedded-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-loader.js","sourceRoot":"","sources":["../src/embedded-loader.ts"],"names":[],"mappings":";;AACA,qCAA+B;AAU/B;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAoB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW;QAC7B,MAAM,IAAI,KAAK,CAAC,sHAAsH,CAAC,CAAA;IAE3I,IAAI,OAAuC,CAAA;IAC3C,QAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,eAAe;YAChB,OAAO,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAA;YACxD,MAAK;QAET,KAAK,aAAa;YACd,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAA;YACtD,MAAK;QAET,KAAK,eAAe;YAChB,OAAO,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAA;YACxD,MAAK;QAET,KAAK,aAAa;YACd,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAA;YACtD,MAAK;QAET;YACI,MAAM,IAAI,KAAK,CAAC,qEAAsE,KAAK,CAAC,QAAS,EAAE,CAAC,CAAA;IAChH,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,SAAS,gBAAgB,CAAC,OAAsC,EAAE,QAAiB;IAE/E,IAAI,OAAO,IAAI,SAAS;QACpB,OAAO,SAAS,CAAA;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACtE,MAAM,QAAQ,GAAG,IAAA,eAAK,EAAC,MAAM,CAAC,CAAA;IAE9B,OAAO;QACH,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,IAAI,EAAE,QAAQ;KACjB,CAAA;AACL,CAAC;AAED,kBAAe,cAAc,CAAA"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export type PluginOptions = {
4
4
  prettyPrintQuery?: boolean;
5
5
  clientPath?: string;
6
6
  };
7
+ export declare const DefaultFunctions: string[];
7
8
  export declare function pickPluginOptions(options: Record<string, any>): PluginOptions;
8
9
  /**
9
10
  * Validate the plugin configuration
package/dist/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.plugin = exports.validate = void 0;
3
+ exports.plugin = exports.validate = exports.DefaultFunctions = void 0;
4
4
  exports.pickPluginOptions = pickPluginOptions;
5
5
  const graphql_1 = require("graphql");
6
6
  const utils_1 = require("./utils");
7
- const documents_1 = require("./documents");
7
+ exports.DefaultFunctions = ['getContentType', 'getContentByPath', 'getContentById'];
8
8
  function pickPluginOptions(options) {
9
9
  return {
10
- functions: options.functions ?? documents_1.DefaultFunctions,
10
+ ...(options.config ?? {}),
11
+ functions: options.functions ?? exports.DefaultFunctions,
11
12
  prettyPrintQuery: options.prettyPrintQuery ?? false,
12
13
  clientPath: options.clientPath ?? "./graphql"
13
14
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/preset.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type Types } from '@graphql-codegen/plugin-helpers';
2
2
  import { type ClientPresetConfig as ClientPresetOptions } from '@graphql-codegen/client-preset';
3
3
  import { type PluginOptions } from './index';
4
- import { type TransformOptions } from './transform';
4
+ import { type TransformOptions } from './types';
5
5
  export type PresetOptions = ClientPresetOptions & PluginOptions & TransformOptions;
6
6
  export declare const preset: Types.OutputPreset<PresetOptions>;
7
7
  export default preset;
package/dist/preset.js CHANGED
@@ -24,7 +24,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.preset = void 0;
27
- const documents_1 = require("./documents");
28
27
  const graphql_1 = require("graphql");
29
28
  // Import base preset
30
29
  const client_preset_1 = require("@graphql-codegen/client-preset");
@@ -42,25 +41,56 @@ exports.preset = {
42
41
  * @returns An awaitable with the modified list of documents.
43
42
  */
44
43
  prepareDocuments: async (outputFilePath, outputSpecificDocuments) => {
44
+ // Get the configured documents
45
+ const optiDocs = outputSpecificDocuments.filter((x => typeof (x) == 'string' && x.startsWith('opti-cms:')));
46
+ const normalDocs = outputSpecificDocuments.filter(x => !(typeof (x) == 'string' && x.startsWith('opti-cms:')));
45
47
  // Get the base documents
46
48
  const documents = client_preset_1.preset.prepareDocuments ?
47
- await client_preset_1.preset.prepareDocuments(outputFilePath, outputSpecificDocuments) :
48
- [...outputSpecificDocuments, `!${outputFilePath}`];
49
+ await client_preset_1.preset.prepareDocuments(outputFilePath, normalDocs) :
50
+ [...normalDocs, `!${outputFilePath}`];
51
+ // Transform / inject the Opti-CMS documents
52
+ const CmsDocLoaders = (optiDocs.length == 0 ? ['opti-cms:/fragments/13', 'opti-cms:/queries/13'] : optiDocs).map(optiDoc => {
53
+ const loader = {};
54
+ loader[optiDoc] = { loader: "@remkoj/optimizely-graph-functions/loader" };
55
+ return loader;
56
+ });
49
57
  // Create a new, extended, array
50
- return [...documents, ...documents_1.fragments, ...documents_1.queries];
58
+ return [...documents, ...CmsDocLoaders];
51
59
  },
52
60
  buildGeneratesSection: async (options) => {
53
- // Extend the document transforms
61
+ // Extend the default plugin configuration
54
62
  options.config = {
63
+ // Overwriteable defaults
64
+ dedupeFragments: true, // Remove duplicate fragment references
65
+ emitLegacyCommonJSImports: false, //Switch to ESM
66
+ // Provided options
55
67
  ...options.config,
68
+ // Enforced settings
56
69
  namingConvention: "keep", // Keep casing "as-is" from Optimizely Graph
57
70
  };
71
+ // Change the default for fragment masking from 'useFragment' to
72
+ // 'getFragmentData', in order to prevent issues with code checks for
73
+ // React hooks
74
+ if (options.presetConfig.fragmentMasking !== false) {
75
+ options.presetConfig = {
76
+ ...options.presetConfig,
77
+ fragmentMasking: {
78
+ unmaskFunctionName: 'getFragmentData',
79
+ ...(typeof (options.presetConfig?.fragmentMasking) == 'object' ? options.presetConfig?.fragmentMasking : {})
80
+ }
81
+ };
82
+ }
83
+ // Extend the document transforms in order to apply the transformations
84
+ // needed to automatically inject Block, Page & Element fragments
58
85
  options.documentTransforms = [
59
86
  ...(options.documentTransforms || []),
60
87
  {
61
88
  name: 'optly-transform',
62
89
  transformObject: transform_1.default,
63
- config: (0, transform_1.pickTransformOptions)(options.presetConfig)
90
+ config: {
91
+ ...options.config,
92
+ ...(0, transform_1.pickTransformOptions)(options.presetConfig)
93
+ }
64
94
  }
65
95
  ];
66
96
  // The packages contain quite a few utility fragments, however these
@@ -73,6 +103,8 @@ exports.preset = {
73
103
  FragmentDefinition: {
74
104
  enter: (node) => {
75
105
  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)) {
106
+ if (options.presetConfig.verbose)
107
+ console.log(`⚠ Removing fragment ${node.name.value} from the documents, as its target ${node.typeCondition.name.value} is not available in the schema`);
76
108
  return null;
77
109
  }
78
110
  }
@@ -102,16 +134,17 @@ exports.preset = {
102
134
  },
103
135
  {
104
136
  'typescript-graphql-request': {
105
- pureMagicComment: true,
137
+ ...options.config,
106
138
  useTypeImports: true,
107
- dedupeFragments: true,
108
- importOperationTypesFrom: "Schema"
139
+ importOperationTypesFrom: "Schema",
109
140
  }
110
141
  }
111
142
  ],
112
143
  schema: options.schema,
113
144
  schemaAst: options.schemaAst,
114
- config: options.config,
145
+ config: {
146
+ ...options.config,
147
+ },
115
148
  profiler: options.profiler,
116
149
  documents: options.documents,
117
150
  documentTransforms: options.documentTransforms
@@ -130,18 +163,42 @@ exports.preset = {
130
163
  schema: options.schema,
131
164
  schemaAst: options.schemaAst,
132
165
  profiler: options.profiler,
133
- config: (0, index_1.pickPluginOptions)(options.presetConfig),
166
+ config: {
167
+ ...options.config,
168
+ ...(0, index_1.pickPluginOptions)(options.presetConfig),
169
+ },
134
170
  documents: options.documents,
135
171
  documentTransforms: options.documentTransforms
136
172
  });
137
- // Add functions to index plugin
173
+ // Update all sections for Optimizely Graph
138
174
  section.forEach((fileConfig, idx) => {
175
+ // Modify index.ts with additional exports
139
176
  if (fileConfig.filename.endsWith("index.ts")) {
140
177
  section[idx].plugins.unshift({
141
178
  add: {
142
- content: ['export * as Schema from "./graphql";', 'export * from "./functions";', 'export { getSdk, type Sdk } from "./client";']
179
+ content: [
180
+ 'export * as Schema from "./graphql";',
181
+ 'export * from "./functions";',
182
+ 'export { getSdk, type Sdk } from "./client";',
183
+ ]
143
184
  }
144
185
  });
186
+ section[idx].plugins.push({
187
+ add: {
188
+ content: ['', `export const WITH_RECURSIVE_SUPPORT = ${options.presetConfig.recursion === true ? 'true' : 'false'};`]
189
+ }
190
+ });
191
+ }
192
+ // Optimizely Graph supports recursive queries to allow fetching
193
+ // data as created in the CMS. This can cause issues when using
194
+ // multiple GraphQL sources, hence the ability to enable/disalbe
195
+ // the support for recursive queries.
196
+ if (fileConfig.skipDocumentsValidation != true && options.presetConfig.recursion === true) {
197
+ const currentOptions = fileConfig.skipDocumentsValidation || {};
198
+ section[idx].skipDocumentsValidation = {
199
+ ...currentOptions,
200
+ ignoreRules: [...(currentOptions.ignoreRules ?? []), 'NoFragmentCyclesRule']
201
+ };
145
202
  }
146
203
  });
147
204
  return section;
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAgD;AAChD,qCAA8C;AAE9C,qBAAqB;AACrB,kEAAuH;AACvH,kGAAmF;AACnF,gEAAiD;AAEjD,wBAAwB;AACxB,iDAAuE;AACvE,yDAAoF;AAKvE,QAAA,MAAM,GACnB;IACI;;;;;;OAMG;IACH,gBAAgB,EAAE,KAAK,EAAE,cAAgC,EAAE,uBAA+D,EAAE,EAAE;QAC1H,yBAAyB;QACzB,MAAM,SAAS,GAAG,sBAAY,CAAC,gBAAgB,CAAC,CAAC;YAC7C,MAAM,sBAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,uBAAyD,CAAC,CAAC,CAAC;YAChH,CAAC,GAAG,uBAAuB,EAAE,IAAI,cAAc,EAAE,CAAC,CAAA;QAEtD,gCAAgC;QAChC,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,qBAAS,EAAE,GAAG,mBAAO,CAAC,CAAA;IACnD,CAAC;IAED,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAG,EAAE;QACtC,iCAAiC;QACjC,OAAO,CAAC,MAAM,GAAG;YACb,GAAG,OAAO,CAAC,MAAM;YACjB,gBAAgB,EAAE,MAAM,EAAE,4CAA4C;SACzE,CAAA;QACD,OAAO,CAAC,kBAAkB,GAAG;YACzB,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACrC;gBACI,IAAI,EAAE,iBAAiB;gBACvB,eAAe,EAAE,mBAAS;gBAC1B,MAAM,EAAE,IAAA,gCAAoB,EAAC,OAAO,CAAC,YAAY,CAAC;aACrD;SACJ,CAAA;QAED,qEAAqE;QACrE,iEAAiE;QACjE,uEAAuE;QACvE,uCAAuC;QACvC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,GAAG,CAAC,QAAQ,EAAE;oBACpC,kBAAkB,EAAE;wBAChB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;4BACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,cAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,cAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC9K,OAAO,IAAI,CAAA;4BACf,CAAC;wBACL,CAAC;qBACJ;iBACJ,CAAC,CAAA;gBACF,OAAO;oBACH,GAAG,GAAG;oBACN,QAAQ,EAAE,WAAW;iBACxB,CAAA;YACL,CAAC;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QAGF,yBAAyB;QACzB,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEjE,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,GAAI,OAAO,CAAC,aAAa,WAAW;YAC9C,SAAS,EAAE;gBACP,KAAK,EAAE,SAAS;gBAChB,4BAA4B,EAAE,oBAAoB;aACrD;YACD,OAAO,EAAE;gBACL;oBACI,GAAG,EAAE;wBACD,OAAO,EAAE,CAAC,6CAA6C,CAAC;qBAC3D;iBACJ;gBACD;oBACI,4BAA4B,EAAE;wBAC1B,gBAAgB,EAAE,IAAI;wBACtB,cAAc,EAAE,IAAI;wBACpB,eAAe,EAAE,IAAI;wBACrB,wBAAwB,EAAE,QAAQ;qBACrC;iBACJ;aACJ;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SACjD,CAAC,CAAA;QAEF,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,GAAI,OAAO,CAAC,aAAc,cAAc;YAClD,SAAS,EAAE;gBACP,CAAC,iBAAiB,CAAC,EAAE,eAAM;aAC9B;YACD,OAAO,EAAE;gBACL;oBACI,CAAC,iBAAiB,CAAC,EAAE,EAAE;iBAC1B;aACJ;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAA,yBAAiB,EAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SACjD,CAAC,CAAA;QAEF,gCAAgC;QAChC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;YAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACzB,GAAG,EAAE;wBACD,OAAO,EAAE,CAAC,sCAAsC,EAAC,8BAA8B,EAAC,8CAA8C,CAAC;qBAClI;iBACJ,CAAC,CAAA;YACN,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAA;IAClB,CAAC;CACJ,CAAA;AAED,kBAAe,cAAM,CAAA"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
1
  import { type Types } from '@graphql-codegen/plugin-helpers';
2
- import type { Injection } from './types';
3
- export type TransformOptions = {
4
- injections?: Injection[];
5
- verbose?: boolean;
6
- recursion?: boolean;
7
- };
2
+ import type { TransformOptions } from './types';
8
3
  export declare function pickTransformOptions(options: Record<string, any>): TransformOptions;
9
4
  export declare const transform: Types.DocumentTransformFunction<TransformOptions>;
10
5
  declare const _default: {
package/dist/transform.js CHANGED
@@ -1,12 +1,8 @@
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
3
  exports.transform = void 0;
7
4
  exports.pickTransformOptions = pickTransformOptions;
8
5
  const graphql_1 = require("graphql");
9
- const node_fs_1 = __importDefault(require("node:fs"));
10
6
  function pickTransformOptions(options) {
11
7
  return {
12
8
  injections: options.injections ?? [],
@@ -14,10 +10,13 @@ function pickTransformOptions(options) {
14
10
  recursion: options.recursion ?? true
15
11
  };
16
12
  }
17
- function isArray(toTest) { return Array.isArray(toTest); }
18
13
  const transform = ({ documents: files, config, schema, pluginContext }) => {
14
+ if (config.verbose)
15
+ console.debug(`[ OPTIMIZELY ] Starting Optimizely Graph Query & Fragment transformations`);
19
16
  const injections = config.injections ?? [];
20
17
  // Retrieve component fragments
18
+ if (config.verbose)
19
+ console.debug(`[ OPTIMIZELY ] Searching for fragments to inject`);
21
20
  const componentFragments = {};
22
21
  files.forEach(file => {
23
22
  if (!file.document)
@@ -46,82 +45,55 @@ const transform = ({ documents: files, config, schema, pluginContext }) => {
46
45
  });
47
46
  // Get the names we actually need to inject into, and return when none are present
48
47
  const intoNames = Object.getOwnPropertyNames(componentFragments);
49
- // Process recursion
50
- const componentSpreads = {};
51
- if (config.recursion && intoNames.length > 0) {
52
- // Process the fragments, add matching spreads if need be
53
- const recursiveFragments = ["IContentListItem"];
54
- intoNames.forEach(intoName => {
55
- componentFragments[intoName].forEach(fragment => {
56
- (0, graphql_1.visit)(fragment, {
57
- FragmentSpread: {
58
- leave(node, key, parent, path, ancestors) {
59
- if (recursiveFragments.includes(node.name.value) && !isArray(ancestors[0]) && ancestors[0].kind == graphql_1.Kind.FRAGMENT_DEFINITION) {
60
- if (config.verbose)
61
- console.debug(`[ OPTIMIZELY ] Found ${node.name.value} within ${fragment.name.value} for ${intoName}, creating recursive fragment`);
62
- const fields = ancestors.filter(a => !isArray(a) && a.kind != graphql_1.Kind.FRAGMENT_DEFINITION && a.kind != graphql_1.Kind.SELECTION_SET);
63
- if (fields.length < 1)
64
- return undefined;
65
- if (fields.length > 1)
66
- throw new Error("Recursive items on embedded blocks are not supported at the moment");
67
- const newNode = {
68
- kind: graphql_1.Kind.INLINE_FRAGMENT,
69
- typeCondition: ancestors[0].typeCondition,
70
- selectionSet: {
71
- kind: graphql_1.Kind.SELECTION_SET,
72
- selections: [{
73
- kind: graphql_1.Kind.FIELD,
74
- name: fields[0].name,
75
- alias: fields[0].alias,
76
- directives: [{
77
- kind: graphql_1.Kind.DIRECTIVE,
78
- name: { kind: graphql_1.Kind.NAME, value: "recursive" },
79
- arguments: [{
80
- kind: graphql_1.Kind.ARGUMENT,
81
- name: { kind: graphql_1.Kind.NAME, value: "depth" },
82
- value: { kind: graphql_1.Kind.INT, value: "5" }
83
- }]
84
- }],
85
- selectionSet: {
86
- kind: graphql_1.Kind.SELECTION_SET,
87
- selections: recursiveSelections
88
- }
89
- }]
90
- }
91
- };
92
- if (!componentSpreads[intoName])
93
- componentSpreads[intoName] = [];
94
- componentSpreads[intoName].push(newNode);
95
- }
96
- }
97
- }
98
- });
99
- });
100
- });
101
- }
48
+ if (intoNames.length == 0)
49
+ return files;
50
+ if (config.verbose)
51
+ console.debug(`[ OPTIMIZELY ] Update queries & fragments using the fragment(s): ${intoNames.join(', ')}`);
102
52
  // Update the documents
103
- return files.map(file => {
53
+ const transformedFiles = files.map(file => {
54
+ if (config.verbose)
55
+ console.debug(`[ OPTIMIZELY ] Processing ${file.location}`);
104
56
  const document = file.document ? (0, graphql_1.visit)(file.document, {
105
57
  // Remove fragments from the preset, for which the target type does not exist
106
- FragmentDefinition: {
58
+ /*FragmentDefinition: {
107
59
  enter(node) {
108
- if (file.location && !node_fs_1.default.existsSync(file.location)) {
109
- const typePresent = schema.definitions.some(definition => (definition.kind == graphql_1.Kind.OBJECT_TYPE_DEFINITION || definition.kind == graphql_1.Kind.INTERFACE_TYPE_DEFINITION) && definition.name.value == node.typeCondition.name.value);
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)
110
62
  if (!typePresent) {
111
- if (config.verbose)
112
- console.debug(`[OPTIMIZELY] Type ${node.typeCondition.name.value} not found, dropping fragment ${node.name.value}`);
113
- return null;
63
+ if (config.verbose) console.debug(`[OPTIMIZELY] Type ${ node.typeCondition.name.value } not found, dropping fragment ${ node.name.value }`)
64
+ return null
114
65
  }
115
66
  }
116
67
  }
117
- },
118
- // Add items to the selection sets
68
+ },*/
69
+ // Replace the fragment occurances
119
70
  SelectionSet: {
120
- enter(node, key, parent) {
121
- if (!isArray(parent) && parent?.kind == graphql_1.Kind.FRAGMENT_DEFINITION && intoNames.includes(parent.name.value)) {
122
- const addedSelections = componentFragments[parent.name.value].map(fragment => {
123
- if (config.verbose)
124
- console.debug(`[ OPTIMIZELY ] Adding fragment ${fragment.name.value} to ${parent.name.value}`);
71
+ leave(node, key, parent, path, ancestors) {
72
+ const parentName = [...ancestors].reverse().filter(isFragmentOrOperation).at(0)?.name?.value;
73
+ const sectionsToAdd = node.selections
74
+ .map(selection => {
75
+ if (selection.kind != graphql_1.Kind.FRAGMENT_SPREAD)
76
+ return undefined;
77
+ const testableName = config.recursion && selection.name.value.startsWith('Recursive') ? selection.name.value.substring(9) : selection.name.value;
78
+ if (config.recursion && config.verbose && testableName != selection.name.value)
79
+ console.debug(`[ OPTIMIZELY ] Using ${selection.name.value} in ${parentName} as ${testableName} to allow recursion`);
80
+ return intoNames.includes(testableName) ? testableName : undefined;
81
+ })
82
+ .filter(isNotNullOrUndefined);
83
+ if (sectionsToAdd.length == 0)
84
+ return;
85
+ if (config.verbose)
86
+ console.debug(`[ OPTIMIZELY ] Identified usage of fragment(s) ${sectionsToAdd.join(', ')} in ${parentName}, starting injection procedure`);
87
+ const newSelections = []; //.filter(selection => !(selection.kind == Kind.FRAGMENT_SPREAD && intoNames.includes(selection.name.value)))
88
+ 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)) {
91
+ if (config.verbose)
92
+ console.debug(`[ OPTIMIZELY ] Fragment ${fragment.name.value} is already adjacent to ${sectionName}`);
93
+ return undefined;
94
+ }
95
+ /*if (config.verbose)
96
+ console.debug(`[ OPTIMIZELY ] Adding fragment ${ fragment.name.value } adjacent to ${ sectionName }`)*/
125
97
  return {
126
98
  kind: graphql_1.Kind.FRAGMENT_SPREAD,
127
99
  directives: [],
@@ -130,21 +102,20 @@ const transform = ({ documents: files, config, schema, pluginContext }) => {
130
102
  value: fragment.name.value
131
103
  }
132
104
  };
133
- });
134
- componentSpreads[parent.name.value]?.forEach(spread => {
105
+ }).filter(isNotNullOrUndefined);
106
+ if (addedSelections.length > 0) {
135
107
  if (config.verbose)
136
- console.debug(`[ OPTIMIZELY ] Adding inline fragment for ${spread.typeCondition?.name.value ?? "Untyped"} to ${parent.name.value}`);
137
- addedSelections.push(spread);
138
- });
139
- return {
140
- ...node,
141
- selections: [
142
- ...node.selections,
143
- ...addedSelections
144
- ]
145
- };
146
- }
147
- return undefined;
108
+ console.log(`[ OPTIMIZELY ] Added fragments ${addedSelections.map(a => a.name.value).join(', ')} adjacent to ${sectionName}`);
109
+ newSelections.push(...addedSelections);
110
+ }
111
+ });
112
+ if (newSelections.length == 0)
113
+ return;
114
+ const newNode = {
115
+ ...node,
116
+ selections: [...node.selections, ...newSelections]
117
+ };
118
+ return newNode;
148
119
  }
149
120
  }
150
121
  }) : undefined;
@@ -153,11 +124,18 @@ const transform = ({ documents: files, config, schema, pluginContext }) => {
153
124
  document: document,
154
125
  };
155
126
  });
127
+ if (config.verbose)
128
+ console.debug(`[ OPTIMIZELY ] Finished transformation procedure`);
129
+ return transformedFiles;
156
130
  };
157
131
  exports.transform = transform;
158
132
  exports.default = { transform: exports.transform };
159
- // The recursive sections to add
160
- const recursiveSelections = (0, graphql_1.parse)(`fragment IContentListItem on _IContent {
161
- ...IContentData
162
- }`).definitions[0]?.selectionSet.selections || [];
133
+ function isNotNullOrUndefined(toTest) {
134
+ return toTest !== null && toTest !== undefined;
135
+ }
136
+ function isFragmentOrOperation(x) {
137
+ if (Array.isArray(x) || x == undefined || x == null)
138
+ return false;
139
+ return x.kind == graphql_1.Kind.FRAGMENT_DEFINITION || x.kind == graphql_1.Kind.OPERATION_DEFINITION;
140
+ }
163
141
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,24 @@
1
1
  import type { FragmentDefinitionNode, OperationDefinitionNode } from 'graphql';
2
+ export type TransformOptions = {
3
+ /**
4
+ * Configure fragment injection targets and filters as a set of injection
5
+ * rules.
6
+ */
7
+ injections?: Injection[];
8
+ /**
9
+ * Enable verbose output
10
+ */
11
+ verbose?: boolean;
12
+ /**
13
+ * Disables the recursive validation of GraphQL-Codegen and updates the
14
+ * rules to ensure that the code is properly generated.
15
+ *
16
+ * *NOTE:* This requires a custom resolution of the
17
+ * `@graphql-codegen/visitor-plugin-common` package, which patches an unhandled
18
+ * infinite loop when the recursive validation has been disabled.
19
+ */
20
+ recursion?: boolean;
21
+ };
2
22
  export type Injection = {
3
23
  into: string;
4
24
  nameRegex?: string;