obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
110 lines (106 loc) • 11.4 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initEsm() {
if (globalThis.process) {
return;
}
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
globalThis.process = browserProcess;
})();
import { context } from "esbuild";
import { throwExpression } from "../../Error.mjs";
import {
getFolderName,
join
} from "../../Path.mjs";
import { trimStart } from "../../String.mjs";
import {
builtinModules,
createRequire
} from "../NodeModules.mjs";
import { readPackageJson } from "../Npm.mjs";
import { ObsidianDevUtilsRepoPaths } from "../ObsidianDevUtilsRepoPaths.mjs";
import {
banner,
invokeEsbuild
} from "./ObsidianPluginBuilder.mjs";
import { preprocessPlugin } from "./preprocessPlugin.mjs";
const esmRequire = createRequire(import.meta.url);
async function getDependenciesToBundle() {
const dependenciesToSkip = await getDependenciesToSkip();
const dependenciesToBundle = /* @__PURE__ */ new Set();
const buildOptions = {
banner: {
js: banner
},
bundle: true,
entryPoints: [join(ObsidianDevUtilsRepoPaths.Src, ObsidianDevUtilsRepoPaths.AnyPath, ObsidianDevUtilsRepoPaths.AnyTs)],
format: "cjs",
logLevel: "info",
outdir: "nothing-will-be-written-on-disk-so-this-does-not-matter",
platform: "node",
plugins: [
preprocessPlugin(),
extractDependenciesToBundlePlugin(dependenciesToSkip, dependenciesToBundle)
],
sourcemap: "inline",
target: "ESNext",
treeShaking: true,
write: false
};
const buildContext = await context(buildOptions);
await invokeEsbuild(buildContext, true);
return Array.from(dependenciesToBundle).sort();
}
async function getDependenciesToSkip() {
const packageJson = await readPackageJson(getFolderName(import.meta.url));
const dependenciesToSkip = /* @__PURE__ */ new Set([...builtinModules, ...Object.keys(packageJson.dependencies ?? {}).filter(canSkipFromBundling)]);
return dependenciesToSkip;
}
function canSkipFromBundling(moduleName) {
if (moduleName.startsWith("@types/")) {
return true;
}
if (moduleName.startsWith("obsidian")) {
return true;
}
if (moduleName === "esbuild") {
return true;
}
try {
const module = esmRequire(moduleName);
return !module.default;
} catch {
return false;
}
}
function extractDependenciesToBundlePlugin(dependenciesToSkip, dependenciesToBundle) {
return {
name: "test",
setup(build) {
build.onResolve({ filter: /^[^./]/ }, (args) => {
if (!args.importer.endsWith(ObsidianDevUtilsRepoPaths.DtsExtension)) {
const moduleName = trimStart(args.path.split("/")[0] ?? throwExpression(new Error("Wrong path")), "node:");
if (!dependenciesToSkip.has(args.path) && !dependenciesToSkip.has(moduleName)) {
dependenciesToBundle.add(args.path);
}
}
return { external: true, path: args.path };
});
}
};
}
export {
getDependenciesToBundle,
getDependenciesToSkip
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL2VzYnVpbGQvRGVwZW5kZW5jeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIG1hbmFnaW5nIGRlcGVuZGVuY2llcyBkdXJpbmcgdGhlIGVzYnVpbGQgcHJvY2Vzcy5cbiAqIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBkZXRlcm1pbmUgd2hpY2ggZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBza2lwcGVkIGFuZCB3aGljaFxuICogc2hvdWxkIGJlIGJ1bmRsZWQsIGFzIHdlbGwgYXMgYW4gZXNidWlsZCBwbHVnaW4gZm9yIGV4dHJhY3RpbmcgZGVwZW5kZW5jaWVzIHRvIGJ1bmRsZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEJ1aWxkT3B0aW9ucyxcbiAgUGx1Z2luXG59IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBjb250ZXh0IH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vUGF0aC50cyc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICcuLi8uLi9TdHJpbmcudHMnO1xuaW1wb3J0IHtcbiAgYnVpbHRpbk1vZHVsZXMsXG4gIGNyZWF0ZVJlcXVpcmVcbn0gZnJvbSAnLi4vTm9kZU1vZHVsZXMudHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi4vTnBtLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGJhbm5lcixcbiAgaW52b2tlRXNidWlsZFxufSBmcm9tICcuL09ic2lkaWFuUGx1Z2luQnVpbGRlci50cyc7XG5pbXBvcnQgeyBwcmVwcm9jZXNzUGx1Z2luIH0gZnJvbSAnLi9wcmVwcm9jZXNzUGx1Z2luLnRzJztcblxuY29uc3QgZXNtUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW50ZXJmYWNlIE1vZHVsZVdpdGhEZWZhdWx0RXhwb3J0IHtcbiAgZGVmYXVsdDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgYnVuZGxlZCBieSBlc2J1aWxkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgZGVwZW5kZW5jeSBuYW1lcyB0byBidW5kbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZXBlbmRlbmNpZXNUb0J1bmRsZSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1RvU2tpcCA9IGF3YWl0IGdldERlcGVuZGVuY2llc1RvU2tpcCgpO1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb0J1bmRsZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0IGJ1aWxkT3B0aW9uczogQnVpbGRPcHRpb25zID0ge1xuICAgIGJhbm5lcjoge1xuICAgICAganM6IGJhbm5lclxuICAgIH0sXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIGVudHJ5UG9pbnRzOiBbam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkFueVRzKV0sXG4gICAgZm9ybWF0OiAnY2pzJyxcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIG91dGRpcjogJ25vdGhpbmctd2lsbC1iZS13cml0dGVuLW9uLWRpc2stc28tdGhpcy1kb2VzLW5vdC1tYXR0ZXInLFxuICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgcGx1Z2luczogW1xuICAgICAgcHJlcHJvY2Vzc1BsdWdpbigpLFxuICAgICAgZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luKGRlcGVuZGVuY2llc1RvU2tpcCwgZGVwZW5kZW5jaWVzVG9CdW5kbGUpXG4gICAgXSxcbiAgICBzb3VyY2VtYXA6ICdpbmxpbmUnLFxuICAgIHRhcmdldDogJ0VTTmV4dCcsXG4gICAgdHJlZVNoYWtpbmc6IHRydWUsXG4gICAgd3JpdGU6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0ID0gYXdhaXQgY29udGV4dChidWlsZE9wdGlvbnMpO1xuICBhd2FpdCBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dCwgdHJ1ZSk7XG4gIHJldHVybiBBcnJheS5mcm9tKGRlcGVuZGVuY2llc1RvQnVuZGxlKS5zb3J0KCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGRlcGVuZGVuY2llcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyB0aGUgYnVuZGxpbmcgcHJvY2Vzcy5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIFNldH0gb2YgZGVwZW5kZW5jeSBuYW1lcyB0byBza2lwLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9Ta2lwKCk6IFByb21pc2U8U2V0PHN0cmluZz4+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9Ta2lwID0gbmV3IFNldDxzdHJpbmc+KFsuLi5idWlsdGluTW9kdWxlcywgLi4uT2JqZWN0LmtleXMocGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID8/IHt9KS5maWx0ZXIoY2FuU2tpcEZyb21CdW5kbGluZyldKTtcbiAgcmV0dXJuIGRlcGVuZGVuY2llc1RvU2tpcDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqL1xuZnVuY3Rpb24gY2FuU2tpcEZyb21CdW5kbGluZyhtb2R1bGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnQHR5cGVzLycpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZS5zdGFydHNXaXRoKCdvYnNpZGlhbicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZSA9PT0gJ2VzYnVpbGQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG1vZHVsZSA9IGVzbVJlcXVpcmUobW9kdWxlTmFtZSkgYXMgTW9kdWxlV2l0aERlZmF1bHRFeHBvcnQ7XG4gICAgcmV0dXJuICFtb2R1bGUuZGVmYXVsdDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGlkZW50aWZpZXMgd2hpY2ggZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBidW5kbGVkLlxuICpcbiAqIEBwYXJhbSBkZXBlbmRlbmNpZXNUb1NraXAgLSBBIHNldCBvZiBkZXBlbmRlbmN5IG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNraXBwZWQgZHVyaW5nIGJ1bmRsaW5nLlxuICogQHBhcmFtIGRlcGVuZGVuY2llc1RvQnVuZGxlIC0gQSBzZXQgd2hlcmUgdGhlIG5hbWVzIG9mIGRlcGVuZGVuY2llcyB0byBiZSBidW5kbGVkIHdpbGwgYmUgYWRkZWQuXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGV4dHJhY3RzIGRlcGVuZGVuY2llcyB0byBidW5kbGUuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpbihkZXBlbmRlbmNpZXNUb1NraXA6IFNldDxzdHJpbmc+LCBkZXBlbmRlbmNpZXNUb0J1bmRsZTogU2V0PHN0cmluZz4pOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICd0ZXN0JyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25SZXNvbHZlKHsgZmlsdGVyOiAvXlteLi9dLyB9LCAoYXJncykgPT4ge1xuICAgICAgICBpZiAoIWFyZ3MuaW1wb3J0ZXIuZW5kc1dpdGgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EdHNFeHRlbnNpb24pKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRyaW1TdGFydChhcmdzLnBhdGguc3BsaXQoJy8nKVswXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdXcm9uZyBwYXRoJykpLCAnbm9kZTonKTtcbiAgICAgICAgICBpZiAoIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMoYXJncy5wYXRoKSAmJiAhZGVwZW5kZW5jaWVzVG9Ta2lwLmhhcyhtb2R1bGVOYW1lKSkge1xuICAgICAgICAgICAgZGVwZW5kZW5jaWVzVG9CdW5kbGUuYWRkKGFyZ3MucGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGV4dGVybmFsOiB0cnVlLCBwYXRoOiBhcmdzLnBhdGggfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLFNBQVMsZUFBZTtBQUV4QixTQUFTLHVCQUF1QjtB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