koishi-utils
Advanced tools
Comparing version 3.0.1 to 3.0.2
@@ -10,3 +10,3 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
@@ -13,0 +13,0 @@ Object.defineProperty(exports, "__esModule", { value: true }); |
export declare function noop(): any; | ||
export declare function isInteger(source: any): boolean; | ||
export declare function sleep(ms: number): Promise<void>; | ||
export declare function enumKeys<T extends string>(data: Record<T, string | number>): T[]; | ||
export declare function clone<T>(source: T): T; | ||
export declare function pick<T, K extends keyof T>(source: T, keys: Iterable<K>): Pick<T, K>; | ||
export declare function omit<T, K extends keyof T>(source: T, keys: Iterable<K>): Pick<T, Exclude<keyof T, K>>; | ||
export declare function defineProperty<T, K extends keyof T>(object: T, key: K, value: T[K]): void; | ||
export declare function defineProperty<T, K extends keyof any>(object: T, key: K, value: any): void; | ||
export declare function assertProperty<O, K extends keyof O>(config: O, key: K): O[K]; | ||
export declare function coerce(val: any): string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.assertProperty = exports.sleep = exports.isInteger = exports.noop = void 0; | ||
exports.coerce = exports.assertProperty = exports.defineProperty = exports.omit = exports.pick = exports.clone = exports.enumKeys = exports.sleep = exports.isInteger = exports.noop = void 0; | ||
function noop() { } | ||
@@ -14,2 +14,33 @@ exports.noop = noop; | ||
exports.sleep = sleep; | ||
function enumKeys(data) { | ||
return Object.values(data).filter(value => typeof value === 'string'); | ||
} | ||
exports.enumKeys = enumKeys; | ||
const primitives = ['number', 'string', 'bigint', 'boolean', 'symbol']; | ||
function clone(source) { | ||
return primitives.includes(typeof source) ? source | ||
: Array.isArray(source) ? source.map(clone) | ||
: Object.fromEntries(Object.entries(source).map(([key, value]) => [key, clone(value)])); | ||
} | ||
exports.clone = clone; | ||
function pick(source, keys) { | ||
const result = {}; | ||
for (const key of keys) { | ||
result[key] = source[key]; | ||
} | ||
return result; | ||
} | ||
exports.pick = pick; | ||
function omit(source, keys) { | ||
const result = { ...source }; | ||
for (const key of keys) { | ||
Reflect.deleteProperty(result, key); | ||
} | ||
return result; | ||
} | ||
exports.omit = omit; | ||
function defineProperty(object, key, value) { | ||
Object.defineProperty(object, key, { writable: true, value }); | ||
} | ||
exports.defineProperty = defineProperty; | ||
function assertProperty(config, key) { | ||
@@ -21,2 +52,7 @@ if (!config[key]) | ||
exports.assertProperty = assertProperty; | ||
function coerce(val) { | ||
const { stack } = val instanceof Error ? val : new Error(val); | ||
return stack; | ||
} | ||
exports.coerce = coerce; | ||
//# sourceMappingURL=misc.js.map |
@@ -1,5 +0,1 @@ | ||
export declare function pick<T, K extends keyof T>(source: T, keys: Iterable<K>): Pick<T, K>; | ||
export declare function omit<T, K extends keyof T>(source: T, keys: Iterable<K>): Pick<T, Exclude<keyof T, K>>; | ||
export declare function defineProperty<T, K extends keyof T>(object: T, key: K, value: T[K]): void; | ||
export declare function defineProperty<T, K extends keyof any>(object: T, key: K, value: any): void; | ||
export declare type Observed<T, R = any> = T & { | ||
@@ -6,0 +2,0 @@ _diff: Partial<T>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.observe = exports.defineProperty = exports.omit = exports.pick = void 0; | ||
exports.observe = void 0; | ||
const util_1 = require("util"); | ||
@@ -10,22 +10,2 @@ const misc_1 = require("./misc"); | ||
const builtinClasses = ['Date', 'RegExp', 'Set', 'Map', 'WeakSet', 'WeakMap', 'Array']; | ||
function pick(source, keys) { | ||
const result = {}; | ||
for (const key of keys) { | ||
result[key] = source[key]; | ||
} | ||
return result; | ||
} | ||
exports.pick = pick; | ||
function omit(source, keys) { | ||
const result = { ...source }; | ||
for (const key of keys) { | ||
Reflect.deleteProperty(result, key); | ||
} | ||
return result; | ||
} | ||
exports.omit = omit; | ||
function defineProperty(object, key, value) { | ||
Object.defineProperty(object, key, { writable: true, value }); | ||
} | ||
exports.defineProperty = defineProperty; | ||
function observeProperty(value, proxy, key, label, update) { | ||
@@ -49,3 +29,3 @@ if (util_1.types.isDate(value)) { | ||
if (!update) | ||
defineProperty(target, '_diff', diff); | ||
misc_1.defineProperty(target, '_diff', diff); | ||
const proxy = new Proxy(target, { | ||
@@ -99,3 +79,3 @@ get(target, key) { | ||
for (const method of arrayProxyMethods) { | ||
defineProperty(target, method, function (...args) { | ||
misc_1.defineProperty(target, method, function (...args) { | ||
update(); | ||
@@ -125,3 +105,3 @@ return Array.prototype[method].apply(this, args); | ||
continue; | ||
defineProperty(target, method, function (...args) { | ||
misc_1.defineProperty(target, method, function (...args) { | ||
const oldValue = target.valueOf(); | ||
@@ -153,3 +133,3 @@ const result = Date.prototype[method].apply(this, args); | ||
const observer = observeObject(target, label, null); | ||
defineProperty(observer, '_update', function () { | ||
misc_1.defineProperty(observer, '_update', function () { | ||
const diff = { ...this._diff }; | ||
@@ -166,3 +146,3 @@ const fields = Object.keys(diff); | ||
}); | ||
defineProperty(observer, '_merge', function (value) { | ||
misc_1.defineProperty(observer, '_merge', function (value) { | ||
for (const key in value) { | ||
@@ -169,0 +149,0 @@ if (key in this._diff) { |
{ | ||
"name": "koishi-utils", | ||
"description": "Utilities for Koishi", | ||
"version": "3.0.1", | ||
"version": "3.0.2", | ||
"main": "dist/index.js", | ||
@@ -6,0 +6,0 @@ "typings": "dist/index.d.ts", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
76873
868