obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
180 lines (166 loc) • 12.9 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 initCjs() {
const globalThisRecord = globalThis;
globalThisRecord['__name'] ??= name;
const originalRequire = require;
if (originalRequire && !originalRequire.__isPatched) {
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
require = Object.assign(
(id) => requirePatched(id),
originalRequire,
{
__isPatched: true
}
);
}
const newFuncs = {
__extractDefault() {
return extractDefault;
},
process() {
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
return browserProcess;
}
};
for (const key of Object.keys(newFuncs)) {
globalThisRecord[key] ??= newFuncs[key]?.();
}
function name(obj) {
return obj;
}
function extractDefault(module) {
return module && module.__esModule && 'default' in module ? module.default : module;
}
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'obsidian',
'@codemirror/autocomplete',
'@codemirror/collab',
'@codemirror/commands',
'@codemirror/language',
'@codemirror/lint',
'@codemirror/search',
'@codemirror/state',
'@codemirror/text',
'@codemirror/view',
'@lezer/common',
'@lezer/lr',
'@lezer/highlight'];
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'@codemirror/closebrackets',
'@codemirror/comment',
'@codemirror/fold',
'@codemirror/gutter',
'@codemirror/highlight',
'@codemirror/history',
'@codemirror/matchbrackets',
'@codemirror/panel',
'@codemirror/rangeset',
'@codemirror/rectangular-selection',
'@codemirror/stream-parser',
'@codemirror/tooltip'];
function requirePatched(id) {
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
return originalRequire?.(id);
}
// eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
if (globalThis?.app?.isMobile) {
if (id === 'process' || id === 'node:process') {
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
return globalThis.process;
}
} else {
const module = originalRequire?.(id);
if (module) {
return extractDefault(module);
}
}
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
return {};
}
})();
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var build_exports = {};
__export(build_exports, {
buildClean: () => buildClean,
buildCompile: () => buildCompile,
buildCompileSvelte: () => buildCompileSvelte,
buildCompileTypeScript: () => buildCompileTypeScript,
buildStatic: () => buildStatic
});
module.exports = __toCommonJS(build_exports);
var import_Async = require('../Async.cjs');
var import_Debug = require('../Debug.cjs');
var import_Path = require('../Path.cjs');
var import_String = require('../String.cjs');
var import_Fs = require('./Fs.cjs');
var import_JSON = require('./JSON.cjs');
var import_NodeModules = require('./NodeModules.cjs');
var import_NpmRun = require('./NpmRun.cjs');
var import_ObsidianDevUtilsRepoPaths = require('./ObsidianDevUtilsRepoPaths.cjs');
var import_Root = require('./Root.cjs');
async function buildClean() {
await (0, import_NodeModules.rm)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Dist, { force: true, recursive: true });
}
async function buildCompile() {
await (0, import_NpmRun.npmRun)("build:compile:svelte");
await (0, import_NpmRun.npmRun)("build:compile:typescript");
}
async function buildCompileSvelte() {
const tsConfigPath = (0, import_Root.resolvePathFromRootSafe)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.TsConfigJson);
const tsConfig = await (0, import_JSON.readJson)(tsConfigPath);
const allFiles = await (0, import_Async.toArray)((0, import_NodeModules.glob)(tsConfig.include ?? [], { exclude: tsConfig.exclude ?? [] }));
const svelteFiles = allFiles.filter((file) => file.endsWith(".svelte") || file.endsWith(".svelte.js") || file.endsWith(".svelte.ts"));
if (svelteFiles.length === 0) {
(0, import_Debug.getLibDebugger)("build:buildCompileSvelte")("No Svelte files found in the project, skipping Svelte compilation");
return;
}
await (0, import_Root.execFromRoot)(["npx", "svelte-check", "--tsconfig", import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.TsConfigJson]);
}
async function buildCompileTypeScript() {
await (0, import_Root.execFromRoot)(["npx", "tsc", "--build", "--force"]);
}
async function buildStatic() {
for (const dirent of await (0, import_Fs.readdirPosix)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static, { recursive: true, withFileTypes: true })) {
if (!dirent.isFile()) {
continue;
}
const path = (0, import_String.trimStart)((0, import_Path.join)(dirent.parentPath, dirent.name), `${import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static}/`);
await (0, import_NodeModules.cp)((0, import_Path.join)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static, path), (0, import_Path.join)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Dist, path));
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
buildClean,
buildCompile,
buildCompileSvelte,
buildCompileTypeScript,
buildStatic
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL2J1aWxkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgYnVpbGQgcHJvY2VzcyBmb3Igc3RhdGljIGFzc2V0cyBhbmQgY2xlYW5pbmdcbiAqIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gY29weSBzdGF0aWMgZmlsZXMgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXJcbiAqIGFuZCB0byByZW1vdmUgdGhlIGV4aXN0aW5nIGJ1aWxkIG91dHB1dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRzQ29uZmlnSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IHRvQXJyYXkgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uL0RlYnVnLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9QYXRoLnRzJztcbmltcG9ydCB7IHRyaW1TdGFydCB9IGZyb20gJy4uL1N0cmluZy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL0ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9KU09OLnRzJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICcuL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4vTnBtUnVuLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL1Jvb3QudHMnO1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXIgYW5kIGl0cyBjb250ZW50cy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGVudGlyZSBkaXN0cmlidXRpb24gZm9sZGVyIHRvIGVuc3VyZSBhIGNsZWFuIGJ1aWxkIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZm9sZGVyIGhhcyBiZWVuIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBybShPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJyk7XG4gIGF3YWl0IG5wbVJ1bignYnVpbGQ6Y29tcGlsZTp0eXBlc2NyaXB0Jyk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVTdmVsdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHRzQ29uZmlnUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uKTtcbiAgY29uc3QgdHNDb25maWcgPSBhd2FpdCByZWFkSnNvbjxUc0NvbmZpZ0pzb24+KHRzQ29uZmlnUGF0aCk7XG4gIGNvbnN0IGFsbEZpbGVzID0gYXdhaXQgdG9BcnJheShnbG9iKHRzQ29uZmlnLmluY2x1ZGUgPz8gW10sIHsgZXhjbHVkZTogdHNDb25maWcuZXhjbHVkZSA/PyBbXSB9KSk7XG4gIGNvbnN0IHN2ZWx0ZUZpbGVzID0gYWxsRmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCcuc3ZlbHRlJykgfHwgZmlsZS5lbmRzV2l0aCgnLnN2ZWx0ZS5qcycpIHx8IGZpbGUuZW5kc1dpdGgoJy5zdmVsdGUudHMnKSk7XG5cbiAgaWYgKHN2ZWx0ZUZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdidWlsZDpidWlsZENvbXBpbGVTdmVsdGUnKSgnTm8gU3ZlbHRlIGZpbGVzIGZvdW5kIGluIHRoZSBwcm9qZWN0LCBza2lwcGluZyBTdmVsdGUgY29tcGlsYXRpb24nKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBleGVjRnJvbVJvb3QoWyducHgnLCAnc3ZlbHRlLWNoZWNrJywgJy0tdHNjb25maWcnLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlRzQ29uZmlnSnNvbl0pO1xufVxuXG4vKipcbiAqIENvbXBpbGVzIHRoZSBUeXBlU2NyaXB0IGNvZGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb2RlIGNvbXBpbGVzIHN1Y2Nlc3NmdWxseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ29tcGlsZVR5cGVTY3JpcHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICd0c2MnLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xufVxuXG4vKipcbiAqIENvcGllcyBhbGwgc3RhdGljIGZpbGVzIGZyb20gdGhlIHN0YXRpYyBhc3NldHMgZm9sZGVyIHRvIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgcmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGF0aWMgYXNzZXRzIGZvbGRlciBhbmQgY29waWVzXG4gKiBlYWNoIGZpbGUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcGF0aCBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlci5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIGZpbGVzIGhhdmUgYmVlbiBjb3BpZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZFN0YXRpYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBkaXJlbnQgb2YgYXdhaXQgcmVhZGRpclBvc2l4KE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3RhdGljLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgIGlmICghZGlyZW50LmlzRmlsZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gdHJpbVN0YXJ0KGpvaW4oZGlyZW50LnBhcmVudFBhdGgsIGRpcmVudC5uYW1lKSwgYCR7T2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdGF0aWN9L2ApO1xuICAgIGF3YWl0IGNwKGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdGF0aWMsIHBhdGgpLCBqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgcGF0aCkpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsbUJBQXdCO0FBQ3hCLG1CQUErQjtBQUMvQixrQkFBcUI7QUFDckIsb0JBQTBCO0FBQzFCLGdCQUE2QjtBQUM3QixrQkFBeUI7QUFDekIseUJBSU87QUFDUCxvQkFBdUI7QUFDdkIsdUNBQTBDO0FBQzFDLGtCQUdPO0FBU1AsZUFBc0IsYUFBNEI7QUFDaEQsWUFBTSx1QkFBRywyREFBMEIsTUFBTSxFQUFFLE9BQU8sTUFBTSxXQUFXLEtBQUssQ0FBQztBQUMzRTtBQU9BLGVBQXNCLGVBQThCO0FBQ2xELFlBQU0sc0JBQU8sc0JBQXNCO0FBQ25DLFlBQU0sc0JBQU8sMEJBQTBCO0FBQ3pDO0FBT0EsZUFBc0IscUJBQW9DO0FBQ3hELFFBQU0sbUJBQWUscUNBQXdCLDJEQUEwQixZQUFZO0FBQ25GLFFBQU0sV0FBVyxVQUFNLHNCQUF1QixZQUFZO0FBQzFELFFBQU0sV0FBVyxVQUFNLDBCQUFRLHlCQUFLLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLFNBQVMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hHLFFBQU0sY0FBYyxTQUFTLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxTQUFTLEtBQUssS0FBSyxTQUFTLFlBQVksS0FBSyxLQUFLLFNBQVMsWUFBWSxDQUFDO0FBRXBJLE1BQUksWUFBWSxXQUFXLEdBQUc7QUFDNUIscUNBQWUsMEJBQTBCLEVBQUUsbUVBQW1FO0FBQzlHO0FBQUEsRUFDRjtBQUVBLFlBQU0sMEJBQWEsQ0FBQyxPQUFPLGdCQUFnQixjQUFjLDJEQUEwQixZQUFZLENBQUM7QUFDbEc7QUFPQSxlQUFzQix5QkFBd0M7QUFDNUQsWUFBTSwwQkFBYSxDQUFDLE9BQU8sT0FBTyxXQUFXLFNBQVMsQ0FBQztBQUN6RDtBQVVBLGVBQXNCLGNBQTZCO0FBQ2pELGFBQVcsVUFBVSxVQUFNLHdCQUFhLDJEQUEwQixRQUFRLEVBQUUsV0FBVyxNQUFNLGVBQWUsS0FBSyxDQUFDLEdBQUc7QUFDbkgsUUFBSSxDQUFDLE9BQU8sT0FBTyxHQUFHO0FBQ3BCO0FBQUEsSUFDRjtBQUVBLFVBQU0sV0FBTyw2QkFBVSxrQkFBSyxPQUFPLFlBQVksT0FBTyxJQUFJLEdBQUcsR0FBRywyREFBMEIsTUFBTSxHQUFHO0FBQ25HLGNBQU0sMkJBQUcsa0JBQUssMkRBQTBCLFFBQVEsSUFBSSxPQUFHLGtCQUFLLDJEQUEwQixNQUFNLElBQUksQ0FBQztBQUFBLEVBQ25HO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==