graphql-paper
Version:
A flexible in-memory store based on a GraphQL Schema
18 lines (17 loc) • 1.03 kB
JavaScript
import { isObjectType } from 'graphql';
function storeTypenamesFromSchema(schema) {
var storeTypenames = [];
var typeMap = schema.getTypeMap();
for (var typeName in typeMap) {
var _schema$getQueryType, _schema$getMutationTy, _schema$getSubscripti;
var type = typeMap[typeName];
var isInternalType = type.name.startsWith('__');
var rootTypeNames = [(_schema$getQueryType = schema.getQueryType()) === null || _schema$getQueryType === void 0 ? void 0 : _schema$getQueryType.name, (_schema$getMutationTy = schema.getMutationType()) === null || _schema$getMutationTy === void 0 ? void 0 : _schema$getMutationTy.name, (_schema$getSubscripti = schema.getSubscriptionType()) === null || _schema$getSubscripti === void 0 ? void 0 : _schema$getSubscripti.name];
if (isObjectType(type) && !isInternalType && !rootTypeNames.includes(type.name)) {
storeTypenames.push(type.name);
}
}
return storeTypenames;
}
export { storeTypenamesFromSchema };
//# sourceMappingURL=store-typenames-from-schema.mjs.map