@js-toolkit/utils
Advanced tools
Comparing version 1.52.1 to 1.53.0
@@ -17,2 +17,5 @@ export declare class PromiseCancelledError extends Error { | ||
} | ||
interface CancellablePromiseWithResolvers<T> extends PromiseWithResolvers<T> { | ||
promise: CancellablePromise<T>; | ||
} | ||
export interface CancellablePromiseConstructor extends DefineAll<keyof PromiseConstructor, { | ||
@@ -99,4 +102,6 @@ readonly prototype: CancellablePromise<any>; | ||
any<T>(values: (T | PromiseLike<T>)[] | Iterable<T | PromiseLike<T>>): CancellablePromise<T>; | ||
withResolvers<T>(): CancellablePromiseWithResolvers<T>; | ||
}> { | ||
new <T>(executorOrPromise: ((resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, cancel: VoidFunction) => void) | Promise<T>): CancellablePromise<T>; | ||
} | ||
export {}; |
@@ -19,2 +19,5 @@ import EventEmitter from 'eventemitter3'; | ||
export type DataEventListener<EventTypes extends string | symbol | EventMap, K extends EventEmitter.EventNames<ConvertToDataEventMap<EventTypes, Target>>, Target> = EventEmitter.EventListener<ConvertToDataEventMap<EventTypes, Target>, K>; | ||
type ListenersMap<EventTypes extends string | symbol | EventMap, Target> = { | ||
[P in EventEmitter.EventNames<ConvertToDataEventMap<EventTypes, Target>>]: DataEventListener<EventTypes, P, Target>[]; | ||
}; | ||
type NormalizeEventTypes<EventTypes extends string | symbol | EventMap> = EventTypes extends EventMap ? EventTypes extends Record<string, DataEvent<string, any, any>> ? { | ||
@@ -29,3 +32,4 @@ [P in keyof EventTypes]: Exclude<EventTypes[P]['data'], undefined> extends never ? [] : IfExtends<EventTypes[P]['data'], undefined, [ | ||
emit<T extends EventEmitter.EventNames<NormalizeEventTypes<EventTypes>>>(event: T, ...args: EventEmitter.EventArgs<NormalizeEventTypes<EventTypes>, T>): boolean; | ||
listenersMap(): ListenersMap<EventTypes, Target>; | ||
} | ||
export {}; |
@@ -1,1 +0,1 @@ | ||
import EventEmitter from"eventemitter3";export class DataEventEmitter extends EventEmitter{emit(t,...e){const r={type:t,data:e[0],target:this};return super.emit(t,r)}} | ||
import EventEmitter from"eventemitter3";export class DataEventEmitter extends EventEmitter{emit(t,...e){const r={type:t,data:e[0],target:this};return super.emit(t,r)}listenersMap(){return this.eventNames().reduce(((t,e)=>{var r;return t[e]=null!==(r=t[e])&&void 0!==r?r:[],t[e]=this.listeners(e),t}),{})}} |
@@ -1,1 +0,1 @@ | ||
function objectToString(t,r){const{message:e,cause:n}=t;if(e)return n?`${e} => cause: ${getErrorMessage(n,r)}`:e;const o=t.toString();if(t.constructor.name&&o===`[object ${t.constructor.name}]`)try{const r=JSON.stringify(t);return"{}"===r?"":r}catch(r){console.warn("Stringify object failed:",t,r)}return o}export function getErrorMessage(t,r={}){if("object"!=typeof t||null==t)return String(t);const e=Object.getPrototypeOf(t);if(t instanceof Error&&e===Error.prototype&&null!=t.cause){return`${r.simple?"":`${t.constructor.name}: `}${t.message} => cause: ${getErrorMessage(t.cause,r)}`}if(Object.hasOwn(t,"toString"))return t.toString();if(t.constructor==={}.constructor)return objectToString(t,r);if(e&&Object.hasOwn(e,"toString"))return t.toString();if(!r.simple&&t.constructor.name){const e=objectToString(t,r);return`${t instanceof Error&&t.name||t.constructor.name}${e?`: ${e}`:""}`}return objectToString(t,r)} | ||
function objectToString(t,r){const{message:e,cause:n}=t;if(e)return n?`${e} => cause: ${getErrorMessage(n,r)}`:e;const o=t.toString();if(t.constructor.name&&o===`[object ${t.constructor.name}]`)try{const r=JSON.stringify(t);return"{}"===r?"":r}catch(r){console.warn("Stringify object failed:",t,r)}return o}export function getErrorMessage(t,r={}){if("object"!=typeof t||null==t)return String(t);const e=Object.getPrototypeOf(t);if(t instanceof Error&&e===Error.prototype&&null!=t.cause){return`${r.simple?"":`${t.name||t.constructor.name}: `}${t.message} => cause: ${getErrorMessage(t.cause,r)}`}if(Object.hasOwn(t,"toString"))return t.toString();if(t.constructor==={}.constructor)return objectToString(t,r);if(e&&Object.hasOwn(e,"toString"))return t.toString();if(!r.simple&&t.constructor.name){const e=objectToString(t,r);return`${t instanceof Error&&t.name||t.constructor.name}${e?`: ${e}`:""}`}return objectToString(t,r)} |
@@ -1,1 +0,1 @@ | ||
import{__awaiter}from"tslib";import{beforeCall}from"./beforeCall";import{delayed}from"./delayed";export function getListIterator(e,i,t){let o=-1;const n=i=>__awaiter(this,void 0,void 0,(function*(){const[t,o]=yield Promise.all([e.getSize(),e.getCurrentIndex()]);return o===t-1?i?0:-1:Math.min(o+1,t-1)})),l=i=>__awaiter(this,void 0,void 0,(function*(){const[t,o]=yield Promise.all([e.getSize(),e.getCurrentIndex()]);return 0===o?i?t-1:-1:Math.min(o-1,t-1)})),r=delayed((()=>{i(o)}),0),a=()=>r.cancel();return{get isPending(){return r.isPending},next:beforeCall((({delay:e=(null==t?void 0:t.delay)}={})=>{o>=0&&r.delay(null!=e?e:0)}),(({loop:e=(null==t?void 0:t.loop)}={})=>__awaiter(this,void 0,void 0,(function*(){o=yield n(e)})))),back:beforeCall((()=>{o>=0&&i(o)}),(()=>__awaiter(this,void 0,void 0,(function*(){a(),o=yield l()})))),isCanNext:e=>__awaiter(this,void 0,void 0,(function*(){return(yield n(null==e?void 0:e.loop))>=0})),isCanBack:e=>__awaiter(this,void 0,void 0,(function*(){return(yield l(null==e?void 0:e.loop))>=0})),cancel:a}} | ||
import{__awaiter}from"tslib";import{beforeCall}from"./beforeCall";import{delayed}from"./delayed";export function getListIterator(e,i,t){let o=-1;const n=i=>__awaiter(this,void 0,void 0,(function*(){const[t,o]=yield Promise.all([e.getSize(),e.getCurrentIndex()]);return o===t-1?i?0:-1:Math.min(o+1,t-1)})),l=i=>__awaiter(this,void 0,void 0,(function*(){const[t,o]=yield Promise.all([e.getSize(),e.getCurrentIndex()]);return 0===o?i?t-1:-1:Math.min(o-1,t-1)})),r=delayed((()=>{i(o)}),0),a=()=>r.cancel();return{get isPending(){return r.isPending},next:beforeCall((({delay:e=(null==t?void 0:t.delay)}={})=>{o>=0&&r.delay(null!=e?e:0)}),((...e)=>__awaiter(this,[...e],void 0,(function*({loop:e=(null==t?void 0:t.loop)}={}){o=yield n(e)})))),back:beforeCall((()=>{o>=0&&i(o)}),(()=>__awaiter(this,void 0,void 0,(function*(){a(),o=yield l()})))),isCanNext:e=>__awaiter(this,void 0,void 0,(function*(){return(yield n(null==e?void 0:e.loop))>=0})),isCanBack:e=>__awaiter(this,void 0,void 0,(function*(){return(yield l(null==e?void 0:e.loop))>=0})),cancel:a}} |
{ | ||
"name": "@js-toolkit/utils", | ||
"version": "1.52.1", | ||
"version": "1.53.0", | ||
"description": "Typescript helper types and utils", | ||
@@ -28,4 +28,4 @@ "author": "VZH", | ||
"@types/lodash.debounce": "^4.0.9", | ||
"@typescript-eslint/eslint-plugin": "^7.1.0", | ||
"@typescript-eslint/parser": "^7.1.0", | ||
"@typescript-eslint/eslint-plugin": "^7.2.0", | ||
"@typescript-eslint/parser": "^7.2.0", | ||
"copyfiles": "^2.4.1", | ||
@@ -42,7 +42,7 @@ "eslint": "^8.57.0", | ||
"rimraf": "^5.0.5", | ||
"terser": "^5.28.1", | ||
"terser": "^5.29.1", | ||
"ts-jest": "^29.1.2", | ||
"typescript": "^5.3.3", | ||
"typescript": "^5.4.2", | ||
"yargs": "^17.7.2" | ||
} | ||
} |
@@ -24,5 +24,5 @@ type NonNullValue = {}; | ||
type IfExtends<T, Type, Then = T, Else = never> = Extract<T, Type> extends never ? Else : Extract<T, Type> extends Type ? Then : Else; | ||
type KeysOfType<T extends AnyObject, Type, Strict extends boolean = true> = T extends T ? NonNullable<{ | ||
type KeysOfType<T extends AnyObject, Type, Strict extends boolean = true> = T extends T ? Exclude<{ | ||
[P in keyof T]: Strict extends true ? IfExtends<T[P], Type, P, never> : T[P] extends Type ? P : never; | ||
}[keyof T]> : never; | ||
}[keyof T], null | undefined> : never; | ||
type ExcludeKeysOfType<A extends AnyObject, B, Strict extends boolean = false> = Pick<A, Exclude<keyof A, KeysOfType<A, B, Strict>>>; | ||
@@ -29,0 +29,0 @@ type ExtractKeysOfType<A extends AnyObject, B, Strict extends boolean = false> = Pick<A, KeysOfType<A, B, Strict>>; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
87182
113
1202