msoffice-addin
Version:
Microsoft office addin module for Nuxt abd vite
45 lines (39 loc) • 1.48 kB
JavaScript
;
const fs = require('node:fs');
const node_path = require('node:path');
const vite = require('vite');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
const fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
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 = vite.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 = node_path.resolve(src);
if (!fs__default.existsSync(src)) {
console.warn(`Office manifest not found in: ${absoluteSrc}. Ignored entry.`);
continue;
}
const manifest = fs__default.readFileSync(src).toString("utf-8");
const content = manifest.replaceAll(/{(VITE|NUXT)_.*?}/gm, (pattern) => {
const key = pattern.replace(/{|}/gm, "");
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;
}
exports.OFFICE_JS_LOADER_SNIPPET = OFFICE_JS_LOADER_SNIPPET;
exports.transformManifests = transformManifests;