@kazekyo/nau-graphql-codegen-preset
Version:
A GraphQL Code Generator preset for Nau
51 lines (50 loc) • 8.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validate = exports.plugin = void 0;
var _graphql = require("graphql");
var _path = require("path");
var _nonNullable = require("../../utils/nonNullable");
var _visitor = require("./visitor");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
var plugin = function plugin(schema, _, config) {
var documentFiles = config.documentFiles;
var documents = documentFiles.map(function (file) {
return file.document;
}).filter(_nonNullable.nonNullable);
var allAst = (0, _graphql.concatAST)(documents);
var allFragments = [].concat(_toConsumableArray(allAst.definitions.filter(function (d) {
return d.kind === _graphql.Kind.FRAGMENT_DEFINITION;
}).map(function (fragmentDef) {
return {
node: fragmentDef,
name: fragmentDef.name.value,
onType: fragmentDef.typeCondition.name.value,
isExternal: false
};
})), _toConsumableArray(config.externalFragments || []));
var typeInfo = new _graphql.TypeInfo(schema);
var visitor = new _visitor.PaginationVisitor(schema, allFragments, config, documentFiles, typeInfo);
(0, _graphql.visit)(allAst, (0, _graphql.visitWithTypeInfo)(typeInfo, {
Directive: visitor.Directive.bind(visitor),
Field: visitor.Field.bind(visitor)
}));
return {
prepend: visitor.getImports(),
content: visitor.getContent()
};
};
exports.plugin = plugin;
var validate = function validate(schema, documents, config, outputFile) {
if ((0, _path.extname)(outputFile) !== '.tsx' && (0, _path.extname)(outputFile) !== '.ts') {
throw new Error("Plugin \"nau.cacheUpdaterSupport\" requires extension to be \".tsx\" or \".ts\"!");
}
};
exports.validate = validate;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwbHVnaW4iLCJzY2hlbWEiLCJfIiwiY29uZmlnIiwiZG9jdW1lbnRGaWxlcyIsImRvY3VtZW50cyIsIm1hcCIsImZpbGUiLCJkb2N1bWVudCIsImZpbHRlciIsIm5vbk51bGxhYmxlIiwiYWxsQXN0IiwiY29uY2F0QVNUIiwiYWxsRnJhZ21lbnRzIiwiZGVmaW5pdGlvbnMiLCJkIiwia2luZCIsIktpbmQiLCJGUkFHTUVOVF9ERUZJTklUSU9OIiwiZnJhZ21lbnREZWYiLCJub2RlIiwibmFtZSIsInZhbHVlIiwib25UeXBlIiwidHlwZUNvbmRpdGlvbiIsImlzRXh0ZXJuYWwiLCJleHRlcm5hbEZyYWdtZW50cyIsInR5cGVJbmZvIiwiVHlwZUluZm8iLCJ2aXNpdG9yIiwiUGFnaW5hdGlvblZpc2l0b3IiLCJ2aXNpdCIsInZpc2l0V2l0aFR5cGVJbmZvIiwiRGlyZWN0aXZlIiwiYmluZCIsIkZpZWxkIiwicHJlcGVuZCIsImdldEltcG9ydHMiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInZhbGlkYXRlIiwib3V0cHV0RmlsZSIsImV4dG5hbWUiLCJFcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL2NhY2hlLXVwZGF0ZXItc3VwcG9ydC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbHVnaW5GdW5jdGlvbiwgUGx1Z2luVmFsaWRhdGVGbiwgVHlwZXMgfSBmcm9tICdAZ3JhcGhxbC1jb2RlZ2VuL3BsdWdpbi1oZWxwZXJzJztcbmltcG9ydCB7IExvYWRlZEZyYWdtZW50IH0gZnJvbSAnQGdyYXBocWwtY29kZWdlbi92aXNpdG9yLXBsdWdpbi1jb21tb24nO1xuaW1wb3J0IHsgY29uY2F0QVNULCBGcmFnbWVudERlZmluaXRpb25Ob2RlLCBHcmFwaFFMU2NoZW1hLCBLaW5kLCBUeXBlSW5mbywgdmlzaXQsIHZpc2l0V2l0aFR5cGVJbmZvIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBleHRuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBub25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3V0aWxzL25vbk51bGxhYmxlJztcbmltcG9ydCB7IFBhZ2luYXRpb25QbHVnaW5Db25maWcsIFBhZ2luYXRpb25SYXdQbHVnaW5Db25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uVmlzaXRvciB9IGZyb20gJy4vdmlzaXRvcic7XG5cbmV4cG9ydCBjb25zdCBwbHVnaW46IFBsdWdpbkZ1bmN0aW9uPFxuICBQYWdpbmF0aW9uUmF3UGx1Z2luQ29uZmlnICYgeyBkb2N1bWVudEZpbGVzOiBUeXBlcy5Eb2N1bWVudEZpbGVbXSB9LFxuICBUeXBlcy5Db21wbGV4UGx1Z2luT3V0cHV0XG4+ID0gKHNjaGVtYSwgXywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHsgZG9jdW1lbnRGaWxlcyB9ID0gY29uZmlnO1xuICBjb25zdCBkb2N1bWVudHMgPSBkb2N1bWVudEZpbGVzLm1hcCgoZmlsZSkgPT4gZmlsZS5kb2N1bWVudCkuZmlsdGVyKG5vbk51bGxhYmxlKTtcbiAgY29uc3QgYWxsQXN0ID0gY29uY2F0QVNUKGRvY3VtZW50cyk7XG5cbiAgY29uc3QgYWxsRnJhZ21lbnRzOiBMb2FkZWRGcmFnbWVudFtdID0gW1xuICAgIC4uLihhbGxBc3QuZGVmaW5pdGlvbnMuZmlsdGVyKChkKSA9PiBkLmtpbmQgPT09IEtpbmQuRlJBR01FTlRfREVGSU5JVElPTikgYXMgRnJhZ21lbnREZWZpbml0aW9uTm9kZVtdKS5tYXAoXG4gICAgICAoZnJhZ21lbnREZWYpID0+ICh7XG4gICAgICAgIG5vZGU6IGZyYWdtZW50RGVmLFxuICAgICAgICBuYW1lOiBmcmFnbWVudERlZi5uYW1lLnZhbHVlLFxuICAgICAgICBvblR5cGU6IGZyYWdtZW50RGVmLnR5cGVDb25kaXRpb24ubmFtZS52YWx1ZSxcbiAgICAgICAgaXNFeHRlcm5hbDogZmFsc2UsXG4gICAgICB9KSxcbiAgICApLFxuICAgIC4uLihjb25maWcuZXh0ZXJuYWxGcmFnbWVudHMgfHwgW10pLFxuICBdO1xuICBjb25zdCB0eXBlSW5mbyA9IG5ldyBUeXBlSW5mbyhzY2hlbWEpO1xuICBjb25zdCB2aXNpdG9yID0gbmV3IFBhZ2luYXRpb25WaXNpdG9yKHNjaGVtYSwgYWxsRnJhZ21lbnRzLCBjb25maWcsIGRvY3VtZW50RmlsZXMsIHR5cGVJbmZvKTtcblxuICB2aXNpdChcbiAgICBhbGxBc3QsXG4gICAgdmlzaXRXaXRoVHlwZUluZm8odHlwZUluZm8sIHsgRGlyZWN0aXZlOiB2aXNpdG9yLkRpcmVjdGl2ZS5iaW5kKHZpc2l0b3IpLCBGaWVsZDogdmlzaXRvci5GaWVsZC5iaW5kKHZpc2l0b3IpIH0pLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgcHJlcGVuZDogdmlzaXRvci5nZXRJbXBvcnRzKCksXG4gICAgY29udGVudDogdmlzaXRvci5nZXRDb250ZW50KCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGU6IFBsdWdpblZhbGlkYXRlRm4gPSAoXG4gIHNjaGVtYTogR3JhcGhRTFNjaGVtYSxcbiAgZG9jdW1lbnRzOiBUeXBlcy5Eb2N1bWVudEZpbGVbXSxcbiAgY29uZmlnOiBQYWdpbmF0aW9uUGx1Z2luQ29uZmlnLFxuICBvdXRwdXRGaWxlOiBzdHJpbmcsXG4pID0+IHtcbiAgaWYgKGV4dG5hbWUob3V0cHV0RmlsZSkgIT09ICcudHN4JyAmJiBleHRuYW1lKG91dHB1dEZpbGUpICE9PSAnLnRzJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGx1Z2luIFwibmF1LmNhY2hlVXBkYXRlclN1cHBvcnRcIiByZXF1aXJlcyBleHRlbnNpb24gdG8gYmUgXCIudHN4XCIgb3IgXCIudHNcIiFgKTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFBOEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRXZDLElBQU1BLE1BR1osR0FBRyxTQUhTQSxNQUdaLENBQUlDLE1BQU0sRUFBRUMsQ0FBQyxFQUFFQyxNQUFNLEVBQUs7RUFDekIsSUFBUUMsYUFBYSxHQUFLRCxNQUFNLENBQXhCQyxhQUFhO0VBQ3JCLElBQU1DLFNBQVMsR0FBR0QsYUFBYSxDQUFDRSxHQUFHLENBQUMsVUFBQ0MsSUFBSTtJQUFBLE9BQUtBLElBQUksQ0FBQ0MsUUFBUTtFQUFBLEVBQUMsQ0FBQ0MsTUFBTSxDQUFDQyx3QkFBVyxDQUFDO0VBQ2hGLElBQU1DLE1BQU0sR0FBRyxJQUFBQyxrQkFBUyxFQUFDUCxTQUFTLENBQUM7RUFFbkMsSUFBTVEsWUFBOEIsZ0NBQzlCRixNQUFNLENBQUNHLFdBQVcsQ0FBQ0wsTUFBTSxDQUFDLFVBQUNNLENBQUM7SUFBQSxPQUFLQSxDQUFDLENBQUNDLElBQUksS0FBS0MsYUFBSSxDQUFDQyxtQkFBbUI7RUFBQSxFQUFDLENBQThCWixHQUFHLENBQ3hHLFVBQUNhLFdBQVc7SUFBQSxPQUFNO01BQ2hCQyxJQUFJLEVBQUVELFdBQVc7TUFDakJFLElBQUksRUFBRUYsV0FBVyxDQUFDRSxJQUFJLENBQUNDLEtBQUs7TUFDNUJDLE1BQU0sRUFBRUosV0FBVyxDQUFDSyxhQUFhLENBQUNILElBQUksQ0FBQ0MsS0FBSztNQUM1Q0csVUFBVSxFQUFFO0lBQ2QsQ0FBQztFQUFBLENBQUMsQ0FDSCxzQkFDR3RCLE1BQU0sQ0FBQ3VCLGlCQUFpQixJQUFJLEVBQUUsRUFDbkM7RUFDRCxJQUFNQyxRQUFRLEdBQUcsSUFBSUMsaUJBQVEsQ0FBQzNCLE1BQU0sQ0FBQztFQUNyQyxJQUFNNEIsT0FBTyxHQUFHLElBQUlDLDBCQUFpQixDQUFDN0IsTUFBTSxFQUFFWSxZQUFZLEVBQUVWLE1BQU0sRUFBRUMsYUFBYSxFQUFFdUIsUUFBUSxDQUFDO0VBRTVGLElBQUFJLGNBQUssRUFDSHBCLE1BQU0sRUFDTixJQUFBcUIsMEJBQWlCLEVBQUNMLFFBQVEsRUFBRTtJQUFFTSxTQUFTLEVBQUVKLE9BQU8sQ0FBQ0ksU0FBUyxDQUFDQyxJQUFJLENBQUNMLE9BQU8sQ0FBQztJQUFFTSxLQUFLLEVBQUVOLE9BQU8sQ0FBQ00sS0FBSyxDQUFDRCxJQUFJLENBQUNMLE9BQU87RUFBRSxDQUFDLENBQUMsQ0FDaEg7RUFFRCxPQUFPO0lBQ0xPLE9BQU8sRUFBRVAsT0FBTyxDQUFDUSxVQUFVLEVBQUU7SUFDN0JDLE9BQU8sRUFBRVQsT0FBTyxDQUFDVSxVQUFVO0VBQzdCLENBQUM7QUFDSCxDQUFDO0FBQUM7QUFFSyxJQUFNQyxRQUEwQixHQUFHLFNBQTdCQSxRQUEwQixDQUNyQ3ZDLE1BQXFCLEVBQ3JCSSxTQUErQixFQUMvQkYsTUFBOEIsRUFDOUJzQyxVQUFrQixFQUNmO0VBQ0gsSUFBSSxJQUFBQyxhQUFPLEVBQUNELFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFBSSxJQUFBQyxhQUFPLEVBQUNELFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtJQUNuRSxNQUFNLElBQUlFLEtBQUssb0ZBQThFO0VBQy9GO0FBQ0YsQ0FBQztBQUFDIn0=