msoffice-addin
Version:
Microsoft office addin module for Nuxt abd vite
38 lines (35 loc) • 1.22 kB
JavaScript
import fs from 'node:fs';
import { resolve } from 'node:path';
import { loadEnv } from 'vite';
const OFFICE_JS_URL = "https://appsforoffice.microsoft.com/lib/1/hosted/office.js";
const OFFICE_JS_LOADER_SNIPPET = `<script src="${OFFICE_JS_URL}"><\/script>`;
function transformManifests(params) {
const entries = [];
const env = loadEnv(params.mode, params.envDir);
if (params.defineENV) {
const data = params.defineENV({ ...env });
Object.assign(env, data);
}
for (const { src, route } of params.inputs) {
const absoluteSrc = resolve(src);
if (!fs.existsSync(src)) {
console.warn(`Office manifest not found in: ${absoluteSrc}. Ignored entry.`);
continue;
}
const manifest = fs.readFileSync(src).toString("utf-8");
const content = manifest.replaceAll(/\{(VITE|NUXT)_.*?\}/g, (pattern) => {
const key = pattern.replace(/\{|\}/g, "");
if (key in env)
return env[key];
console.warn(`${key} not found in env variables but used in manifest: ${absoluteSrc}`);
return pattern;
});
entries.push({
src,
route,
content
});
}
return entries;
}
export { OFFICE_JS_LOADER_SNIPPET as O, transformManifests as t };