Skip to content

Commit 293598e

Browse files
committed
feat: Update nano-build options and presets
This commit updates the nano-build options and presets in the nano-build.cjs file. It introduces a new developmentOptions object for sourcemap and sourcesContent settings. The dropLabels option is used to remove the __dev_mode__ label. The getOptions function now checks for the preset name and merges the corresponding presetOptions. The options object is then updated based on the devMode value, using either the nano-build-development or nano-build-production settings. Finally, null fields are removed from the esbuildOptions.
1 parent 043cca0 commit 293598e

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

packages/nano-build/nano-build.cjs

+31-4
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,22 @@ const defaultOptions = {
3838
define: {
3939
__package_name__: `'${packageJson.name}'`,
4040
__package_version__: `'${packageJson.version}'`,
41+
__dev_mode__: devMode.toString(),
4142
},
4243
};
4344

45+
/**
46+
* @type {import('esbuild').BuildOptions}
47+
*/
48+
const developmentOptions = {
49+
sourcemap: true,
50+
sourcesContent: true,
51+
dropLabels: ['__dev_mode__'],
52+
}
53+
54+
/**
55+
* @type {DictionaryOpt<import('esbuild').BuildOptions & {cjs?: true}>}
56+
*/
4457
const presetRecord = {
4558
default: {},
4659
module: {
@@ -95,19 +108,33 @@ const presetRecord = {
95108
function getOptions() {
96109
let presetName = process.argv.find((arg) => arg.startsWith('--preset='))?.split('=')[1] ?? 'default';
97110
console.log('🔧 preset: %s', presetName);
98-
const presetOptions = presetRecord[presetName];
99-
if (!presetOptions) {
111+
if (!Object.hasOwn(presetRecord, presetName)) {
100112
console.error('❌ preset not found', {preset: presetName});
101113
process.exit(1);
102114
}
103115

104-
const options = {
116+
const presetOptions = presetRecord[presetName];
117+
118+
let options = {
105119
...defaultOptions,
106120
...presetOptions,
107121
...packageJson['nano-build'],
108-
...packageJson['nano-build-' + (devMode ? 'development' : 'production')],
122+
109123
};
110124

125+
if (devMode) {
126+
options = {
127+
...options,
128+
...developmentOptions,
129+
...packageJson['nano-build-development'],
130+
}
131+
} else {
132+
options = {
133+
...options,
134+
...packageJson['nano-build-production'],
135+
}
136+
}
137+
111138
// Remove null fields from esbuildOptions
112139
Object.keys(options).forEach((key) => {
113140
if (options[key] === null) {

0 commit comments

Comments
 (0)