UNPKG

@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
'use strict'; 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