37 lines
882 B
JavaScript
37 lines
882 B
JavaScript
const esbuild = require('esbuild');
|
|
|
|
module.exports = eleventyConfig => {
|
|
eleventyConfig.addTemplateFormats('js');
|
|
|
|
eleventyConfig.addExtension('js', {
|
|
outputFileExtension: 'js',
|
|
compile: async (content, path) => {
|
|
if (!path.startsWith('./src/assets/scripts/')) {
|
|
return;
|
|
}
|
|
|
|
if (path === './src/assets/scripts/theme-toggle.js') {
|
|
await esbuild.build({
|
|
target: 'es2020',
|
|
entryPoints: [path],
|
|
outfile: './src/_includes/theme-toggle-inline.js',
|
|
bundle: true,
|
|
minify: true
|
|
});
|
|
return;
|
|
}
|
|
|
|
return async () => {
|
|
let output = await esbuild.build({
|
|
target: 'es2020',
|
|
entryPoints: [path],
|
|
minify: true,
|
|
bundle: true,
|
|
write: false
|
|
});
|
|
|
|
return output.outputFiles[0].text;
|
|
};
|
|
}
|
|
});
|
|
};
|