obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
56 lines (53 loc) • 7.92 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 { toPosixPath } from "../../Path.mjs";
import { replaceAll } from "../../String.mjs";
import {
existsSync,
readFile,
writeFile
} from "../NodeModules.mjs";
function fixSourceMapsPlugin(isProductionBuild, distPaths, pluginName) {
return {
name: "fix-source-maps",
setup(build) {
build.onEnd(async () => {
if (isProductionBuild) {
return;
}
for (const distPath of distPaths) {
if (!existsSync(distPath)) {
continue;
}
const content = await readFile(distPath, "utf-8");
const newContent = replaceAll(
content,
/(?<Prefix>\n(?:\/\/|\/\*)# sourceMappingURL=data:application\/json;base64,)(?<SourceMapBase64>.+?)(?<Suffix>$|\n| \*\/)(?:.|\n)*/g,
(_, prefix, sourceMapBase64, suffix) => `${prefix + fixSourceMap(sourceMapBase64, pluginName) + suffix.trim()}
/* nosourcemap */`
);
if (content !== newContent) {
await writeFile(distPath, newContent);
}
}
});
}
};
}
function convertPathToObsidianUrl(path, pluginName) {
const convertedPath = replaceAll(toPosixPath(path), /^(?:\.\.\/)+/g, "");
return `app://obsidian.md/plugin:${pluginName}/${convertedPath}`;
}
function fixSourceMap(sourceMapBase64, pluginName) {
const sourceMapJson = Buffer.from(sourceMapBase64, "base64").toString("utf-8");
const sourceMap = JSON.parse(sourceMapJson);
sourceMap.sources = (sourceMap.sources ?? []).map((path) => convertPathToObsidianUrl(path, pluginName));
return Buffer.from(JSON.stringify(sourceMap)).toString("base64");
}
export {
fixSourceMapsPlugin
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL2VzYnVpbGQvZml4U291cmNlTWFwc1BsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgZ2VuZXJhdGVkIGR1cmluZyBkZXZlbG9wbWVudC5cbiAqIEl0IGFkanVzdHMgdGhlIHBhdGhzIGluIHRoZSBzb3VyY2UgbWFwcyB0byBiZSBjb21wYXRpYmxlIHdpdGggT2JzaWRpYW4ncyBpbnRlcm5hbCBVUkwgc2NoZW1lLlxuICogQSBwbHVnaW4gaXMgb25seSBhY3RpdmUgZHVyaW5nIGRldmVsb3BtZW50IGJ1aWxkcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJy4uLy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uLy4uL1N0cmluZy50cyc7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJy4uL05vZGVNb2R1bGVzLnRzJztcblxuaW50ZXJmYWNlIFNvdXJjZU1hcCB7XG4gIHNvdXJjZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyBzb3VyY2UgbWFwcyBieSBhZGp1c3RpbmcgdGhlIHBhdGhzIHRvIGJlIGNvbXBhdGlibGVcbiAqIHdpdGggT2JzaWRpYW4ncyBpbnRlcm5hbCBVUkwgc2NoZW1lLlxuICpcbiAqIEBwYXJhbSBpc1Byb2R1Y3Rpb25CdWlsZCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC4gVGhlIHBsdWdpbiBvbmx5IHJ1bnMgaW4gbm9uLXByb2R1Y3Rpb24gYnVpbGRzLlxuICogQHBhcmFtIGRpc3RQYXRocyAtIFRoZSBwYXRocyB0byB0aGUgb3V0cHV0IGZpbGVzIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBtYXBzLlxuICogQHBhcmFtIHBsdWdpbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgT2JzaWRpYW4tc3BlY2lmaWMgVVJMcy5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZml4ZXMgc291cmNlIG1hcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhTb3VyY2VNYXBzUGx1Z2luKGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuLCBkaXN0UGF0aHM6IHN0cmluZ1tdLCBwbHVnaW5OYW1lOiBzdHJpbmcpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmaXgtc291cmNlLW1hcHMnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vbkVuZChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZGlzdFBhdGggb2YgZGlzdFBhdGhzKSB7XG4gICAgICAgICAgaWYgKCFleGlzdHNTeW5jKGRpc3RQYXRoKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGRpc3RQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gcmVwbGFjZUFsbChcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAvKD88UHJlZml4Plxcbig/OlxcL1xcL3xcXC9cXCopIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb25cXC9qc29uO2Jhc2U2NCwpKD88U291cmNlTWFwQmFzZTY0Pi4rPykoPzxTdWZmaXg+JHxcXG58IFxcKlxcLykoPzoufFxcbikqL2csXG4gICAgICAgICAgICAoXywgcHJlZml4LCBzb3VyY2VNYXBCYXNlNjQsIHN1ZmZpeCk6IHN0cmluZyA9PiBgJHtwcmVmaXggKyBmaXhTb3VyY2VNYXAoc291cmNlTWFwQmFzZTY0LCBwbHVnaW5OYW1lKSArIHN1ZmZpeC50cmltKCl9XFxuLyogbm9zb3VyY2VtYXAgKi9gXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChjb250ZW50ICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZGlzdFBhdGgsIG5ld0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgZ2l2ZW4gZmlsZSBwYXRoIHRvIGFuIE9ic2lkaWFuLXNwZWNpZmljIFVSTC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBvcmlnaW5hbCBmaWxlIHBhdGguXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIHBhdGggYXMgYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmwocGF0aDogc3RyaW5nLCBwbHVnaW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb252ZXJ0ZWRQYXRoID0gcmVwbGFjZUFsbCh0b1Bvc2l4UGF0aChwYXRoKSwgL14oPzpcXC5cXC5cXC8pKy9nLCAnJyk7XG4gIHJldHVybiBgYXBwOi8vb2JzaWRpYW4ubWQvcGx1Z2luOiR7cGx1Z2luTmFtZX0vJHtjb252ZXJ0ZWRQYXRofWA7XG59XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIGJhc2U2NC1lbmNvZGVkIHNvdXJjZSBtYXAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIE9ic2lkaWFuJ3MgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gc291cmNlTWFwQmFzZTY0IC0gVGhlIGJhc2U2NC1lbmNvZGVkIHNvdXJjZSBtYXAgY29udGVudC5cbiAqIEBwYXJhbSBwbHVnaW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbiwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIE9ic2lkaWFuLXNwZWNpZmljIFVSTHMuXG4gKiBAcmV0dXJucyBBIGJhc2U2NC1lbmNvZGVkIHN0cmluZyB3aXRoIHRoZSBhZGp1c3RlZCBzb3VyY2UgbWFwLlxuICovXG5mdW5jdGlvbiBmaXhTb3VyY2VNYXAoc291cmNlTWFwQmFzZTY0OiBzdHJpbmcsIHBsdWdpbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNvdXJjZU1hcEpzb24gPSBCdWZmZXIuZnJvbShzb3VyY2VNYXBCYXNlNjQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKTtcbiAgY29uc3Qgc291cmNlTWFwID0gSlNPTi5wYXJzZShzb3VyY2VNYXBKc29uKSBhcyBQYXJ0aWFsPFNvdXJjZU1hcD47XG4gIHNvdXJjZU1hcC5zb3VyY2VzID0gKHNvdXJjZU1hcC5zb3VyY2VzID8/IFtdKS5tYXAoKHBhdGgpID0+IGNvbnZlcnRQYXRoVG9PYnNpZGlhblVybChwYXRoLCBwbHVnaW5OYW1lKSk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBVUEsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBZUEsU0FBUyxvQkFBb0IsbUJBQTRCLFdBQXFCLFlBQTRCO0FBQy9HLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sWUFBWTtBQUN0QixZQUFJLG1CQUFtQjtBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxtQkFBVyxZQUFZLFdBQVc7QUFDaEMsY0FBSSxDQUFDLFdBQVcsUUFBUSxHQUFHO0FBQ3pCO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsTUFBTSxTQUFTLFVBQVUsT0FBTztBQUNoRCxnQkFBTSxhQUFhO0FBQUEsWUFDakI7QUFBQSxZQUNBO0FBQUEsWUFDQSxDQUFDLEdBQUcsUUFBUSxpQkFBaUIsV0FBbUIsR0FBRyxTQUFTLGFBQWEsaUJBQWlCLFVBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQztBQUFBO0FBQUEsVUFDdkg7QUFFQSxjQUFJLFlBQVksWUFBWTtBQUMxQixrQkFBTSxVQUFVLFVBQVUsVUFBVTtBQUFBLFVBQ3RDO0FBQUEsUUFDRjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFTQSxTQUFTLHlCQUF5QixNQUFjLFlBQTRCO0FBQzFFLFFBQU0sZ0JBQWdCLFdBQVcsWUFBWSxJQUFJLEdBQUcsaUJBQWlCLEVBQUU7QUFDdkUsU0FBTyw0QkFBNEIsVUFBVSxJQUFJLGFBQWE7QUFDaEU7QUFTQSxTQUFTLGFBQWEsaUJBQXlCLFlBQTRCO0FBQ3pFLFFBQU0sZ0JBQWdCLE9BQU8sS0FBSyxpQkFBaUIsUUFBUSxFQUFFLFNBQVMsT0FBTztBQUM3RSxRQUFNLFlBQVksS0FBSyxNQUFNLGFBQWE7QUFDMUMsWUFBVSxXQUFXLFVBQVUsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMseUJBQXlCLE1BQU0sVUFBVSxDQUFDO0FBQ3RHLFNBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxTQUFTLENBQUMsRUFBRSxTQUFTLFFBQVE7QUFDakU7IiwKICAibmFtZXMiOiBbXQp9Cg==