Initialisation
Added the packages and files for the backend server
This commit is contained in:
44
node_modules/@graphql-tools/merge/esm/extensions.js
generated
vendored
Normal file
44
node_modules/@graphql-tools/merge/esm/extensions.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import { mergeDeep } from '@graphql-tools/utils';
|
||||
export { extractExtensionsFromSchema } from '@graphql-tools/utils';
|
||||
export function mergeExtensions(extensions) {
|
||||
return mergeDeep(extensions);
|
||||
}
|
||||
function applyExtensionObject(obj, extensions) {
|
||||
if (!obj) {
|
||||
return;
|
||||
}
|
||||
obj.extensions = mergeDeep([obj.extensions || {}, extensions || {}]);
|
||||
}
|
||||
export function applyExtensions(schema, extensions) {
|
||||
applyExtensionObject(schema, extensions.schemaExtensions);
|
||||
for (const [typeName, data] of Object.entries(extensions.types || {})) {
|
||||
const type = schema.getType(typeName);
|
||||
if (type) {
|
||||
applyExtensionObject(type, data.extensions);
|
||||
if (data.type === 'object' || data.type === 'interface') {
|
||||
for (const [fieldName, fieldData] of Object.entries(data.fields)) {
|
||||
const field = type.getFields()[fieldName];
|
||||
if (field) {
|
||||
applyExtensionObject(field, fieldData.extensions);
|
||||
for (const [arg, argData] of Object.entries(fieldData.arguments)) {
|
||||
applyExtensionObject(field.args.find(a => a.name === arg), argData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (data.type === 'input') {
|
||||
for (const [fieldName, fieldData] of Object.entries(data.fields)) {
|
||||
const field = type.getFields()[fieldName];
|
||||
applyExtensionObject(field, fieldData.extensions);
|
||||
}
|
||||
}
|
||||
else if (data.type === 'enum') {
|
||||
for (const [valueName, valueData] of Object.entries(data.values)) {
|
||||
const value = type.getValue(valueName);
|
||||
applyExtensionObject(value, valueData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return schema;
|
||||
}
|
||||
Reference in New Issue
Block a user