obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
48 lines (45 loc) • 4.04 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+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gYm9vbGVhbik6IHZvaWQge1xuICBjb25zdCBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICBsZXQgd3JpdGVJbmRleCA9IDA7XG4gIGZvciAobGV0IHJlYWRJbmRleCA9IDA7IHJlYWRJbmRleCA8IGxlbmd0aDsgcmVhZEluZGV4KyspIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oYXJyLCByZWFkSW5kZXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gYXJyW3JlYWRJbmRleF0gYXMgVDtcbiAgICBpZiAocHJlZGljYXRlKGN1cnJlbnQsIHJlYWRJbmRleCwgYXJyKSkge1xuICAgICAgYXJyW3dyaXRlSW5kZXgrK10gPSBjdXJyZW50O1xuICAgIH1cbiAgfVxuICBhcnIubGVuZ3RoID0gd3JpdGVJbmRleDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZTxUPihhcnI6IHJlYWRvbmx5IFRbXSk6IFRbXSB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8VD4oKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZUluUGxhY2UoYXJyOiB1bmtub3duW10pOiB2b2lkIHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDx1bmtub3duPigpO1xuICBmaWx0ZXJJblBsYWNlKGFyciwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFZTyxTQUFTLGNBQWlCLEtBQVUsV0FBbUU7QUFDNUcsUUFBTSxTQUFTLElBQUk7QUFDbkIsTUFBSSxhQUFhO0FBQ2pCLFdBQVMsWUFBWSxHQUFHLFlBQVksUUFBUSxhQUFhO0FBQ3ZELFFBQUksQ0FBQyxPQUFPLE9BQU8sS0FBSyxTQUFTLEdBQUc7QUFDbEM7QUFBQSxJQUNGO0FBRUEsVUFBTSxVQUFVLElBQUksU0FBUztBQUM3QixRQUFJLFVBQVUsU0FBUyxXQUFXLEdBQUcsR0FBRztBQUN0QyxVQUFJLFlBQVksSUFBSTtBQUFBLElBQ3RCO0FBQUEsRUFDRjtBQUNBLE1BQUksU0FBUztBQUNmO0FBUU8sU0FBUyxPQUFVLEtBQXdCO0FBQ2hELFFBQU0sTUFBTSxvQkFBSSxJQUFPO0FBQ3ZCLFNBQU8sSUFBSSxPQUFPLENBQUMsVUFBVTtBQUMzQixRQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7QUFDbEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksS0FBSztBQUNiLFdBQU87QUFBQSxFQUNULENBQUM7QUFDSDtBQU9PLFNBQVMsY0FBYyxLQUFzQjtBQUNsRCxRQUFNLE1BQU0sb0JBQUksSUFBYTtBQUM3QixnQkFBYyxLQUFLLENBQUMsVUFBVTtBQUM1QixRQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7QUFDbEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksS0FBSztBQUNiLFdBQU87QUFBQSxFQUNULENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K