@graphql-mesh/fusion-composition 0.8.34 → 0.8.35

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.
@@ -7,9 +7,12 @@ function createPrefixTransform({ value, ignore = [], includeRootOperations = fal
7
7
  return function prefixTransform(schema, subgraphConfig) {
8
8
  value = value || `${subgraphConfig.name}_`;
9
9
  const transforms = [];
10
+ const rootTypes = (0, utils_1.getRootTypeNames)(schema);
10
11
  if (includeRootOperations) {
11
12
  transforms.push((0, rename_js_1.createRenameFieldTransform)(({ typeName, fieldName }) => {
12
- if (ignore.includes(typeName) || ignore.includes(`${typeName}.${fieldName}`)) {
13
+ if (ignore.includes(typeName) ||
14
+ ignore.includes(`${typeName}.${fieldName}`) ||
15
+ fieldName.startsWith('_encapsulated')) {
13
16
  return fieldName;
14
17
  }
15
18
  return `${value}${fieldName}`;
@@ -17,7 +20,7 @@ function createPrefixTransform({ value, ignore = [], includeRootOperations = fal
17
20
  }
18
21
  if (includeTypes) {
19
22
  transforms.push((0, rename_js_1.createRenameTypeTransform)(({ typeName }) => {
20
- if (ignore.includes(typeName)) {
23
+ if (rootTypes.has(typeName) || ignore.includes(typeName)) {
21
24
  return typeName;
22
25
  }
23
26
  return `${value}${typeName}`;
@@ -182,7 +182,7 @@ function createRenameTypeTransform(renameFn, kind = utils_1.MapperKind.TYPE) {
182
182
  return function renameTypeTransform(schema, subgraphConfig) {
183
183
  const rootTypes = (0, utils_1.getRootTypes)(schema);
184
184
  const renamedTypeMap = new Map();
185
- return (0, utils_1.mapSchema)(schema, {
185
+ const renamedTypes = (0, utils_1.mapSchema)(schema, {
186
186
  [kind]: type => {
187
187
  if ((0, graphql_1.isSpecifiedScalarType)(type) || rootTypes.has(type)) {
188
188
  return type;
@@ -201,6 +201,8 @@ function createRenameTypeTransform(renameFn, kind = utils_1.MapperKind.TYPE) {
201
201
  name: newName,
202
202
  });
203
203
  },
204
+ });
205
+ const renamedFieldAndTypes = (0, utils_1.mapSchema)(renamedTypes, {
204
206
  [utils_1.MapperKind.FIELD](field) {
205
207
  const fieldDirectives = (0, utils_1.getDirectiveExtensions)(field, schema);
206
208
  if (fieldDirectives?.resolveTo) {
@@ -214,13 +216,17 @@ function createRenameTypeTransform(renameFn, kind = utils_1.MapperKind.TYPE) {
214
216
  return field;
215
217
  },
216
218
  });
219
+ return renamedFieldAndTypes;
217
220
  };
218
221
  }
219
222
  function createRenameFieldTransform(renameFn, kind = utils_1.MapperKind.FIELD) {
220
223
  return function renameFieldTransform(schema, subgraphConfig) {
221
224
  const fieldRenameMap = new Map();
222
- const mapper = {
225
+ const fieldRenameMapper = {
223
226
  [kind]: (field, fieldName, typeName) => {
227
+ if (fieldName.startsWith('_encapsulated')) {
228
+ return [fieldName, field];
229
+ }
224
230
  const type = schema.getType(typeName);
225
231
  const newFieldName = renameFn({
226
232
  typeName,
@@ -235,7 +241,15 @@ function createRenameFieldTransform(renameFn, kind = utils_1.MapperKind.FIELD) {
235
241
  fieldRenameMap.set(typeName, typeFieldRenameMap);
236
242
  }
237
243
  typeFieldRenameMap.set(fieldName, newFieldName);
238
- return [newFieldName, resolveToUpdater(field, schema)];
244
+ return [newFieldName, field];
245
+ },
246
+ };
247
+ const resolverUpdaterMapper = {
248
+ [kind]: (field, fieldName) => {
249
+ if (fieldName.startsWith('_encapsulated')) {
250
+ return [fieldName, field];
251
+ }
252
+ return [fieldName, resolveToUpdater(field, schema)];
239
253
  },
240
254
  };
241
255
  function resolveToUpdater(field, schema) {
@@ -251,6 +265,6 @@ function createRenameFieldTransform(renameFn, kind = utils_1.MapperKind.FIELD) {
251
265
  fieldExtensions.directives = fieldDirectives;
252
266
  return field;
253
267
  }
254
- return (0, utils_1.mapSchema)(schema, mapper);
268
+ return (0, utils_1.mapSchema)((0, utils_1.mapSchema)(schema, fieldRenameMapper), resolverUpdaterMapper);
255
269
  };
256
270
  }
@@ -1,12 +1,15 @@
1
- import { MapperKind } from '@graphql-tools/utils';
1
+ import { getRootTypeNames, MapperKind } from '@graphql-tools/utils';
2
2
  import { createRenameFieldTransform, createRenameTypeTransform } from './rename.js';
3
3
  export function createPrefixTransform({ value, ignore = [], includeRootOperations = false, includeTypes = true, } = {}) {
4
4
  return function prefixTransform(schema, subgraphConfig) {
5
5
  value = value || `${subgraphConfig.name}_`;
6
6
  const transforms = [];
7
+ const rootTypes = getRootTypeNames(schema);
7
8
  if (includeRootOperations) {
8
9
  transforms.push(createRenameFieldTransform(({ typeName, fieldName }) => {
9
- if (ignore.includes(typeName) || ignore.includes(`${typeName}.${fieldName}`)) {
10
+ if (ignore.includes(typeName) ||
11
+ ignore.includes(`${typeName}.${fieldName}`) ||
12
+ fieldName.startsWith('_encapsulated')) {
10
13
  return fieldName;
11
14
  }
12
15
  return `${value}${fieldName}`;
@@ -14,7 +17,7 @@ export function createPrefixTransform({ value, ignore = [], includeRootOperation
14
17
  }
15
18
  if (includeTypes) {
16
19
  transforms.push(createRenameTypeTransform(({ typeName }) => {
17
- if (ignore.includes(typeName)) {
20
+ if (rootTypes.has(typeName) || ignore.includes(typeName)) {
18
21
  return typeName;
19
22
  }
20
23
  return `${value}${typeName}`;
@@ -176,7 +176,7 @@ export function createRenameTypeTransform(renameFn, kind = MapperKind.TYPE) {
176
176
  return function renameTypeTransform(schema, subgraphConfig) {
177
177
  const rootTypes = getRootTypes(schema);
178
178
  const renamedTypeMap = new Map();
179
- return mapSchema(schema, {
179
+ const renamedTypes = mapSchema(schema, {
180
180
  [kind]: type => {
181
181
  if (isSpecifiedScalarType(type) || rootTypes.has(type)) {
182
182
  return type;
@@ -195,6 +195,8 @@ export function createRenameTypeTransform(renameFn, kind = MapperKind.TYPE) {
195
195
  name: newName,
196
196
  });
197
197
  },
198
+ });
199
+ const renamedFieldAndTypes = mapSchema(renamedTypes, {
198
200
  [MapperKind.FIELD](field) {
199
201
  const fieldDirectives = getDirectiveExtensions(field, schema);
200
202
  if (fieldDirectives?.resolveTo) {
@@ -208,13 +210,17 @@ export function createRenameTypeTransform(renameFn, kind = MapperKind.TYPE) {
208
210
  return field;
209
211
  },
210
212
  });
213
+ return renamedFieldAndTypes;
211
214
  };
212
215
  }
213
216
  export function createRenameFieldTransform(renameFn, kind = MapperKind.FIELD) {
214
217
  return function renameFieldTransform(schema, subgraphConfig) {
215
218
  const fieldRenameMap = new Map();
216
- const mapper = {
219
+ const fieldRenameMapper = {
217
220
  [kind]: (field, fieldName, typeName) => {
221
+ if (fieldName.startsWith('_encapsulated')) {
222
+ return [fieldName, field];
223
+ }
218
224
  const type = schema.getType(typeName);
219
225
  const newFieldName = renameFn({
220
226
  typeName,
@@ -229,7 +235,15 @@ export function createRenameFieldTransform(renameFn, kind = MapperKind.FIELD) {
229
235
  fieldRenameMap.set(typeName, typeFieldRenameMap);
230
236
  }
231
237
  typeFieldRenameMap.set(fieldName, newFieldName);
232
- return [newFieldName, resolveToUpdater(field, schema)];
238
+ return [newFieldName, field];
239
+ },
240
+ };
241
+ const resolverUpdaterMapper = {
242
+ [kind]: (field, fieldName) => {
243
+ if (fieldName.startsWith('_encapsulated')) {
244
+ return [fieldName, field];
245
+ }
246
+ return [fieldName, resolveToUpdater(field, schema)];
233
247
  },
234
248
  };
235
249
  function resolveToUpdater(field, schema) {
@@ -245,6 +259,6 @@ export function createRenameFieldTransform(renameFn, kind = MapperKind.FIELD) {
245
259
  fieldExtensions.directives = fieldDirectives;
246
260
  return field;
247
261
  }
248
- return mapSchema(schema, mapper);
262
+ return mapSchema(mapSchema(schema, fieldRenameMapper), resolverUpdaterMapper);
249
263
  };
250
264
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-mesh/fusion-composition",
3
- "version": "0.8.34",
3
+ "version": "0.8.35",
4
4
  "description": "Basic composition utility for Fusion spec",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -11,7 +11,7 @@
11
11
  "@graphql-tools/schema": "^10.0.31",
12
12
  "@graphql-tools/stitching-directives": "^4.0.17",
13
13
  "@graphql-tools/utils": "^11.0.0",
14
- "@theguild/federation-composition": "^0.22.0",
14
+ "@theguild/federation-composition": "^0.22.1",
15
15
  "change-case": "^4.1.2",
16
16
  "graphql-scalars": "^1.23.0",
17
17
  "minimatch": "^10.2.4",