graphql-codegen-core
Version:
GraphQL types and code generator based on schema
49 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var graphql_1 = require("graphql");
var debugging_1 = require("../debugging");
function isRequired(type) {
var stringType = String(type);
return stringType.lastIndexOf('!') === stringType.length - 1;
}
exports.isRequired = isRequired;
function isNullable(type) {
var stringType = String(type);
return isArray(type) && !stringType.includes('!]');
}
exports.isNullable = isNullable;
function isArray(type) {
return String(type).indexOf('[') > -1;
}
exports.isArray = isArray;
function dimensionOfArray(type) {
if (isArray(type)) {
var dimension = 0;
var characters = Array.from(String(type));
for (var _i = 0, characters_1 = characters; _i < characters_1.length; _i++) {
var char = characters_1[_i];
if (char !== '[') {
return dimension;
}
else {
dimension++;
}
}
}
return -1;
}
exports.dimensionOfArray = dimensionOfArray;
function resolveType(type) {
var name = graphql_1.getNamedType(type).name;
debugging_1.debugLog("[resolveType] resolving type " + name);
return {
name: name,
raw: String(type),
isRequired: isRequired(type),
isArray: isArray(type),
isNullableArray: isNullable(type),
dimensionOfArray: dimensionOfArray(type)
};
}
exports.resolveType = resolveType;
//# sourceMappingURL=resolve-type.js.map