burdy
Version:
Open Source Headless Platform
122 lines (121 loc) • 6.3 kB
JavaScript
;
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;