vite-plugin-zephyr
Version:
Vite plugin for Zephyr
63 lines (62 loc) • 3 kB
JavaScript
import { ZeErrors, ZephyrEngine, ZephyrError, assertZephyrBuildTarget, handleGlobalError, savePartialAssetMap } from "zephyr-agent";
import { extract_vite_assets_map } from "./internal/extract/extract_vite_assets_map.mjs";
import { requireVitePartialBuildScope } from "./internal/partial-build-scope.mjs";
import * as __rspack_external_node_path_806ed179 from "node:path";
function withZephyrPartial(options = {}) {
if (void 0 !== options.target) assertZephyrBuildTarget(options.target, 'withZephyrPartial({ target })');
const { zephyr_engine_defer, zephyr_defer_create } = ZephyrEngine.defer_create();
let partialScope;
let resolve_vite_internal_options;
const vite_internal_options_defer = new Promise((resolve)=>{
resolve_vite_internal_options = resolve;
});
return {
name: 'with-zephyr-partial',
apply: 'build',
enforce: 'post',
configResolved: async (config)=>{
partialScope = requireVitePartialBuildScope(options);
zephyr_defer_create({
builder: 'vite',
context: config.root,
target: options.target
});
resolve_vite_internal_options({
root: config.root,
configFile: config.configFile,
outDir: config.build.outDir,
publicDir: config.publicDir,
target: options.target
});
},
writeBundle: async function(options, bundle) {
const baseOptions = await vite_internal_options_defer;
const environmentName = this.environment?.name;
const outputDir = __rspack_external_node_path_806ed179.resolve(baseOptions.root, options.dir ?? (options.file ? __rspack_external_node_path_806ed179.dirname(options.file) : baseOptions.outDir));
const vite_internal_options = {
...baseOptions,
dir: options.dir,
outDir: outputDir,
assets: bundle
};
try {
if (!partialScope) throw new ZephyrError(ZeErrors.ERR_DEPLOY_LOCAL_BUILD, {
message: 'Vite partial build scope was not resolved before writeBundle.'
});
const zephyr_engine = await zephyr_engine_defer;
const application_uid = zephyr_engine.application_uid;
const assetsMap = await extract_vite_assets_map(zephyr_engine, vite_internal_options);
await savePartialAssetMap(application_uid, [
'vite-partial',
vite_internal_options.configFile ?? 'partial',
environmentName ?? 'default',
outputDir.replace(/\\/g, '/')
].join(':'), assetsMap, partialScope);
} catch (error) {
handleGlobalError(error);
}
}
};
}
export { withZephyrPartial };
//# sourceMappingURL=vite-plugin-zephyr-partial.mjs.map