@strapi/strapi
Version:
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
50 lines (44 loc) • 1.91 kB
JavaScript
;
var commander = require('commander');
var fs = require('fs');
var path = require('path');
var core = require('@strapi/core');
var helpers = require('../utils/helpers.js');
var tryQuickOutdir = require('../utils/try-quick-outdir.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var fs__default = /*#__PURE__*/_interopDefault(fs);
var path__default = /*#__PURE__*/_interopDefault(path);
const action = async ()=>{
const appDir = process.cwd();
const tsconfigPath = path__default.default.join(appDir, 'tsconfig.json');
let distDir;
if (!fs__default.default.existsSync(tsconfigPath)) {
distDir = appDir;
} else {
const quickOutDir = tryQuickOutdir.tryQuickOutDir(appDir, tsconfigPath);
if (quickOutDir && fs__default.default.existsSync(path__default.default.join(quickOutDir, 'src', 'index.js'))) {
// Built output at configured outDir — skip loading `@strapi/typescript-utils`
distDir = quickOutDir;
} else {
// Custom/extended tsconfig or unbuilt project — fall back to the slow correct path
// eslint-disable-next-line @typescript-eslint/no-var-requires
const tsUtils = require('@strapi/typescript-utils');
const outDir = await tsUtils.resolveOutDir(appDir);
if (!fs__default.default.existsSync(outDir)) {
throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
}
distDir = outDir;
}
}
core.createStrapi({
appDir,
distDir
}).start();
};
/**
* `$ strapi start`
*/ const command = ()=>{
return commander.createCommand('start').description('Start your Strapi application').action(helpers.runAction('start', action));
};
exports.command = command;
//# sourceMappingURL=start.js.map