@wener/utils 1.1.36 → 1.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,8 +7,7 @@ import { isPromise } from './isPromise.js';
7
7
  const { promise, resolve, reject } = Promise.withResolvers();
8
8
  return Object.assign(promise, {
9
9
  resolve,
10
- reject,
11
- [Symbol.toStringTag]: 'LazyPromise'
10
+ reject
12
11
  });
13
12
  }
14
13
  const holder = {
@@ -23,7 +22,6 @@ import { isPromise } from './isPromise.js';
23
22
  holder.reject = reject;
24
23
  holder.resolve = resolve;
25
24
  }), {
26
- [Symbol.toStringTag]: 'LazyPromise',
27
25
  resolve (v) {
28
26
  holder.resolve(v);
29
27
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/asyncs/createLazyPromise.ts"],"sourcesContent":["import type { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\n\nexport type LazyPromise<T> = Promise<T> & {\n reject(reason?: any): void;\n resolve(v?: MaybePromise<T>): void;\n};\n\n/**\n * createLazyPromise return a promise that can be resolved or rejected manually.\n * if you pass a function to it, it will be executed when the promise try to resolve.\n */\nexport function createLazyPromise<T = any>(\n executor?:\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => void)\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => MaybePromise<T>),\n): LazyPromise<T> {\n if (!executor && 'withResolvers' in Promise) {\n const { promise, resolve, reject } = (Promise as any).withResolvers();\n return Object.assign(promise, {\n resolve,\n reject,\n [Symbol.toStringTag]: 'LazyPromise',\n }) as LazyPromise<T>;\n }\n\n const holder = {\n resolve(_: any): void {\n throw new Error('pending resolve');\n },\n reject(_: any): void {\n throw new Error('pending reject');\n },\n };\n const future = Object.assign(\n new Promise<T>((resolve, reject) => {\n holder.reject = reject;\n holder.resolve = resolve;\n }),\n {\n [Symbol.toStringTag]: 'LazyPromise',\n resolve(v: any) {\n holder.resolve(v);\n },\n reject(v: any) {\n holder.resolve(v);\n },\n },\n );\n if (executor) {\n const r = holder.resolve;\n let shouldExec = true;\n holder.resolve = (v: any) => {\n shouldExec = false;\n r(v);\n };\n const then = future.then.bind(future);\n future.then = (...args) => {\n if (shouldExec) {\n shouldExec = false;\n try {\n // kind of bad\n const result = executor(holder.resolve, holder.reject);\n // ensure resolve/reject is called\n if (isPromise(result)) {\n result.then(holder.resolve, holder.reject);\n } else if (result !== undefined) {\n holder.resolve(result);\n }\n } catch (e) {\n holder.reject(e);\n }\n }\n return then(...args);\n };\n const like = holder as LazyPromise<T>;\n like.then = future.then;\n like.catch = future.catch.bind(future);\n if (future.finally) like.finally = future.finally;\n\n void Object.defineProperty(like, Symbol.species, {\n get() {\n return Promise;\n },\n });\n return like;\n }\n return future;\n}\n"],"names":["isPromise","createLazyPromise","executor","Promise","promise","resolve","reject","withResolvers","Object","assign","Symbol","toStringTag","holder","_","Error","future","v","r","shouldExec","then","bind","args","result","undefined","e","like","catch","finally","defineProperty","species","get"],"mappings":"AACA,SAASA,SAAS,QAAQ,cAAc;AAOxC;;;CAGC,GACD,OAAO,SAASC,kBACdC,QAE+F;IAE/F,IAAI,CAACA,YAAY,mBAAmBC,SAAS;QAC3C,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAG,AAACH,QAAgBI,aAAa;QACnE,OAAOC,OAAOC,MAAM,CAACL,SAAS;YAC5BC;YACAC;YACA,CAACI,OAAOC,WAAW,CAAC,EAAE;QACxB;IACF;IAEA,MAAMC,SAAS;QACbP,SAAQQ,CAAM;YACZ,MAAM,IAAIC,MAAM;QAClB;QACAR,QAAOO,CAAM;YACX,MAAM,IAAIC,MAAM;QAClB;IACF;IACA,MAAMC,SAASP,OAAOC,MAAM,CAC1B,IAAIN,QAAW,CAACE,SAASC;QACvBM,OAAON,MAAM,GAAGA;QAChBM,OAAOP,OAAO,GAAGA;IACnB,IACA;QACE,CAACK,OAAOC,WAAW,CAAC,EAAE;QACtBN,SAAQW,CAAM;YACZJ,OAAOP,OAAO,CAACW;QACjB;QACAV,QAAOU,CAAM;YACXJ,OAAOP,OAAO,CAACW;QACjB;IACF;IAEF,IAAId,UAAU;QACZ,MAAMe,IAAIL,OAAOP,OAAO;QACxB,IAAIa,aAAa;QACjBN,OAAOP,OAAO,GAAG,CAACW;YAChBE,aAAa;YACbD,EAAED;QACJ;QACA,MAAMG,OAAOJ,OAAOI,IAAI,CAACC,IAAI,CAACL;QAC9BA,OAAOI,IAAI,GAAG,CAAC,GAAGE;YAChB,IAAIH,YAAY;gBACdA,aAAa;gBACb,IAAI;oBACF,cAAc;oBACd,MAAMI,SAASpB,SAASU,OAAOP,OAAO,EAAEO,OAAON,MAAM;oBACrD,kCAAkC;oBAClC,IAAIN,UAAUsB,SAAS;wBACrBA,OAAOH,IAAI,CAACP,OAAOP,OAAO,EAAEO,OAAON,MAAM;oBAC3C,OAAO,IAAIgB,WAAWC,WAAW;wBAC/BX,OAAOP,OAAO,CAACiB;oBACjB;gBACF,EAAE,OAAOE,GAAG;oBACVZ,OAAON,MAAM,CAACkB;gBAChB;YACF;YACA,OAAOL,QAAQE;QACjB;QACA,MAAMI,OAAOb;QACba,KAAKN,IAAI,GAAGJ,OAAOI,IAAI;QACvBM,KAAKC,KAAK,GAAGX,OAAOW,KAAK,CAACN,IAAI,CAACL;QAC/B,IAAIA,OAAOY,OAAO,EAAEF,KAAKE,OAAO,GAAGZ,OAAOY,OAAO;QAEjD,KAAKnB,OAAOoB,cAAc,CAACH,MAAMf,OAAOmB,OAAO,EAAE;YAC/CC;gBACE,OAAO3B;YACT;QACF;QACA,OAAOsB;IACT;IACA,OAAOV;AACT"}
1
+ {"version":3,"sources":["../../src/asyncs/createLazyPromise.ts"],"sourcesContent":["import type { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\n\nexport type LazyPromise<T> = Promise<T> & {\n reject(reason?: any): void;\n resolve(v?: MaybePromise<T>): void;\n};\n\n/**\n * createLazyPromise return a promise that can be resolved or rejected manually.\n * if you pass a function to it, it will be executed when the promise try to resolve.\n */\nexport function createLazyPromise<T = any>(\n executor?:\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => void)\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => MaybePromise<T>),\n): LazyPromise<T> {\n if (!executor && 'withResolvers' in Promise) {\n const { promise, resolve, reject } = (Promise as any).withResolvers();\n return Object.assign(promise, {\n resolve,\n reject,\n }) as LazyPromise<T>;\n }\n\n const holder = {\n resolve(_: any): void {\n throw new Error('pending resolve');\n },\n reject(_: any): void {\n throw new Error('pending reject');\n },\n };\n const future = Object.assign(\n new Promise<T>((resolve, reject) => {\n holder.reject = reject;\n holder.resolve = resolve;\n }),\n {\n resolve(v: any) {\n holder.resolve(v);\n },\n reject(v: any) {\n holder.resolve(v);\n },\n },\n );\n if (executor) {\n const r = holder.resolve;\n let shouldExec = true;\n holder.resolve = (v: any) => {\n shouldExec = false;\n r(v);\n };\n const then = future.then.bind(future);\n future.then = (...args) => {\n if (shouldExec) {\n shouldExec = false;\n try {\n // kind of bad\n const result = executor(holder.resolve, holder.reject);\n // ensure resolve/reject is called\n if (isPromise(result)) {\n result.then(holder.resolve, holder.reject);\n } else if (result !== undefined) {\n holder.resolve(result);\n }\n } catch (e) {\n holder.reject(e);\n }\n }\n return then(...args);\n };\n const like = holder as LazyPromise<T>;\n like.then = future.then;\n like.catch = future.catch.bind(future);\n if (future.finally) like.finally = future.finally;\n\n void Object.defineProperty(like, Symbol.species, {\n get() {\n return Promise;\n },\n });\n return like;\n }\n return future;\n}\n"],"names":["isPromise","createLazyPromise","executor","Promise","promise","resolve","reject","withResolvers","Object","assign","holder","_","Error","future","v","r","shouldExec","then","bind","args","result","undefined","e","like","catch","finally","defineProperty","Symbol","species","get"],"mappings":"AACA,SAASA,SAAS,QAAQ,cAAc;AAOxC;;;CAGC,GACD,OAAO,SAASC,kBACdC,QAE+F;IAE/F,IAAI,CAACA,YAAY,mBAAmBC,SAAS;QAC3C,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAG,AAACH,QAAgBI,aAAa;QACnE,OAAOC,OAAOC,MAAM,CAACL,SAAS;YAC5BC;YACAC;QACF;IACF;IAEA,MAAMI,SAAS;QACbL,SAAQM,CAAM;YACZ,MAAM,IAAIC,MAAM;QAClB;QACAN,QAAOK,CAAM;YACX,MAAM,IAAIC,MAAM;QAClB;IACF;IACA,MAAMC,SAASL,OAAOC,MAAM,CAC1B,IAAIN,QAAW,CAACE,SAASC;QACvBI,OAAOJ,MAAM,GAAGA;QAChBI,OAAOL,OAAO,GAAGA;IACnB,IACA;QACEA,SAAQS,CAAM;YACZJ,OAAOL,OAAO,CAACS;QACjB;QACAR,QAAOQ,CAAM;YACXJ,OAAOL,OAAO,CAACS;QACjB;IACF;IAEF,IAAIZ,UAAU;QACZ,MAAMa,IAAIL,OAAOL,OAAO;QACxB,IAAIW,aAAa;QACjBN,OAAOL,OAAO,GAAG,CAACS;YAChBE,aAAa;YACbD,EAAED;QACJ;QACA,MAAMG,OAAOJ,OAAOI,IAAI,CAACC,IAAI,CAACL;QAC9BA,OAAOI,IAAI,GAAG,CAAC,GAAGE;YAChB,IAAIH,YAAY;gBACdA,aAAa;gBACb,IAAI;oBACF,cAAc;oBACd,MAAMI,SAASlB,SAASQ,OAAOL,OAAO,EAAEK,OAAOJ,MAAM;oBACrD,kCAAkC;oBAClC,IAAIN,UAAUoB,SAAS;wBACrBA,OAAOH,IAAI,CAACP,OAAOL,OAAO,EAAEK,OAAOJ,MAAM;oBAC3C,OAAO,IAAIc,WAAWC,WAAW;wBAC/BX,OAAOL,OAAO,CAACe;oBACjB;gBACF,EAAE,OAAOE,GAAG;oBACVZ,OAAOJ,MAAM,CAACgB;gBAChB;YACF;YACA,OAAOL,QAAQE;QACjB;QACA,MAAMI,OAAOb;QACba,KAAKN,IAAI,GAAGJ,OAAOI,IAAI;QACvBM,KAAKC,KAAK,GAAGX,OAAOW,KAAK,CAACN,IAAI,CAACL;QAC/B,IAAIA,OAAOY,OAAO,EAAEF,KAAKE,OAAO,GAAGZ,OAAOY,OAAO;QAEjD,KAAKjB,OAAOkB,cAAc,CAACH,MAAMI,OAAOC,OAAO,EAAE;YAC/CC;gBACE,OAAO1B;YACT;QACF;QACA,OAAOoB;IACT;IACA,OAAOV;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wener/utils",
3
- "version": "1.1.36",
3
+ "version": "1.1.37",
4
4
  "type": "module",
5
5
  "description": "Utils for daily use",
6
6
  "repository": {
@@ -20,7 +20,6 @@ export function createLazyPromise<T = any>(
20
20
  return Object.assign(promise, {
21
21
  resolve,
22
22
  reject,
23
- [Symbol.toStringTag]: 'LazyPromise',
24
23
  }) as LazyPromise<T>;
25
24
  }
26
25
 
@@ -38,7 +37,6 @@ export function createLazyPromise<T = any>(
38
37
  holder.resolve = resolve;
39
38
  }),
40
39
  {
41
- [Symbol.toStringTag]: 'LazyPromise',
42
40
  resolve(v: any) {
43
41
  holder.resolve(v);
44
42
  },