payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
114 lines (113 loc) • 12.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _findup = /*#__PURE__*/ _interop_require_default(require("find-up"));
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* Returns the source and output paths from the nearest tsconfig.json file.
* If no tsconfig.json file is found, returns the current working directory.
* @returns An object containing the source and output paths.
*/ const getTSConfigPaths = ()=>{
const tsConfigPath = _findup.default.sync('tsconfig.json');
if (!tsConfigPath) {
return {
outPath: process.cwd(),
srcPath: process.cwd()
};
}
try {
// Read the file as a string and remove trailing commas
const rawTsConfig = _fs.default.readFileSync(tsConfigPath, 'utf-8').replace(/,\s*\]/g, ']').replace(/,\s*\}/g, '}');
const tsConfig = JSON.parse(rawTsConfig);
const srcPath = tsConfig.compilerOptions?.rootDir || process.cwd();
const outPath = tsConfig.compilerOptions?.outDir || process.cwd();
return {
outPath,
srcPath
};
} catch (error) {
console.error(`Error parsing tsconfig.json: ${error}`) // Do not throw the error, as we can still continue with the other config path finding methods
;
return {
outPath: process.cwd(),
srcPath: process.cwd()
};
}
};
/**
* Searches for a Payload configuration file.
* @returns The absolute path to the Payload configuration file.
* @throws An error if no configuration file is found.
*/ const findConfig = ()=>{
// If the developer has specified a config path,
// format it if relative and use it directly if absolute
if (process.env.PAYLOAD_CONFIG_PATH) {
if (_path.default.isAbsolute(process.env.PAYLOAD_CONFIG_PATH)) {
return process.env.PAYLOAD_CONFIG_PATH;
}
return _path.default.resolve(process.cwd(), process.env.PAYLOAD_CONFIG_PATH);
}
const { outPath, srcPath } = getTSConfigPaths();
const searchPaths = process.env.NODE_ENV === 'production' ? [
outPath,
srcPath
] : [
srcPath
];
// eslint-disable-next-line no-restricted-syntax
for (const searchPath of searchPaths){
const configPath = _findup.default.sync((dir)=>{
const tsPath = _path.default.join(dir, 'payload.config.ts');
const hasTS = _findup.default.sync.exists(tsPath);
if (hasTS) {
return tsPath;
}
const jsPath = _path.default.join(dir, 'payload.config.js');
const hasJS = _findup.default.sync.exists(jsPath);
if (hasJS) {
return jsPath;
}
return undefined;
}, {
cwd: searchPath
});
if (configPath) {
return configPath;
}
}
// If no config file is found in the directories defined by tsconfig.json,
// try searching in the 'src' and 'dist' directory as a last resort, as they are most commonly used
if (process.env.NODE_ENV === 'production') {
const distConfigPath = _findup.default.sync([
'payload.config.js',
'payload.config.ts'
], {
cwd: _path.default.resolve(process.cwd(), 'dist')
});
if (distConfigPath) return distConfigPath;
} else {
const srcConfigPath = _findup.default.sync([
'payload.config.js',
'payload.config.ts'
], {
cwd: _path.default.resolve(process.cwd(), 'src')
});
if (srcConfigPath) return srcConfigPath;
}
throw new Error('Error: cannot find Payload config. Please create a configuration file located at the root of your current working directory called "payload.config.js" or "payload.config.ts".');
};
const _default = findConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvZmluZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmluZFVwIGZyb20gJ2ZpbmQtdXAnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHNvdXJjZSBhbmQgb3V0cHV0IHBhdGhzIGZyb20gdGhlIG5lYXJlc3QgdHNjb25maWcuanNvbiBmaWxlLlxuICogSWYgbm8gdHNjb25maWcuanNvbiBmaWxlIGlzIGZvdW5kLCByZXR1cm5zIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBhbmQgb3V0cHV0IHBhdGhzLlxuICovXG5jb25zdCBnZXRUU0NvbmZpZ1BhdGhzID0gKCk6IHsgb3V0UGF0aDogc3RyaW5nOyBzcmNQYXRoOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHRzQ29uZmlnUGF0aCA9IGZpbmRVcC5zeW5jKCd0c2NvbmZpZy5qc29uJylcblxuICBpZiAoIXRzQ29uZmlnUGF0aCkge1xuICAgIHJldHVybiB7IG91dFBhdGg6IHByb2Nlc3MuY3dkKCksIHNyY1BhdGg6IHByb2Nlc3MuY3dkKCkgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBSZWFkIHRoZSBmaWxlIGFzIGEgc3RyaW5nIGFuZCByZW1vdmUgdHJhaWxpbmcgY29tbWFzXG4gICAgY29uc3QgcmF3VHNDb25maWcgPSBmc1xuICAgICAgLnJlYWRGaWxlU3luYyh0c0NvbmZpZ1BhdGgsICd1dGYtOCcpXG4gICAgICAucmVwbGFjZSgvLFxccypcXF0vZywgJ10nKVxuICAgICAgLnJlcGxhY2UoLyxcXHMqXFx9L2csICd9JylcblxuICAgIGNvbnN0IHRzQ29uZmlnID0gSlNPTi5wYXJzZShyYXdUc0NvbmZpZylcblxuICAgIGNvbnN0IHNyY1BhdGggPSB0c0NvbmZpZy5jb21waWxlck9wdGlvbnM/LnJvb3REaXIgfHwgcHJvY2Vzcy5jd2QoKVxuICAgIGNvbnN0IG91dFBhdGggPSB0c0NvbmZpZy5jb21waWxlck9wdGlvbnM/Lm91dERpciB8fCBwcm9jZXNzLmN3ZCgpXG5cbiAgICByZXR1cm4geyBvdXRQYXRoLCBzcmNQYXRoIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBFcnJvciBwYXJzaW5nIHRzY29uZmlnLmpzb246ICR7ZXJyb3J9YCkgLy8gRG8gbm90IHRocm93IHRoZSBlcnJvciwgYXMgd2UgY2FuIHN0aWxsIGNvbnRpbnVlIHdpdGggdGhlIG90aGVyIGNvbmZpZyBwYXRoIGZpbmRpbmcgbWV0aG9kc1xuICAgIHJldHVybiB7IG91dFBhdGg6IHByb2Nlc3MuY3dkKCksIHNyY1BhdGg6IHByb2Nlc3MuY3dkKCkgfVxuICB9XG59XG5cbi8qKlxuICogU2VhcmNoZXMgZm9yIGEgUGF5bG9hZCBjb25maWd1cmF0aW9uIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgUGF5bG9hZCBjb25maWd1cmF0aW9uIGZpbGUuXG4gKiBAdGhyb3dzIEFuIGVycm9yIGlmIG5vIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBmb3VuZC5cbiAqL1xuY29uc3QgZmluZENvbmZpZyA9ICgpOiBzdHJpbmcgPT4ge1xuICAvLyBJZiB0aGUgZGV2ZWxvcGVyIGhhcyBzcGVjaWZpZWQgYSBjb25maWcgcGF0aCxcbiAgLy8gZm9ybWF0IGl0IGlmIHJlbGF0aXZlIGFuZCB1c2UgaXQgZGlyZWN0bHkgaWYgYWJzb2x1dGVcbiAgaWYgKHByb2Nlc3MuZW52LlBBWUxPQURfQ09ORklHX1BBVEgpIHtcbiAgICBpZiAocGF0aC5pc0Fic29sdXRlKHByb2Nlc3MuZW52LlBBWUxPQURfQ09ORklHX1BBVEgpKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5lbnYuUEFZTE9BRF9DT05GSUdfUEFUSFxuICAgIH1cblxuICAgIHJldHVybiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcHJvY2Vzcy5lbnYuUEFZTE9BRF9DT05GSUdfUEFUSClcbiAgfVxuXG4gIGNvbnN0IHsgb3V0UGF0aCwgc3JjUGF0aCB9ID0gZ2V0VFNDb25maWdQYXRocygpXG5cbiAgY29uc3Qgc2VhcmNoUGF0aHMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID8gW291dFBhdGgsIHNyY1BhdGhdIDogW3NyY1BhdGhdXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gIGZvciAoY29uc3Qgc2VhcmNoUGF0aCBvZiBzZWFyY2hQYXRocykge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBmaW5kVXAuc3luYyhcbiAgICAgIChkaXIpID0+IHtcbiAgICAgICAgY29uc3QgdHNQYXRoID0gcGF0aC5qb2luKGRpciwgJ3BheWxvYWQuY29uZmlnLnRzJylcbiAgICAgICAgY29uc3QgaGFzVFMgPSBmaW5kVXAuc3luYy5leGlzdHModHNQYXRoKVxuXG4gICAgICAgIGlmIChoYXNUUykge1xuICAgICAgICAgIHJldHVybiB0c1BhdGhcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGpzUGF0aCA9IHBhdGguam9pbihkaXIsICdwYXlsb2FkLmNvbmZpZy5qcycpXG4gICAgICAgIGNvbnN0IGhhc0pTID0gZmluZFVwLnN5bmMuZXhpc3RzKGpzUGF0aClcblxuICAgICAgICBpZiAoaGFzSlMpIHtcbiAgICAgICAgICByZXR1cm4ganNQYXRoXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgeyBjd2Q6IHNlYXJjaFBhdGggfSxcbiAgICApXG5cbiAgICBpZiAoY29uZmlnUGF0aCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ1BhdGhcbiAgICB9XG4gIH1cblxuICAvLyBJZiBubyBjb25maWcgZmlsZSBpcyBmb3VuZCBpbiB0aGUgZGlyZWN0b3JpZXMgZGVmaW5lZCBieSB0c2NvbmZpZy5qc29uLFxuICAvLyB0cnkgc2VhcmNoaW5nIGluIHRoZSAnc3JjJyBhbmQgJ2Rpc3QnIGRpcmVjdG9yeSBhcyBhIGxhc3QgcmVzb3J0LCBhcyB0aGV5IGFyZSBtb3N0IGNvbW1vbmx5IHVzZWRcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zdCBkaXN0Q29uZmlnUGF0aCA9IGZpbmRVcC5zeW5jKFsncGF5bG9hZC5jb25maWcuanMnLCAncGF5bG9hZC5jb25maWcudHMnXSwge1xuICAgICAgY3dkOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgJ2Rpc3QnKSxcbiAgICB9KVxuXG4gICAgaWYgKGRpc3RDb25maWdQYXRoKSByZXR1cm4gZGlzdENvbmZpZ1BhdGhcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzcmNDb25maWdQYXRoID0gZmluZFVwLnN5bmMoWydwYXlsb2FkLmNvbmZpZy5qcycsICdwYXlsb2FkLmNvbmZpZy50cyddLCB7XG4gICAgICBjd2Q6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCAnc3JjJyksXG4gICAgfSlcblxuICAgIGlmIChzcmNDb25maWdQYXRoKSByZXR1cm4gc3JjQ29uZmlnUGF0aFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdFcnJvcjogY2Fubm90IGZpbmQgUGF5bG9hZCBjb25maWcuIFBsZWFzZSBjcmVhdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgbG9jYXRlZCBhdCB0aGUgcm9vdCBvZiB5b3VyIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgY2FsbGVkIFwicGF5bG9hZC5jb25maWcuanNcIiBvciBcInBheWxvYWQuY29uZmlnLnRzXCIuJyxcbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBmaW5kQ29uZmlnXG4iXSwibmFtZXMiOlsiZ2V0VFNDb25maWdQYXRocyIsInRzQ29uZmlnUGF0aCIsImZpbmRVcCIsInN5bmMiLCJvdXRQYXRoIiwicHJvY2VzcyIsImN3ZCIsInNyY1BhdGgiLCJyYXdUc0NvbmZpZyIsImZzIiwicmVhZEZpbGVTeW5jIiwicmVwbGFjZSIsInRzQ29uZmlnIiwiSlNPTiIsInBhcnNlIiwiY29tcGlsZXJPcHRpb25zIiwicm9vdERpciIsIm91dERpciIsImVycm9yIiwiY29uc29sZSIsImZpbmRDb25maWciLCJlbnYiLCJQQVlMT0FEX0NPTkZJR19QQVRIIiwicGF0aCIsImlzQWJzb2x1dGUiLCJyZXNvbHZlIiwic2VhcmNoUGF0aHMiLCJOT0RFX0VOViIsInNlYXJjaFBhdGgiLCJjb25maWdQYXRoIiwiZGlyIiwidHNQYXRoIiwiam9pbiIsImhhc1RTIiwiZXhpc3RzIiwianNQYXRoIiwiaGFzSlMiLCJ1bmRlZmluZWQiLCJkaXN0Q29uZmlnUGF0aCIsInNyY0NvbmZpZ1BhdGgiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3R0E7OztlQUFBOzs7K0RBeEdtQjsyREFDSjs2REFDRTs7Ozs7O0FBRWpCOzs7O0NBSUMsR0FDRCxNQUFNQSxtQkFBbUI7SUFDdkIsTUFBTUMsZUFBZUMsZUFBTSxDQUFDQyxJQUFJLENBQUM7SUFFakMsSUFBSSxDQUFDRixjQUFjO1FBQ2pCLE9BQU87WUFBRUcsU0FBU0MsUUFBUUMsR0FBRztZQUFJQyxTQUFTRixRQUFRQyxHQUFHO1FBQUc7SUFDMUQ7SUFFQSxJQUFJO1FBQ0YsdURBQXVEO1FBQ3ZELE1BQU1FLGNBQWNDLFdBQUUsQ0FDbkJDLFlBQVksQ0FBQ1QsY0FBYyxTQUMzQlUsT0FBTyxDQUFDLFdBQVcsS0FDbkJBLE9BQU8sQ0FBQyxXQUFXO1FBRXRCLE1BQU1DLFdBQVdDLEtBQUtDLEtBQUssQ0FBQ047UUFFNUIsTUFBTUQsVUFBVUssU0FBU0csZUFBZSxFQUFFQyxXQUFXWCxRQUFRQyxHQUFHO1FBQ2hFLE1BQU1GLFVBQVVRLFNBQVNHLGVBQWUsRUFBRUUsVUFBVVosUUFBUUMsR0FBRztRQUUvRCxPQUFPO1lBQUVGO1lBQVNHO1FBQVE7SUFDNUIsRUFBRSxPQUFPVyxPQUFPO1FBQ2RDLFFBQVFELEtBQUssQ0FBQyxDQUFDLDZCQUE2QixFQUFFQSxNQUFNLENBQUMsRUFBRSw4RkFBOEY7O1FBQ3JKLE9BQU87WUFBRWQsU0FBU0MsUUFBUUMsR0FBRztZQUFJQyxTQUFTRixRQUFRQyxHQUFHO1FBQUc7SUFDMUQ7QUFDRjtBQUVBOzs7O0NBSUMsR0FDRCxNQUFNYyxhQUFhO0lBQ2pCLGdEQUFnRDtJQUNoRCx3REFBd0Q7SUFDeEQsSUFBSWYsUUFBUWdCLEdBQUcsQ0FBQ0MsbUJBQW1CLEVBQUU7UUFDbkMsSUFBSUMsYUFBSSxDQUFDQyxVQUFVLENBQUNuQixRQUFRZ0IsR0FBRyxDQUFDQyxtQkFBbUIsR0FBRztZQUNwRCxPQUFPakIsUUFBUWdCLEdBQUcsQ0FBQ0MsbUJBQW1CO1FBQ3hDO1FBRUEsT0FBT0MsYUFBSSxDQUFDRSxPQUFPLENBQUNwQixRQUFRQyxHQUFHLElBQUlELFFBQVFnQixHQUFHLENBQUNDLG1CQUFtQjtJQUNwRTtJQUVBLE1BQU0sRUFBRWxCLE9BQU8sRUFBRUcsT0FBTyxFQUFFLEdBQUdQO0lBRTdCLE1BQU0wQixjQUFjckIsUUFBUWdCLEdBQUcsQ0FBQ00sUUFBUSxLQUFLLGVBQWU7UUFBQ3ZCO1FBQVNHO0tBQVEsR0FBRztRQUFDQTtLQUFRO0lBRTFGLGdEQUFnRDtJQUNoRCxLQUFLLE1BQU1xQixjQUFjRixZQUFhO1FBQ3BDLE1BQU1HLGFBQWEzQixlQUFNLENBQUNDLElBQUksQ0FDNUIsQ0FBQzJCO1lBQ0MsTUFBTUMsU0FBU1IsYUFBSSxDQUFDUyxJQUFJLENBQUNGLEtBQUs7WUFDOUIsTUFBTUcsUUFBUS9CLGVBQU0sQ0FBQ0MsSUFBSSxDQUFDK0IsTUFBTSxDQUFDSDtZQUVqQyxJQUFJRSxPQUFPO2dCQUNULE9BQU9GO1lBQ1Q7WUFFQSxNQUFNSSxTQUFTWixhQUFJLENBQUNTLElBQUksQ0FBQ0YsS0FBSztZQUM5QixNQUFNTSxRQUFRbEMsZUFBTSxDQUFDQyxJQUFJLENBQUMrQixNQUFNLENBQUNDO1lBRWpDLElBQUlDLE9BQU87Z0JBQ1QsT0FBT0Q7WUFDVDtZQUVBLE9BQU9FO1FBQ1QsR0FDQTtZQUFFL0IsS0FBS3NCO1FBQVc7UUFHcEIsSUFBSUMsWUFBWTtZQUNkLE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLDBFQUEwRTtJQUMxRSxtR0FBbUc7SUFDbkcsSUFBSXhCLFFBQVFnQixHQUFHLENBQUNNLFFBQVEsS0FBSyxjQUFjO1FBQ3pDLE1BQU1XLGlCQUFpQnBDLGVBQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQUM7WUFBcUI7U0FBb0IsRUFBRTtZQUM3RUcsS0FBS2lCLGFBQUksQ0FBQ0UsT0FBTyxDQUFDcEIsUUFBUUMsR0FBRyxJQUFJO1FBQ25DO1FBRUEsSUFBSWdDLGdCQUFnQixPQUFPQTtJQUM3QixPQUFPO1FBQ0wsTUFBTUMsZ0JBQWdCckMsZUFBTSxDQUFDQyxJQUFJLENBQUM7WUFBQztZQUFxQjtTQUFvQixFQUFFO1lBQzVFRyxLQUFLaUIsYUFBSSxDQUFDRSxPQUFPLENBQUNwQixRQUFRQyxHQUFHLElBQUk7UUFDbkM7UUFFQSxJQUFJaUMsZUFBZSxPQUFPQTtJQUM1QjtJQUVBLE1BQU0sSUFBSUMsTUFDUjtBQUVKO01BRUEsV0FBZXBCIn0=