obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
62 lines (58 loc) • 4.13 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;
})();
function filterInPlace(arr, predicate) {
const length = arr.length;
let writeIndex = 0;
for (let readIndex = 0; readIndex < length; readIndex++) {
if (!Object.hasOwn(arr, readIndex)) {
continue;
}
const current = arr[readIndex];
if (predicate(current, readIndex, arr)) {
arr[writeIndex++] = current;
}
}
arr.length = writeIndex;
}
function unique(arr) {
const set = /* @__PURE__ */ new Set();
return arr.filter((value) => {
if (set.has(value)) {
return false;
}
set.add(value);
return true;
});
}
function uniqueInPlace(arr) {
const set = /* @__PURE__ */ new Set();
filterInPlace(arr, (value) => {
if (set.has(value)) {
return false;
}
set.add(value);
return true;
});
}
export {
filterInPlace,
unique,
uniqueInPlace
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL0FycmF5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEFycmF5IHV0aWxpdGllcy5cbiAqL1xuXG4vKipcbiAqIEZpbHRlciBhbiBhcnJheSBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIGZpbHRlci5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIHRvIGZpbHRlciB0aGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJJblBsYWNlPFQ+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gYm9vbGVhbik6IHZvaWQge1xuICBjb25zdCBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICBsZXQgd3JpdGVJbmRleCA9IDA7XG4gIGZvciAobGV0IHJlYWRJbmRleCA9IDA7IHJlYWRJbmRleCA8IGxlbmd0aDsgcmVhZEluZGV4KyspIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oYXJyLCByZWFkSW5kZXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gYXJyW3JlYWRJbmRleF0gYXMgVDtcbiAgICBpZiAocHJlZGljYXRlKGN1cnJlbnQsIHJlYWRJbmRleCwgYXJyKSkge1xuICAgICAgYXJyW3dyaXRlSW5kZXgrK10gPSBjdXJyZW50O1xuICAgIH1cbiAgfVxuICBhcnIubGVuZ3RoID0gd3JpdGVJbmRleDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZTxUPihhcnI6IHJlYWRvbmx5IFRbXSk6IFRbXSB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8VD4oKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZUluUGxhY2UoYXJyOiB1bmtub3duW10pOiB2b2lkIHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDx1bmtub3duPigpO1xuICBmaWx0ZXJJblBsYWNlKGFyciwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlPLFNBQVMsY0FBaUIsS0FBVSxXQUFtRTtBQUM1RyxRQUFNLFNBQVMsSUFBSTtBQUNuQixNQUFJLGFBQWE7QUFDakIsV0FBUyxZQUFZLEdBQUcsWUFBWSxRQUFRLGFBQWE7QUFDdkQsUUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFNBQVMsR0FBRztBQUNsQztBQUFBLElBQ0Y7QUFFQSxVQUFNLFVBQVUsSUFBSSxTQUFTO0FBQzdCLFFBQUksVUFBVSxTQUFTLFdBQVcsR0FBRyxHQUFHO0FBQ3RDLFVBQUksWUFBWSxJQUFJO0FBQUEsSUFDdEI7QUFBQSxFQUNGO0FBQ0EsTUFBSSxTQUFTO0FBQ2Y7QUFRTyxTQUFTLE9BQVUsS0FBd0I7QUFDaEQsUUFBTSxNQUFNLG9CQUFJLElBQU87QUFDdkIsU0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVO0FBQzNCLFFBQUksSUFBSSxJQUFJLEtBQUssR0FBRztBQUNsQixhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksSUFBSSxLQUFLO0FBQ2IsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIO0FBT08sU0FBUyxjQUFjLEtBQXNCO0FBQ2xELFFBQU0sTUFBTSxvQkFBSSxJQUFhO0FBQzdCLGdCQUFjLEtBQUssQ0FBQyxVQUFVO0FBQzVCLFFBQUksSUFBSSxJQUFJLEtBQUssR0FBRztBQUNsQixhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksSUFBSSxLQUFLO0FBQ2IsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=