@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
52 lines (51 loc) • 1.86 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@nestjs/common';
let TypeFieldsAccessor = class TypeFieldsAccessor {
extractFromInputType(gqlType) {
const fieldsMap = gqlType.getFields();
const fieldsConfig = {};
for (const key in fieldsMap) {
const targetField = fieldsMap[key];
fieldsConfig[key] = {
type: targetField.type,
description: targetField.description,
defaultValue: targetField.defaultValue,
astNode: targetField.astNode,
extensions: targetField.extensions,
};
}
return fieldsConfig;
}
extractFromInterfaceOrObjectType(type) {
const fieldsMap = type.getFields();
const fieldsConfig = {};
for (const key in fieldsMap) {
const targetField = fieldsMap[key];
const args = {};
targetField.args.forEach((item) => {
args[item.name] = {
type: item.type,
defaultValue: item.defaultValue,
description: item.description,
deprecationReason: item.deprecationReason,
astNode: item.astNode,
extensions: item.extensions,
};
});
fieldsConfig[key] = {
type: targetField.type,
description: targetField.description,
deprecationReason: targetField.deprecationReason,
extensions: targetField.extensions,
astNode: targetField.astNode,
resolve: targetField.resolve,
args,
};
}
return fieldsConfig;
}
};
TypeFieldsAccessor = __decorate([
Injectable()
], TypeFieldsAccessor);
export { TypeFieldsAccessor };