obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
96 lines (93 loc) • 11.3 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:__name(()=>"/","cwd"),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/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdXcm9uZyBwYXRoJykpLCAnbm9kZTonKTtcbiAgICAgICAgICBpZiAoIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMoYXJncy5wYXRoKSAmJiAhZGVwZW5kZW5jaWVzVG9Ta2lwLmhhcyhtb2R1bGVOYW1lKSkge1xuICAgICAgICAgICAgZGVwZW5kZW5jaWVzVG9CdW5kbGUuYWRkKGFyZ3MucGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGV4dGVybmFsOiB0cnVlLCBwYXRoOiBhcmdzLnBhdGggfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFhQSxTQUFTLGVBQWU7QUFFeEIsU0FBUyx1QkFBdUI7QUFDaEM7QUFBQSxFQUNF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