UNPKG

burdy

Version:

Open Source Headless Platform

122 lines (121 loc) 6.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_util_1 = __importDefault(require("./util/path.util")); const rimraf_1 = __importDefault(require("rimraf")); const webpack_config_1 = require("../webpack.config"); const config_1 = __importDefault(require("../shared/features/config")); const webpack_1 = __importDefault(require("webpack")); const webpack_util_1 = require("./util/webpack.util"); const fast_glob_1 = __importDefault(require("fast-glob")); const path_1 = __importDefault(require("path")); const scriptContentTypes = (subcommand = 'export', pattern = []) => __awaiter(void 0, void 0, void 0, function* () { var _a; const ctBuildDirectory = path_util_1.default.cache('ct-build'); yield (0, rimraf_1.default)(ctBuildDirectory, (error) => error && console.log(error)); if (pattern.length === 0) { pattern = [ 'components/**/*.ts', 'components/**/*.tsx', 'components/**/*.js', 'components/**/*.jsx', 'templates/**/*.ts', 'templates/**/*.tsx', 'templates/**/*.js', 'templates/**/*.jsx', ]; } console.log('Scanning with: ', pattern.join(' '), ' patterns.'); const componentFiles = yield (0, fast_glob_1.default)(pattern); const requireComponentFiles = componentFiles.map(file => `./${path_1.default.relative(path_util_1.default.processRoot(), path_util_1.default.processRoot(file))}`); const requireStatements = componentFiles.map(file => (` { require: () => __webpack_require__('./${path_1.default.relative(path_util_1.default.processRoot(), path_util_1.default.processRoot(file))}'), file: '${file}' } `)).join(',\n'); const webpackServerConfig = (0, webpack_config_1.webpackServerConfigure)((webpackConfig) => { webpackConfig.entry = [ path_util_1.default.root('scripts', 'entry', 'content-types'), ...requireComponentFiles ]; webpackConfig.devtool = false; webpackConfig.output.path = ctBuildDirectory; webpackConfig.module.rules = [{ test: /\.[jt]sx?$/, exclude: /node_modules/, use: [ { loader: require.resolve('babel-loader'), options: { cacheDirectory: true, cacheCompression: true, presets: [ [ require.resolve('@babel/preset-env'), { modules: 'cjs', loose: true, }, ], require.resolve('@babel/preset-react'), require.resolve('@babel/preset-typescript'), ], plugins: [ require.resolve('babel-plugin-transform-typescript-metadata'), [ require.resolve('@babel/plugin-proposal-decorators'), { legacy: true, }, ], [ require.resolve('babel-plugin-module-resolver'), { root: ['./src/'], alias: { '@admin': './src/admin', '@drivers': './src/drivers', '@features': './src/features', '@interfaces': './src/interfaces', '@listeners': './src/listeners', '@models': './src/models', '@scripts': './src/scripts', '@server': './src/server', '@shared': './src/shared', }, }, ], [ require.resolve('@babel/plugin-transform-runtime'), { helpers: true, regenerator: true, }, ], ], }, }, ], }]; webpackConfig.plugins.push(new webpack_1.default.DefinePlugin({ REQUIRE_STATEMENTS: `[${requireStatements}]`, COMMAND: JSON.stringify(subcommand) })); return webpackConfig; }, (_a = config_1.default === null || config_1.default === void 0 ? void 0 : config_1.default.webpack) === null || _a === void 0 ? void 0 : _a.server); const serverCompiler = (0, webpack_1.default)(webpackServerConfig); yield (0, webpack_util_1.compilerRun)(serverCompiler); }); exports.default = scriptContentTypes;