@storm-software/esbuild
Version:
A package containing `esbuild` utilities for building Storm Software libraries and applications
150 lines (136 loc) • 5.99 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _chunk4KTFAYGLcjs = require('./chunk-4KTFAYGL.cjs');
var _chunkI7VU53I5cjs = require('./chunk-I7VU53I5.cjs');
var _chunk7DZ3NOLBcjs = require('./chunk-7DZ3NOLB.cjs');
var _chunkJG7MZJV2cjs = require('./chunk-JG7MZJV2.cjs');
// src/package-json.ts
_chunkJG7MZJV2cjs.init_cjs_shims.call(void 0, );
var _devkit = require('@nx/devkit');
var _fs = require('fs');
var _promises = require('fs/promises'); var _promises2 = _interopRequireDefault(_promises);
async function generatePackageJson(context) {
if (context.options.generatePackageJson !== false && _fs.existsSync.call(void 0, _chunkI7VU53I5cjs.joinPaths.call(void 0, context.options.projectRoot, "package.json"))) {
_chunk7DZ3NOLBcjs.writeDebug.call(void 0, " \u270D\uFE0F Writing package.json file", context.workspaceConfig);
const stopwatch = _chunk7DZ3NOLBcjs.getStopwatch.call(void 0, "Write package.json file");
const packageJsonPath = _chunkI7VU53I5cjs.joinPaths.call(void 0,
context.options.projectRoot,
"project.json"
);
if (!_fs.existsSync.call(void 0, packageJsonPath)) {
throw new Error("Cannot find package.json configuration");
}
const packageJsonFile = await _promises2.default.readFile(
_chunkI7VU53I5cjs.joinPaths.call(void 0,
context.workspaceConfig.workspaceRoot,
context.options.projectRoot,
"package.json"
),
"utf8"
);
let packageJson = JSON.parse(packageJsonFile);
if (!packageJson) {
throw new Error("Cannot find package.json configuration file");
}
packageJson = await _chunk4KTFAYGLcjs.addPackageDependencies.call(void 0,
context.workspaceConfig.workspaceRoot,
context.options.projectRoot,
context.projectName,
packageJson
);
packageJson = await _chunk4KTFAYGLcjs.addWorkspacePackageJsonFields.call(void 0,
context.workspaceConfig,
context.options.projectRoot,
context.sourceRoot,
context.projectName,
false,
packageJson
);
if (context.options.entry) {
packageJson.exports ??= {};
packageJson.exports["./package.json"] ??= "./package.json";
const entryPoints = Array.isArray(context.options.entry) ? context.options.entry : Object.keys(context.options.entry);
if (entryPoints.length > 0) {
const defaultEntry = entryPoints.includes("index") ? `.${context.options.distDir ? `/${context.options.distDir}` : ""}/index` : `.${context.options.distDir ? `/${context.options.distDir}` : ""}/${entryPoints[0]}`;
const isEsm = Array.isArray(context.options.format) ? context.options.format.includes("esm") : context.options.format === "esm";
const isCjs = Array.isArray(context.options.format) ? context.options.format.includes("cjs") : context.options.format === "cjs";
const isDts = context.options.dts || context.options.experimentalDts;
packageJson.exports["."] ??= `${defaultEntry}.${isEsm ? "mjs" : isCjs ? "cjs" : "js"}`;
for (const entryPoint of entryPoints) {
packageJson.exports[`./${entryPoint}`] ??= {};
if (isEsm) {
if (isDts) {
packageJson.exports[`./${entryPoint}`].import = {
types: `./dist/${entryPoint}.d.mts`,
default: `./dist/${entryPoint}.mjs`
};
} else {
packageJson.exports[`./${entryPoint}`].import = `./dist/${entryPoint}.mjs`;
}
if (isDts) {
packageJson.exports[`./${entryPoint}`].default = {
types: `./dist/${entryPoint}.d.mts`,
default: `./dist/${entryPoint}.mjs`
};
} else {
packageJson.exports[`./${entryPoint}`].default = `./dist/${entryPoint}.mjs`;
}
}
if (isCjs) {
if (isDts) {
packageJson.exports[`./${entryPoint}`].require = {
types: `./dist/${entryPoint}.d.cts`,
default: `./dist/${entryPoint}.cjs`
};
} else {
packageJson.exports[`./${entryPoint}`].require = `./dist/${entryPoint}.cjs`;
}
if (!isEsm) {
if (isDts) {
packageJson.exports[`./${entryPoint}`].default = {
types: `./dist/${entryPoint}.d.cts`,
default: `./dist/${entryPoint}.cjs`
};
} else {
packageJson.exports[`./${entryPoint}`].default = `./dist/${entryPoint}.cjs`;
}
}
}
if (!isEsm && !isCjs) {
if (isDts) {
packageJson.exports[`./${entryPoint}`].default = {
types: `./dist/${entryPoint}.d.ts`,
default: `./dist/${entryPoint}.js`
};
} else {
packageJson.exports[`./${entryPoint}`].default = `./dist/${entryPoint}.js`;
}
}
}
if (isEsm) {
packageJson.module = `${defaultEntry}.mjs`;
} else {
packageJson.main = `${defaultEntry}.cjs`;
}
if (isDts) {
packageJson.types = `${defaultEntry}.d.${isEsm ? "mts" : isCjs ? "cts" : "ts"}`;
}
packageJson.exports = Object.keys(packageJson.exports).reduce(
(ret, key) => {
if (key.endsWith("/index") && !ret[key.replace("/index", "")]) {
ret[key.replace("/index", "")] = packageJson.exports[key];
}
return ret;
},
packageJson.exports
);
}
}
await _devkit.writeJsonFile.call(void 0,
_chunkI7VU53I5cjs.joinPaths.call(void 0, context.outputPath, "package.json"),
packageJson
);
stopwatch();
}
return context;
}
exports.generatePackageJson = generatePackageJson;