@graphql-mesh/transform-federation 0.104.11 → 0.104.12-alpha-20250905102756-036568e64f83b360f631264a630ed9ce6b261da0

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 (3) hide show
  1. package/cjs/index.js +80 -78
  2. package/esm/index.js +80 -78
  3. package/package.json +1 -1
package/cjs/index.js CHANGED
@@ -32,96 +32,98 @@ class FederationTransform {
32
32
  rawSource.merge = {};
33
33
  if (this.config?.types) {
34
34
  const queryType = schema.getQueryType();
35
- const queryTypeFields = queryType.getFields();
36
- for (const type of this.config.types) {
37
- rawSource.merge[type.name] = {};
38
- const typeObj = schema.getType(type.name);
39
- typeObj.extensions = typeObj.extensions || {};
40
- const typeDirectivesObj = (typeObj.extensions.directives =
41
- typeObj.extensions.directives || {});
42
- if (type.config?.key) {
43
- typeDirectivesObj.key = type.config.key;
44
- }
45
- if (type.config?.shareable) {
46
- typeDirectivesObj.shareable = type.config.shareable;
47
- }
48
- if (type.config?.extends) {
49
- typeDirectivesObj.extends = type.config.extends;
50
- }
51
- const typeFieldObjs = typeObj.getFields();
52
- if (type.config?.fields) {
53
- for (const field of type.config.fields) {
54
- const typeField = typeFieldObjs[field.name];
55
- if (typeField) {
56
- typeField.extensions = typeField.extensions || {};
57
- const directivesObj = (typeField.extensions.directives =
58
- typeField.extensions.directives || {});
59
- Object.assign(directivesObj, field.config);
60
- }
61
- rawSource.merge[type.name].fields = rawSource.merge[type.name].fields || {};
62
- rawSource.merge[type.name].fields[field.name] =
63
- rawSource.merge[type.name].fields[field.name] || {};
64
- if (field.config.requires) {
65
- rawSource.merge[type.name].fields[field.name].computed = true;
66
- rawSource.merge[type.name].fields[field.name].selectionSet =
67
- `{ ${field.config.requires} }`;
68
- }
35
+ if (queryType) {
36
+ const queryTypeFields = queryType.getFields();
37
+ for (const type of this.config.types) {
38
+ rawSource.merge[type.name] = {};
39
+ const typeObj = schema.getType(type.name);
40
+ typeObj.extensions = typeObj.extensions || {};
41
+ const typeDirectivesObj = (typeObj.extensions.directives =
42
+ typeObj.extensions.directives || {});
43
+ if (type.config?.key) {
44
+ typeDirectivesObj.key = type.config.key;
69
45
  }
70
- }
71
- // If a field is a key field, it should be GraphQLID
72
- if (type.config?.key) {
73
- let selectionSetContent = '';
74
- for (const keyField of type.config.key) {
75
- selectionSetContent += '\n';
76
- selectionSetContent += keyField.fields || '';
46
+ if (type.config?.shareable) {
47
+ typeDirectivesObj.shareable = type.config.shareable;
77
48
  }
78
- if (selectionSetContent) {
79
- rawSource.merge[type.name].selectionSet = `{ ${selectionSetContent} }`;
49
+ if (type.config?.extends) {
50
+ typeDirectivesObj.extends = type.config.extends;
80
51
  }
81
- }
82
- let resolveReference;
83
- if (type.config?.resolveReference) {
84
- const resolveReferenceConfig = type.config.resolveReference;
85
- if (typeof resolveReferenceConfig === 'string') {
86
- const fn$ = (0, utils_1.loadFromModuleExportExpression)(resolveReferenceConfig, {
87
- cwd: this.baseDir,
88
- defaultExportName: 'default',
89
- importFn: this.importFn,
90
- });
91
- resolveReference = (...args) => fn$.then(fn => fn(...args));
52
+ const typeFieldObjs = typeObj.getFields();
53
+ if (type.config?.fields) {
54
+ for (const field of type.config.fields) {
55
+ const typeField = typeFieldObjs[field.name];
56
+ if (typeField) {
57
+ typeField.extensions = typeField.extensions || {};
58
+ const directivesObj = (typeField.extensions.directives =
59
+ typeField.extensions.directives || {});
60
+ Object.assign(directivesObj, field.config);
61
+ }
62
+ rawSource.merge[type.name].fields = rawSource.merge[type.name].fields || {};
63
+ rawSource.merge[type.name].fields[field.name] =
64
+ rawSource.merge[type.name].fields[field.name] || {};
65
+ if (field.config.requires) {
66
+ rawSource.merge[type.name].fields[field.name].computed = true;
67
+ rawSource.merge[type.name].fields[field.name].selectionSet =
68
+ `{ ${field.config.requires} }`;
69
+ }
70
+ }
92
71
  }
93
- else if (typeof resolveReferenceConfig === 'function') {
94
- resolveReference = resolveReferenceConfig;
72
+ // If a field is a key field, it should be GraphQLID
73
+ if (type.config?.key) {
74
+ let selectionSetContent = '';
75
+ for (const keyField of type.config.key) {
76
+ selectionSetContent += '\n';
77
+ selectionSetContent += keyField.fields || '';
78
+ }
79
+ if (selectionSetContent) {
80
+ rawSource.merge[type.name].selectionSet = `{ ${selectionSetContent} }`;
81
+ }
95
82
  }
96
- else {
97
- const queryField = queryTypeFields[resolveReferenceConfig.queryFieldName];
98
- resolveReference = async (root, context, info) => {
99
- const args = {};
100
- for (const argName in resolveReferenceConfig.args) {
101
- const argVal = string_interpolation_1.stringInterpolator.parse(resolveReferenceConfig.args[argName], {
83
+ let resolveReference;
84
+ if (type.config?.resolveReference) {
85
+ const resolveReferenceConfig = type.config.resolveReference;
86
+ if (typeof resolveReferenceConfig === 'string') {
87
+ const fn$ = (0, utils_1.loadFromModuleExportExpression)(resolveReferenceConfig, {
88
+ cwd: this.baseDir,
89
+ defaultExportName: 'default',
90
+ importFn: this.importFn,
91
+ });
92
+ resolveReference = (...args) => fn$.then(fn => fn(...args));
93
+ }
94
+ else if (typeof resolveReferenceConfig === 'function') {
95
+ resolveReference = resolveReferenceConfig;
96
+ }
97
+ else {
98
+ const queryField = queryTypeFields[resolveReferenceConfig.queryFieldName];
99
+ resolveReference = async (root, context, info) => {
100
+ const args = {};
101
+ for (const argName in resolveReferenceConfig.args) {
102
+ const argVal = string_interpolation_1.stringInterpolator.parse(resolveReferenceConfig.args[argName], {
103
+ root,
104
+ args,
105
+ context,
106
+ info,
107
+ env: process.env,
108
+ });
109
+ if (argVal) {
110
+ (0, dset_1.dset)(args, argName, argVal);
111
+ }
112
+ }
113
+ const result = await context[this.apiName].Query[queryField.name]({
102
114
  root,
103
115
  args,
104
116
  context,
105
117
  info,
106
- env: process.env,
107
118
  });
108
- if (argVal) {
109
- (0, dset_1.dset)(args, argName, argVal);
110
- }
111
- }
112
- const result = await context[this.apiName].Query[queryField.name]({
113
- root,
114
- args,
115
- context,
116
- info,
117
- });
118
- return {
119
- ...root,
120
- ...result,
119
+ return {
120
+ ...root,
121
+ ...result,
122
+ };
121
123
  };
122
- };
124
+ }
125
+ rawSource.merge[type.name].resolve = resolveReference;
123
126
  }
124
- rawSource.merge[type.name].resolve = resolveReference;
125
127
  }
126
128
  }
127
129
  }
package/esm/index.js CHANGED
@@ -30,96 +30,98 @@ export default class FederationTransform {
30
30
  rawSource.merge = {};
31
31
  if (this.config?.types) {
32
32
  const queryType = schema.getQueryType();
33
- const queryTypeFields = queryType.getFields();
34
- for (const type of this.config.types) {
35
- rawSource.merge[type.name] = {};
36
- const typeObj = schema.getType(type.name);
37
- typeObj.extensions = typeObj.extensions || {};
38
- const typeDirectivesObj = (typeObj.extensions.directives =
39
- typeObj.extensions.directives || {});
40
- if (type.config?.key) {
41
- typeDirectivesObj.key = type.config.key;
42
- }
43
- if (type.config?.shareable) {
44
- typeDirectivesObj.shareable = type.config.shareable;
45
- }
46
- if (type.config?.extends) {
47
- typeDirectivesObj.extends = type.config.extends;
48
- }
49
- const typeFieldObjs = typeObj.getFields();
50
- if (type.config?.fields) {
51
- for (const field of type.config.fields) {
52
- const typeField = typeFieldObjs[field.name];
53
- if (typeField) {
54
- typeField.extensions = typeField.extensions || {};
55
- const directivesObj = (typeField.extensions.directives =
56
- typeField.extensions.directives || {});
57
- Object.assign(directivesObj, field.config);
58
- }
59
- rawSource.merge[type.name].fields = rawSource.merge[type.name].fields || {};
60
- rawSource.merge[type.name].fields[field.name] =
61
- rawSource.merge[type.name].fields[field.name] || {};
62
- if (field.config.requires) {
63
- rawSource.merge[type.name].fields[field.name].computed = true;
64
- rawSource.merge[type.name].fields[field.name].selectionSet =
65
- `{ ${field.config.requires} }`;
66
- }
33
+ if (queryType) {
34
+ const queryTypeFields = queryType.getFields();
35
+ for (const type of this.config.types) {
36
+ rawSource.merge[type.name] = {};
37
+ const typeObj = schema.getType(type.name);
38
+ typeObj.extensions = typeObj.extensions || {};
39
+ const typeDirectivesObj = (typeObj.extensions.directives =
40
+ typeObj.extensions.directives || {});
41
+ if (type.config?.key) {
42
+ typeDirectivesObj.key = type.config.key;
67
43
  }
68
- }
69
- // If a field is a key field, it should be GraphQLID
70
- if (type.config?.key) {
71
- let selectionSetContent = '';
72
- for (const keyField of type.config.key) {
73
- selectionSetContent += '\n';
74
- selectionSetContent += keyField.fields || '';
44
+ if (type.config?.shareable) {
45
+ typeDirectivesObj.shareable = type.config.shareable;
75
46
  }
76
- if (selectionSetContent) {
77
- rawSource.merge[type.name].selectionSet = `{ ${selectionSetContent} }`;
47
+ if (type.config?.extends) {
48
+ typeDirectivesObj.extends = type.config.extends;
78
49
  }
79
- }
80
- let resolveReference;
81
- if (type.config?.resolveReference) {
82
- const resolveReferenceConfig = type.config.resolveReference;
83
- if (typeof resolveReferenceConfig === 'string') {
84
- const fn$ = loadFromModuleExportExpression(resolveReferenceConfig, {
85
- cwd: this.baseDir,
86
- defaultExportName: 'default',
87
- importFn: this.importFn,
88
- });
89
- resolveReference = (...args) => fn$.then(fn => fn(...args));
50
+ const typeFieldObjs = typeObj.getFields();
51
+ if (type.config?.fields) {
52
+ for (const field of type.config.fields) {
53
+ const typeField = typeFieldObjs[field.name];
54
+ if (typeField) {
55
+ typeField.extensions = typeField.extensions || {};
56
+ const directivesObj = (typeField.extensions.directives =
57
+ typeField.extensions.directives || {});
58
+ Object.assign(directivesObj, field.config);
59
+ }
60
+ rawSource.merge[type.name].fields = rawSource.merge[type.name].fields || {};
61
+ rawSource.merge[type.name].fields[field.name] =
62
+ rawSource.merge[type.name].fields[field.name] || {};
63
+ if (field.config.requires) {
64
+ rawSource.merge[type.name].fields[field.name].computed = true;
65
+ rawSource.merge[type.name].fields[field.name].selectionSet =
66
+ `{ ${field.config.requires} }`;
67
+ }
68
+ }
90
69
  }
91
- else if (typeof resolveReferenceConfig === 'function') {
92
- resolveReference = resolveReferenceConfig;
70
+ // If a field is a key field, it should be GraphQLID
71
+ if (type.config?.key) {
72
+ let selectionSetContent = '';
73
+ for (const keyField of type.config.key) {
74
+ selectionSetContent += '\n';
75
+ selectionSetContent += keyField.fields || '';
76
+ }
77
+ if (selectionSetContent) {
78
+ rawSource.merge[type.name].selectionSet = `{ ${selectionSetContent} }`;
79
+ }
93
80
  }
94
- else {
95
- const queryField = queryTypeFields[resolveReferenceConfig.queryFieldName];
96
- resolveReference = async (root, context, info) => {
97
- const args = {};
98
- for (const argName in resolveReferenceConfig.args) {
99
- const argVal = stringInterpolator.parse(resolveReferenceConfig.args[argName], {
81
+ let resolveReference;
82
+ if (type.config?.resolveReference) {
83
+ const resolveReferenceConfig = type.config.resolveReference;
84
+ if (typeof resolveReferenceConfig === 'string') {
85
+ const fn$ = loadFromModuleExportExpression(resolveReferenceConfig, {
86
+ cwd: this.baseDir,
87
+ defaultExportName: 'default',
88
+ importFn: this.importFn,
89
+ });
90
+ resolveReference = (...args) => fn$.then(fn => fn(...args));
91
+ }
92
+ else if (typeof resolveReferenceConfig === 'function') {
93
+ resolveReference = resolveReferenceConfig;
94
+ }
95
+ else {
96
+ const queryField = queryTypeFields[resolveReferenceConfig.queryFieldName];
97
+ resolveReference = async (root, context, info) => {
98
+ const args = {};
99
+ for (const argName in resolveReferenceConfig.args) {
100
+ const argVal = stringInterpolator.parse(resolveReferenceConfig.args[argName], {
101
+ root,
102
+ args,
103
+ context,
104
+ info,
105
+ env: process.env,
106
+ });
107
+ if (argVal) {
108
+ dset(args, argName, argVal);
109
+ }
110
+ }
111
+ const result = await context[this.apiName].Query[queryField.name]({
100
112
  root,
101
113
  args,
102
114
  context,
103
115
  info,
104
- env: process.env,
105
116
  });
106
- if (argVal) {
107
- dset(args, argName, argVal);
108
- }
109
- }
110
- const result = await context[this.apiName].Query[queryField.name]({
111
- root,
112
- args,
113
- context,
114
- info,
115
- });
116
- return {
117
- ...root,
118
- ...result,
117
+ return {
118
+ ...root,
119
+ ...result,
120
+ };
119
121
  };
120
- };
122
+ }
123
+ rawSource.merge[type.name].resolve = resolveReference;
121
124
  }
122
- rawSource.merge[type.name].resolve = resolveReference;
123
125
  }
124
126
  }
125
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-mesh/transform-federation",
3
- "version": "0.104.11",
3
+ "version": "0.104.12-alpha-20250905102756-036568e64f83b360f631264a630ed9ce6b261da0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "graphql": "*"