obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
45 lines (42 loc) • 5.74 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 { replaceAll } from "../../String.mjs";
import { writeFile } from "../NodeModules.mjs";
import { ObsidianDevUtilsRepoPaths } from "../ObsidianDevUtilsRepoPaths.mjs";
function changeExtensionPlugin(extension) {
return {
name: "change-extension",
setup(build) {
build.onEnd(async (result) => {
for (const file of result.outputFiles ?? []) {
if (!file.path.endsWith(ObsidianDevUtilsRepoPaths.JsExtension) || file.path.endsWith(ObsidianDevUtilsRepoPaths.DjsExtension)) {
continue;
}
const newPath = replaceAll(file.path, /\.js$/g, extension);
let newText = replaceAll(file.text, /require\(["'](?<ImportPath>.+?)["']\)/g, (_, importPath) => {
if (importPath.endsWith(ObsidianDevUtilsRepoPaths.DtsExtension)) {
return "undefined";
}
const fixedImportPath = replaceAll(importPath, /\.ts$/g, extension);
return `require('${fixedImportPath}')`;
});
newText = replaceAll(newText, /from "(?<ImportPath>.+?)"/g, (_, importPath) => {
if (importPath.endsWith(ObsidianDevUtilsRepoPaths.DtsExtension)) {
return "undefined";
}
const fixedImportPath = replaceAll(importPath, /\.ts$/g, extension);
return `from "${fixedImportPath}"`;
});
await writeFile(newPath, newText);
}
});
}
};
}
export {
changeExtensionPlugin
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL2VzYnVpbGQvY2hhbmdlRXh0ZW5zaW9uUGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBjaGFuZ2VzIHRoZSBleHRlbnNpb24gb2YgSmF2YVNjcmlwdCBmaWxlcyBhZnRlciB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJy4uL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY2hhbmdlcyB0aGUgZXh0ZW5zaW9uIG9mIEphdmFTY3JpcHQgZmlsZXMgYWZ0ZXIgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGV4dGVuc2lvbiAtIFRoZSBleHRlbnNpb24gdG8gY2hhbmdlIHRoZSBmaWxlcyB0by5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgaGFuZGxlcyB0aGUgcmVuYW1pbmcgYW5kIG1vZGlmaWNhdGlvbiBvZiBvdXRwdXQgZmlsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VFeHRlbnNpb25QbHVnaW4oZXh0ZW5zaW9uOiBzdHJpbmcpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjaGFuZ2UtZXh0ZW5zaW9uJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcmVzdWx0Lm91dHB1dEZpbGVzID8/IFtdKSB7XG4gICAgICAgICAgaWYgKCFmaWxlLnBhdGguZW5kc1dpdGgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Kc0V4dGVuc2lvbikgfHwgZmlsZS5wYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGpzRXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbmV3UGF0aCA9IHJlcGxhY2VBbGwoZmlsZS5wYXRoLCAvXFwuanMkL2csIGV4dGVuc2lvbik7XG5cbiAgICAgICAgICBsZXQgbmV3VGV4dCA9IHJlcGxhY2VBbGwoZmlsZS50ZXh0LCAvcmVxdWlyZVxcKFtcIiddKD88SW1wb3J0UGF0aD4uKz8pW1wiJ11cXCkvZywgKF8sIGltcG9ydFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbXBvcnRQYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRHRzRXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpeGVkSW1wb3J0UGF0aCA9IHJlcGxhY2VBbGwoaW1wb3J0UGF0aCwgL1xcLnRzJC9nLCBleHRlbnNpb24pO1xuICAgICAgICAgICAgcmV0dXJuIGByZXF1aXJlKCcke2ZpeGVkSW1wb3J0UGF0aH0nKWA7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBuZXdUZXh0ID0gcmVwbGFjZUFsbChuZXdUZXh0LCAvZnJvbSBcIig/PEltcG9ydFBhdGg+Lis/KVwiL2csIChfLCBpbXBvcnRQYXRoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW1wb3J0UGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkR0c0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaXhlZEltcG9ydFBhdGggPSByZXBsYWNlQWxsKGltcG9ydFBhdGgsIC9cXC50cyQvZywgZXh0ZW5zaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBgZnJvbSBcIiR7Zml4ZWRJbXBvcnRQYXRofVwiYDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShuZXdQYXRoLCBuZXdUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQVFBLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsaUJBQWlCO0FBQzFCLFNBQVMsaUNBQWlDO0FBUW5DLFNBQVMsc0JBQXNCLFdBQTJCO0FBQy9ELFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sT0FBTyxXQUFXO0FBQzVCLG1CQUFXLFFBQVEsT0FBTyxlQUFlLENBQUMsR0FBRztBQUMzQyxjQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsMEJBQTBCLFdBQVcsS0FBSyxLQUFLLEtBQUssU0FBUywwQkFBMEIsWUFBWSxHQUFHO0FBQzVIO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsV0FBVyxLQUFLLE1BQU0sVUFBVSxTQUFTO0FBRXpELGNBQUksVUFBVSxXQUFXLEtBQUssTUFBTSwwQ0FBMEMsQ0FBQyxHQUFHLGVBQWU7QUFDL0YsZ0JBQUksV0FBVyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDL0QscUJBQU87QUFBQSxZQUNUO0FBRUEsa0JBQU0sa0JBQWtCLFdBQVcsWUFBWSxVQUFVLFNBQVM7QUFDbEUsbUJBQU8sWUFBWSxlQUFlO0FBQUEsVUFDcEMsQ0FBQztBQUVELG9CQUFVLFdBQVcsU0FBUyw4QkFBOEIsQ0FBQyxHQUFHLGVBQWU7QUFDN0UsZ0JBQUksV0FBVyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDL0QscUJBQU87QUFBQSxZQUNUO0FBRUEsa0JBQU0sa0JBQWtCLFdBQVcsWUFBWSxVQUFVLFNBQVM7QUFDbEUsbUJBQU8sU0FBUyxlQUFlO0FBQUEsVUFDakMsQ0FBQztBQUVELGdCQUFNLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDbEM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=