payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
57 lines (56 loc) • 7.01 kB
JavaScript
/* eslint-disable @typescript-eslint/no-floating-promises */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "generateTypes", {
enumerable: true,
get: function() {
return generateTypes;
}
});
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
const _jsonschematotypescript = require("json-schema-to-typescript");
const _ = /*#__PURE__*/ _interop_require_default(require(".."));
const _load = /*#__PURE__*/ _interop_require_default(require("../config/load"));
const _configToJSONSchema = require("../utilities/configToJSONSchema");
const _logger = /*#__PURE__*/ _interop_require_default(require("../utilities/logger"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
async function generateTypes() {
const logger = (0, _logger.default)();
const config = await (0, _load.default)();
const outputFile = process.env.PAYLOAD_TS_OUTPUT_PATH || config.typescript.outputFile;
await _.default.init({
disableDBConnect: true,
disableOnInit: true,
local: true,
secret: '--unused--'
});
logger.info('Compiling TS types for Collections and Globals...');
const jsonSchema = (0, _configToJSONSchema.configToJSONSchema)(_.default.config, _.default.db.defaultIDType);
const declare = `declare module 'payload' {\n export interface GeneratedTypes extends Config {}\n}`;
(0, _jsonschematotypescript.compile)(jsonSchema, 'Config', {
bannerComment: '/* tslint:disable */\n/* eslint-disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/',
style: {
singleQuote: true
},
// Generates code for $defs that aren't referenced by the schema. Reason:
// If a field defines an interfaceName, it should be included in the generated types
// even if it's not used by another type. Reason: the user might want to use it in their own code.
unreachableDefinitions: true
}).then((compiled)=>{
if (config.typescript.declare !== false) {
compiled += `\n\n${declare}`;
}
_fs.default.writeFileSync(outputFile, compiled);
logger.info(`Types written to ${outputFile}`);
});
}
// when generateTypes.js is launched directly
if (module.id === require.main.id) {
generateTypes();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vZ2VuZXJhdGVUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXMgKi9cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCB7IGNvbXBpbGUgfSBmcm9tICdqc29uLXNjaGVtYS10by10eXBlc2NyaXB0J1xuXG5pbXBvcnQgcGF5bG9hZCBmcm9tICcuLidcbmltcG9ydCBsb2FkQ29uZmlnIGZyb20gJy4uL2NvbmZpZy9sb2FkJ1xuaW1wb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbmZpZ1RvSlNPTlNjaGVtYSdcbmltcG9ydCBMb2dnZXIgZnJvbSAnLi4vdXRpbGl0aWVzL2xvZ2dlcidcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlVHlwZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZ2dlciA9IExvZ2dlcigpXG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoKVxuICBjb25zdCBvdXRwdXRGaWxlID0gcHJvY2Vzcy5lbnYuUEFZTE9BRF9UU19PVVRQVVRfUEFUSCB8fCBjb25maWcudHlwZXNjcmlwdC5vdXRwdXRGaWxlXG5cbiAgYXdhaXQgcGF5bG9hZC5pbml0KHtcbiAgICBkaXNhYmxlREJDb25uZWN0OiB0cnVlLFxuICAgIGRpc2FibGVPbkluaXQ6IHRydWUsXG4gICAgbG9jYWw6IHRydWUsXG4gICAgc2VjcmV0OiAnLS11bnVzZWQtLScsXG4gIH0pXG5cbiAgbG9nZ2VyLmluZm8oJ0NvbXBpbGluZyBUUyB0eXBlcyBmb3IgQ29sbGVjdGlvbnMgYW5kIEdsb2JhbHMuLi4nKVxuXG4gIGNvbnN0IGpzb25TY2hlbWEgPSBjb25maWdUb0pTT05TY2hlbWEocGF5bG9hZC5jb25maWcsIHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSlcblxuICBjb25zdCBkZWNsYXJlID0gYGRlY2xhcmUgbW9kdWxlICdwYXlsb2FkJyB7XFxuICBleHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlZFR5cGVzIGV4dGVuZHMgQ29uZmlnIHt9XFxufWBcblxuICBjb21waWxlKGpzb25TY2hlbWEsICdDb25maWcnLCB7XG4gICAgYmFubmVyQ29tbWVudDpcbiAgICAgICcvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xcbi8qIGVzbGludC1kaXNhYmxlICovXFxuLyoqXFxuKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBheWxvYWQuXFxuKiBETyBOT1QgTU9ESUZZIElUIEJZIEhBTkQuIEluc3RlYWQsIG1vZGlmeSB5b3VyIHNvdXJjZSBQYXlsb2FkIGNvbmZpZyxcXG4qIGFuZCByZS1ydW4gYHBheWxvYWQgZ2VuZXJhdGU6dHlwZXNgIHRvIHJlZ2VuZXJhdGUgdGhpcyBmaWxlLlxcbiovJyxcbiAgICBzdHlsZToge1xuICAgICAgc2luZ2xlUXVvdGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyBHZW5lcmF0ZXMgY29kZSBmb3IgJGRlZnMgdGhhdCBhcmVuJ3QgcmVmZXJlbmNlZCBieSB0aGUgc2NoZW1hLiBSZWFzb246XG4gICAgLy8gSWYgYSBmaWVsZCBkZWZpbmVzIGFuIGludGVyZmFjZU5hbWUsIGl0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIHR5cGVzXG4gICAgLy8gZXZlbiBpZiBpdCdzIG5vdCB1c2VkIGJ5IGFub3RoZXIgdHlwZS4gUmVhc29uOiB0aGUgdXNlciBtaWdodCB3YW50IHRvIHVzZSBpdCBpbiB0aGVpciBvd24gY29kZS5cbiAgICB1bnJlYWNoYWJsZURlZmluaXRpb25zOiB0cnVlLFxuICB9KS50aGVuKChjb21waWxlZCkgPT4ge1xuICAgIGlmIChjb25maWcudHlwZXNjcmlwdC5kZWNsYXJlICE9PSBmYWxzZSkge1xuICAgICAgY29tcGlsZWQgKz0gYFxcblxcbiR7ZGVjbGFyZX1gXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMob3V0cHV0RmlsZSwgY29tcGlsZWQpXG4gICAgbG9nZ2VyLmluZm8oYFR5cGVzIHdyaXR0ZW4gdG8gJHtvdXRwdXRGaWxlfWApXG4gIH0pXG59XG5cbi8vIHdoZW4gZ2VuZXJhdGVUeXBlcy5qcyBpcyBsYXVuY2hlZCBkaXJlY3RseVxuaWYgKG1vZHVsZS5pZCA9PT0gcmVxdWlyZS5tYWluLmlkKSB7XG4gIGdlbmVyYXRlVHlwZXMoKVxufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlVHlwZXMiLCJsb2dnZXIiLCJMb2dnZXIiLCJjb25maWciLCJsb2FkQ29uZmlnIiwib3V0cHV0RmlsZSIsInByb2Nlc3MiLCJlbnYiLCJQQVlMT0FEX1RTX09VVFBVVF9QQVRIIiwidHlwZXNjcmlwdCIsInBheWxvYWQiLCJpbml0IiwiZGlzYWJsZURCQ29ubmVjdCIsImRpc2FibGVPbkluaXQiLCJsb2NhbCIsInNlY3JldCIsImluZm8iLCJqc29uU2NoZW1hIiwiY29uZmlnVG9KU09OU2NoZW1hIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiZGVjbGFyZSIsImNvbXBpbGUiLCJiYW5uZXJDb21tZW50Iiwic3R5bGUiLCJzaW5nbGVRdW90ZSIsInVucmVhY2hhYmxlRGVmaW5pdGlvbnMiLCJ0aGVuIiwiY29tcGlsZWQiLCJmcyIsIndyaXRlRmlsZVN5bmMiLCJtb2R1bGUiLCJpZCIsInJlcXVpcmUiLCJtYWluIl0sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQ7Ozs7K0JBU3BDQTs7O2VBQUFBOzs7MkRBUlA7d0NBQ1M7eURBRUo7NkRBQ0c7b0NBQ1k7K0RBQ2hCOzs7Ozs7QUFFWixlQUFlQTtJQUNwQixNQUFNQyxTQUFTQyxJQUFBQSxlQUFNO0lBQ3JCLE1BQU1DLFNBQVMsTUFBTUMsSUFBQUEsYUFBVTtJQUMvQixNQUFNQyxhQUFhQyxRQUFRQyxHQUFHLENBQUNDLHNCQUFzQixJQUFJTCxPQUFPTSxVQUFVLENBQUNKLFVBQVU7SUFFckYsTUFBTUssU0FBTyxDQUFDQyxJQUFJLENBQUM7UUFDakJDLGtCQUFrQjtRQUNsQkMsZUFBZTtRQUNmQyxPQUFPO1FBQ1BDLFFBQVE7SUFDVjtJQUVBZCxPQUFPZSxJQUFJLENBQUM7SUFFWixNQUFNQyxhQUFhQyxJQUFBQSxzQ0FBa0IsRUFBQ1IsU0FBTyxDQUFDUCxNQUFNLEVBQUVPLFNBQU8sQ0FBQ1MsRUFBRSxDQUFDQyxhQUFhO0lBRTlFLE1BQU1DLFVBQVUsQ0FBQyxrRkFBa0YsQ0FBQztJQUVwR0MsSUFBQUEsK0JBQU8sRUFBQ0wsWUFBWSxVQUFVO1FBQzVCTSxlQUNFO1FBQ0ZDLE9BQU87WUFDTEMsYUFBYTtRQUNmO1FBQ0EseUVBQXlFO1FBQ3pFLG9GQUFvRjtRQUNwRixrR0FBa0c7UUFDbEdDLHdCQUF3QjtJQUMxQixHQUFHQyxJQUFJLENBQUMsQ0FBQ0M7UUFDUCxJQUFJekIsT0FBT00sVUFBVSxDQUFDWSxPQUFPLEtBQUssT0FBTztZQUN2Q08sWUFBWSxDQUFDLElBQUksRUFBRVAsUUFBUSxDQUFDO1FBQzlCO1FBQ0FRLFdBQUUsQ0FBQ0MsYUFBYSxDQUFDekIsWUFBWXVCO1FBQzdCM0IsT0FBT2UsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEVBQUVYLFdBQVcsQ0FBQztJQUM5QztBQUNGO0FBRUEsNkNBQTZDO0FBQzdDLElBQUkwQixPQUFPQyxFQUFFLEtBQUtDLFFBQVFDLElBQUksQ0FBQ0YsRUFBRSxFQUFFO0lBQ2pDaEM7QUFDRiJ9