aveazul 1.1.0 → 2.0.0

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.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/cjs-entry.cjs +6 -1
  3. package/{dist-esm → dist}/any.d.ts +1 -1
  4. package/{dist-esm → dist}/any.js +0 -2
  5. package/{dist-cjs → dist}/aveazul.d.ts +5 -5
  6. package/{dist-esm → dist}/aveazul.js +0 -2
  7. package/{dist-esm → dist}/disposer.js +0 -1
  8. package/dist/index.d.ts +10 -0
  9. package/{dist-esm → dist}/index.js +0 -1
  10. package/{dist-cjs → dist}/not-implemented.d.ts +1 -1
  11. package/{dist-esm → dist}/not-implemented.js +0 -1
  12. package/{dist-esm → dist}/operational-error.js +0 -1
  13. package/{dist-esm → dist}/promisify-all.d.ts +1 -1
  14. package/{dist-esm → dist}/promisify-all.js +0 -2
  15. package/{dist-esm → dist}/promisify.js +0 -1
  16. package/{dist-cjs → dist}/using.d.ts +1 -1
  17. package/{dist-esm → dist}/using.js +0 -2
  18. package/{dist-esm → dist}/util.js +0 -2
  19. package/package.json +21 -20
  20. package/dist-cjs/any.cjs +0 -50
  21. package/dist-cjs/any.cjs.map +0 -1
  22. package/dist-cjs/any.d.ts +0 -2
  23. package/dist-cjs/any.js.map +0 -1
  24. package/dist-cjs/aveazul.cjs +0 -648
  25. package/dist-cjs/aveazul.cjs.map +0 -1
  26. package/dist-cjs/aveazul.js.map +0 -1
  27. package/dist-cjs/disposer.cjs +0 -15
  28. package/dist-cjs/disposer.cjs.map +0 -1
  29. package/dist-cjs/disposer.js.map +0 -1
  30. package/dist-cjs/index.cjs +0 -17
  31. package/dist-cjs/index.cjs.map +0 -1
  32. package/dist-cjs/index.d.ts +0 -10
  33. package/dist-cjs/index.js.map +0 -1
  34. package/dist-cjs/not-implemented.cjs +0 -107
  35. package/dist-cjs/not-implemented.cjs.map +0 -1
  36. package/dist-cjs/not-implemented.js.map +0 -1
  37. package/dist-cjs/operational-error.cjs +0 -43
  38. package/dist-cjs/operational-error.cjs.map +0 -1
  39. package/dist-cjs/operational-error.js.map +0 -1
  40. package/dist-cjs/promisify-all.cjs +0 -74
  41. package/dist-cjs/promisify-all.cjs.map +0 -1
  42. package/dist-cjs/promisify-all.d.ts +0 -10
  43. package/dist-cjs/promisify-all.js.map +0 -1
  44. package/dist-cjs/promisify.cjs +0 -63
  45. package/dist-cjs/promisify.cjs.map +0 -1
  46. package/dist-cjs/promisify.js.map +0 -1
  47. package/dist-cjs/tsconfig.cjs.tsbuildinfo +0 -1
  48. package/dist-cjs/using.cjs +0 -129
  49. package/dist-cjs/using.cjs.map +0 -1
  50. package/dist-cjs/using.js.map +0 -1
  51. package/dist-cjs/util.cjs +0 -185
  52. package/dist-cjs/util.cjs.map +0 -1
  53. package/dist-cjs/util.js.map +0 -1
  54. package/dist-esm/any.js.map +0 -1
  55. package/dist-esm/aveazul.d.ts +0 -344
  56. package/dist-esm/aveazul.js.map +0 -1
  57. package/dist-esm/disposer.d.ts +0 -9
  58. package/dist-esm/disposer.js.map +0 -1
  59. package/dist-esm/index.d.ts +0 -10
  60. package/dist-esm/index.js.map +0 -1
  61. package/dist-esm/not-implemented.d.ts +0 -4
  62. package/dist-esm/not-implemented.js.map +0 -1
  63. package/dist-esm/operational-error.d.ts +0 -20
  64. package/dist-esm/operational-error.js.map +0 -1
  65. package/dist-esm/promisify-all.js.map +0 -1
  66. package/dist-esm/promisify.d.ts +0 -11
  67. package/dist-esm/promisify.js.map +0 -1
  68. package/dist-esm/tsconfig.esm.tsbuildinfo +0 -1
  69. package/dist-esm/using.d.ts +0 -12
  70. package/dist-esm/using.js.map +0 -1
  71. package/dist-esm/util.d.ts +0 -29
  72. package/dist-esm/util.js.map +0 -1
  73. /package/{dist-cjs → dist}/disposer.d.ts +0 -0
  74. /package/{dist-cjs → dist}/operational-error.d.ts +0 -0
  75. /package/{dist-cjs → dist}/promisify.d.ts +0 -0
  76. /package/{dist-cjs → dist}/util.d.ts +0 -0
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Disposer = void 0;
4
- /**
5
- * Disposer class for resource cleanup
6
- * @private
7
- */
8
- class Disposer {
9
- constructor(fn, promise) {
10
- this._data = fn;
11
- this._promise = promise;
12
- }
13
- }
14
- exports.Disposer = Disposer;
15
- //# sourceMappingURL=disposer.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"disposer.cjs","sources":["disposer.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../src/disposer.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,QAAQ;IAInB,YACE,EAAyC,EACzC,OAAmB;QAEnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;CACF;AAXD,4BAWC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promisifyAll = exports.promisify = exports.isProgrammerError = exports.isOperationalError = exports.OperationalError = exports.Disposer = exports.AveAzul = void 0;
4
- const aveazul_ts_1 = require("./aveazul.cjs");
5
- Object.defineProperty(exports, "AveAzul", { enumerable: true, get: function () { return aveazul_ts_1.AveAzul; } });
6
- exports.default = aveazul_ts_1.AveAzul;
7
- var disposer_ts_1 = require("./disposer.cjs");
8
- Object.defineProperty(exports, "Disposer", { enumerable: true, get: function () { return disposer_ts_1.Disposer; } });
9
- var operational_error_ts_1 = require("./operational-error.cjs");
10
- Object.defineProperty(exports, "OperationalError", { enumerable: true, get: function () { return operational_error_ts_1.OperationalError; } });
11
- Object.defineProperty(exports, "isOperationalError", { enumerable: true, get: function () { return operational_error_ts_1.isOperationalError; } });
12
- Object.defineProperty(exports, "isProgrammerError", { enumerable: true, get: function () { return operational_error_ts_1.isProgrammerError; } });
13
- var promisify_ts_1 = require("./promisify.cjs");
14
- Object.defineProperty(exports, "promisify", { enumerable: true, get: function () { return promisify_ts_1.promisify; } });
15
- var promisify_all_ts_1 = require("./promisify-all.cjs");
16
- Object.defineProperty(exports, "promisifyAll", { enumerable: true, get: function () { return promisify_all_ts_1.promisifyAll; } });
17
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA,8BAA8B,aAAY;AAC1C;AACA;AACA,6BAA6B,cAAa;AAC1C;AACA,sCAAsC,uBAAsB;AAC5D;AACA;AACA;AACA,8BAA8B,eAAc;AAC5C;AACA,kCAAkC,mBAAkB;AACpD;"}
@@ -1,10 +0,0 @@
1
- import { AveAzul } from "./aveazul.ts";
2
- export { AveAzul };
3
- export default AveAzul;
4
- export type { MapOptions, AsCallbackOptions, FromCallbackOptions, Deferred, AveAzulClass, AveAzulInstance, } from "./aveazul.ts";
5
- export { Disposer } from "./disposer.ts";
6
- export { OperationalError, isOperationalError, isProgrammerError } from "./operational-error.ts";
7
- export { promisify } from "./promisify.ts";
8
- export type { PromisifyOptions } from "./promisify.ts";
9
- export { promisifyAll } from "./promisify-all.ts";
10
- export type { PromisifyAllOptions } from "./promisify-all.ts";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAC9B,wFADA,oBAAO,OACA;AAChB,kBAAe,oBAAO,CAAC;AASvB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,+DAAiG;AAAxF,wHAAA,gBAAgB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAAE,yHAAA,iBAAiB,OAAA;AAChE,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInstanceNotImplemented = createInstanceNotImplemented;
4
- exports.createStaticNotImplemented = createStaticNotImplemented;
5
- exports.setupNotImplemented = setupNotImplemented;
6
- function createNotImplemented(name) {
7
- return function () {
8
- const msg = name + " Not implemented in aveazul";
9
- console.error(msg);
10
- throw new Error(msg);
11
- };
12
- }
13
- function createInstanceNotImplemented(AveAzul) {
14
- const methods = [
15
- "then",
16
- "spread",
17
- "catch",
18
- "finally",
19
- "bind",
20
- "isFulfilled",
21
- "isRejected",
22
- "isPending",
23
- "isCancelled",
24
- "value",
25
- "reason",
26
- "all",
27
- "props",
28
- "any",
29
- "some",
30
- "map",
31
- "reduce",
32
- "filter",
33
- "each",
34
- "mapSeries",
35
- "disposer",
36
- "asCallback",
37
- "delay",
38
- "timeout",
39
- "cancel",
40
- "tap",
41
- "tapCatch",
42
- "call",
43
- "get",
44
- "return",
45
- "throw",
46
- "catchReturn",
47
- "catchThrow",
48
- "reflect",
49
- "suppressUnhandledRejections",
50
- "done",
51
- ];
52
- const proto = AveAzul.prototype;
53
- const ret = [];
54
- for (const method of methods) {
55
- if (!proto[method]) {
56
- ret.push(method);
57
- proto[method] = createNotImplemented("instance " + method);
58
- }
59
- }
60
- return ret;
61
- }
62
- function createStaticNotImplemented(AveAzul) {
63
- const methods = [
64
- "join",
65
- "try",
66
- "method",
67
- "resolve",
68
- "reject",
69
- "props",
70
- "any",
71
- "some",
72
- "map",
73
- "reduce",
74
- "filter",
75
- "each",
76
- "mapSeries",
77
- "race",
78
- "using",
79
- "promisify",
80
- "promisifyAll",
81
- "fromCallback",
82
- "delay",
83
- "coroutine",
84
- "coroutine.addYieldHandler",
85
- "getNewLibraryCopy",
86
- "noConflict",
87
- "setScheduler",
88
- ];
89
- const ret = [];
90
- const aveazul = AveAzul;
91
- for (const method of methods) {
92
- if (!aveazul[method]) {
93
- ret.push(method);
94
- aveazul[method] = createNotImplemented("static " + method);
95
- }
96
- }
97
- return ret;
98
- }
99
- function setupNotImplemented(AveAzul) {
100
- const instanceMethods = createInstanceNotImplemented(AveAzul);
101
- const staticMethods = createStaticNotImplemented(AveAzul);
102
- AveAzul.__notImplementedInstance =
103
- instanceMethods;
104
- AveAzul.__notImplementedStatic =
105
- staticMethods;
106
- }
107
- //# sourceMappingURL=not-implemented.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-implemented.cjs","sources":["not-implemented.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-implemented.js","sourceRoot":"","sources":["../src/not-implemented.ts"],"names":[],"mappings":";;AAUA,oEAiDC;AAED,gEAoCC;AAED,kDAOC;AAxGD,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,GAAG,6BAA6B,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,4BAA4B,CAAC,OAAqB;IAChE,MAAM,OAAO,GAAG;QACd,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,aAAa;QACb,YAAY;QACZ,WAAW;QACX,aAAa;QACb,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,WAAW;QACX,UAAU;QACV,YAAY;QACZ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,KAAK;QACL,UAAU;QACV,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,aAAa;QACb,YAAY;QACZ,SAAS;QACT,6BAA6B;QAC7B,MAAM;KACP,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,SAAoC,CAAC;IAC3D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,0BAA0B,CAAC,OAAqB;IAC9D,MAAM,OAAO,GAAG;QACd,MAAM;QACN,KAAK;QACL,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,WAAW;QACX,MAAM;QACN,OAAO;QACP,WAAW;QACX,cAAc;QACd,cAAc;QACd,OAAO;QACP,WAAW;QACX,2BAA2B;QAC3B,mBAAmB;QACnB,YAAY;QACZ,cAAc;KACf,CAAC;IACF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,OAA6C,CAAC;IAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAqB;IACvD,MAAM,eAAe,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACzD,OAA+C,CAAC,wBAAwB;QACvE,eAAe,CAAC;IACjB,OAA+C,CAAC,sBAAsB;QACrE,aAAa,CAAC;AAClB,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperationalError = void 0;
4
- exports.isOperationalError = isOperationalError;
5
- exports.isProgrammerError = isProgrammerError;
6
- /**
7
- * OperationalError class for representing errors that are expected during normal operation
8
- * Similar to Bluebird's OperationalError
9
- */
10
- class OperationalError extends Error {
11
- constructor(message) {
12
- super(message);
13
- this.name = "OperationalError";
14
- this.isOperational = true;
15
- // Capture stack trace
16
- if (Error.captureStackTrace) {
17
- Error.captureStackTrace(this, this.constructor);
18
- }
19
- }
20
- }
21
- exports.OperationalError = OperationalError;
22
- /**
23
- * Check if an error is an operational error
24
- * @param error - Error to check
25
- * @returns True if the error is operational
26
- */
27
- function isOperationalError(error) {
28
- if (!error || typeof error !== "object")
29
- return false;
30
- return (error instanceof OperationalError ||
31
- error.isOperational === true);
32
- }
33
- /**
34
- * Check if an error is a programmer error (unexpected, likely a bug)
35
- * @param error - Error to check
36
- * @returns True if the error is a programmer error
37
- */
38
- function isProgrammerError(error) {
39
- if (!error || typeof error !== "object")
40
- return false;
41
- return !isOperationalError(error);
42
- }
43
- //# sourceMappingURL=operational-error.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operational-error.cjs","sources":["operational-error.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"operational-error.js","sourceRoot":"","sources":["../src/operational-error.ts"],"names":[],"mappings":";;;AAwBA,gDAMC;AAOD,8CAGC;AAxCD;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAGzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,sBAAsB;QACtB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAbD,4CAaC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,CACL,KAAK,YAAY,gBAAgB;QAChC,KAAqC,CAAC,aAAa,KAAK,IAAI,CAC9D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promisifyAll = promisifyAll;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const promisify_ts_1 = require("./promisify.cjs");
6
- const util_ts_1 = require("./util.cjs");
7
- const defaultSuffix = "Async";
8
- const defaultFilter = function (name) {
9
- return ((0, util_ts_1.isIdentifier)(name) &&
10
- name.charAt(0) !== "_" &&
11
- name !== "constructor" &&
12
- !name.endsWith("Sync"));
13
- };
14
- const defaultPromisifier = (fn, _defaultPromisifier, options) => {
15
- return (0, promisify_ts_1.promisify)(fn, {
16
- ...options,
17
- copyProps: false,
18
- });
19
- };
20
- function promisifyAll2(obj, options) {
21
- const allKeys = (0, util_ts_1.getObjectDataKeys)(obj);
22
- for (const key of allKeys) {
23
- const value = obj[key];
24
- const promisifiedKey = key + options.suffix;
25
- const passesDefaultFilter = options.filter === defaultFilter ? true : defaultFilter(key, value, obj);
26
- if (typeof value !== "function" ||
27
- (0, util_ts_1.isPromisified)(value) ||
28
- obj[promisifiedKey] ||
29
- !options.filter(key, value, obj, passesDefaultFilter)) {
30
- continue;
31
- }
32
- if (key.endsWith(options.suffix)) {
33
- throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a".replace("%s", options.suffix));
34
- }
35
- obj[promisifiedKey] = options.promisifier(value, defaultPromisifier, {
36
- // context: obj, // promisified function should get the binded object using this
37
- copyProps: false,
38
- ...options,
39
- });
40
- }
41
- }
42
- function promisifyAll(target, _options) {
43
- if (typeof target !== "function" && typeof target !== "object") {
44
- throw new TypeError("the target of promisifyAll must be an object or a function");
45
- }
46
- const options = {
47
- suffix: defaultSuffix,
48
- filter: defaultFilter,
49
- promisifier: defaultPromisifier,
50
- Promise: globalThis.Promise,
51
- multiArgs: false,
52
- copyProps: true,
53
- context: undefined,
54
- ..._options,
55
- };
56
- const suffix = options.suffix;
57
- if (!(0, util_ts_1.isIdentifier)(suffix)) {
58
- throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a");
59
- }
60
- const allKeys = (0, util_ts_1.getObjectDataKeys)(target);
61
- for (const key of allKeys) {
62
- const value = target[key];
63
- if (value &&
64
- key !== "constructor" &&
65
- !key.startsWith("_") &&
66
- (0, util_ts_1.isClass)(value)) {
67
- promisifyAll2(value.prototype, options);
68
- promisifyAll2(value, options);
69
- }
70
- }
71
- promisifyAll2(target, options);
72
- return target;
73
- }
74
- //# sourceMappingURL=promisify-all.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promisify-all.cjs","sources":["promisify-all.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,gCAAgC,eAAc;AAC9C,2BAA2B,UAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,10 +0,0 @@
1
- import { PromisifyOptions } from "./promisify.ts";
2
- type FilterFunction = (name: string, value: unknown, target: object, passesDefaultFilter?: boolean) => boolean;
3
- type PromisifierFunction = (fn: (...args: any[]) => void, defaultPromisifier: (fn: (...args: any[]) => void, dp: any, options: PromisifyAllOptions) => (...args: any[]) => Promise<unknown>, options: PromisifyAllOptions) => (...args: any[]) => Promise<unknown>;
4
- export interface PromisifyAllOptions extends PromisifyOptions {
5
- suffix?: string;
6
- filter?: FilterFunction;
7
- promisifier?: PromisifierFunction;
8
- }
9
- export declare function promisifyAll<T extends object>(target: T, _options?: PromisifyAllOptions): T;
10
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"promisify-all.js","sourceRoot":"","sources":["../src/promisify-all.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promisify = promisify;
4
- const util_ts_1 = require("./util.cjs");
5
- function promisify(fn, _options) {
6
- if (typeof fn !== "function") {
7
- throw new TypeError("expecting a function but got " + {}.toString.call(fn));
8
- }
9
- if ((0, util_ts_1.isPromisified)(fn)) {
10
- return fn;
11
- }
12
- const options = {
13
- Promise: globalThis.Promise,
14
- multiArgs: false,
15
- copyProps: true,
16
- suffix: "",
17
- context: undefined,
18
- ..._options,
19
- };
20
- const PromiseCtor = options.Promise;
21
- const multiArgs = !!options.multiArgs;
22
- const promisifiedFn = function (...args) {
23
- return new PromiseCtor((resolve, reject) => {
24
- // add a callback to the end of the arguments to transfer the result to the promise
25
- args.push(((err, ...values) => {
26
- if (err) {
27
- return reject(err);
28
- }
29
- if (multiArgs) {
30
- resolve(values);
31
- }
32
- else {
33
- resolve(values[0]);
34
- }
35
- }));
36
- // call the original function with the updated args
37
- fn.call(options.context || this, ...args);
38
- });
39
- };
40
- if (options.copyProps) {
41
- (0, util_ts_1.copyOwnProperties)(fn, promisifiedFn);
42
- }
43
- Object.defineProperty(promisifiedFn, "__isPromisified__", {
44
- value: true,
45
- writable: false,
46
- enumerable: false,
47
- configurable: true,
48
- });
49
- Object.defineProperty(promisifiedFn, "length", {
50
- value: fn.length,
51
- writable: false,
52
- enumerable: false,
53
- configurable: false,
54
- });
55
- Object.defineProperty(promisifiedFn, "name", {
56
- value: fn.name + options.suffix,
57
- writable: false,
58
- enumerable: false,
59
- configurable: false,
60
- });
61
- return promisifiedFn;
62
- }
63
- //# sourceMappingURL=promisify.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promisify.cjs","sources":["promisify.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA,2BAA2B,UAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"promisify.js","sourceRoot":"","sources":["../src/promisify.ts"],"names":[],"mappings":";;AAcA,8BA0EC;AAxFD,uCAA6D;AAc7D,SAAgB,SAAS,CACvB,EAAqB,EACrB,QAA2B;IAE3B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CACjB,+BAA+B,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,uBAAa,EAAC,EAAE,CAAC,EAAE,CAAC;QACtB,OAAO,EAAuC,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAA+B;QAC1C,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,SAAS;QAClB,GAAG,QAAQ;KACZ,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAEtC,MAAM,aAAa,GAAG,UAEpB,GAAG,IAAe;QAElB,OAAO,IAAI,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,mFAAmF;YACnF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAiB,EAAE,GAAG,MAAiB,EAAE,EAAE;gBACrD,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,MAAW,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,CAA0B,CAAC,CAAC;YAE7B,mDAAmD;YACnD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAA,2BAAiB,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,mBAAmB,EAAE;QACxD,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE;QAC7C,KAAK,EAAE,EAAE,CAAC,MAAM;QAChB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAG,EAAwB,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM;QACtD,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1 +0,0 @@
1
- {"root":["../src/any.ts","../src/aveazul.ts","../src/disposer.ts","../src/index.ts","../src/not-implemented.ts","../src/operational-error.ts","../src/promisify-all.ts","../src/promisify.ts","../src/using.ts","../src/util.ts"],"version":"5.9.3"}
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.using = using;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const disposer_ts_1 = require("./disposer.cjs");
6
- const util_ts_1 = require("./util.cjs");
7
- const error_1 = require("@jchip/error");
8
- const SYM_FN_DISPOSE = Symbol("fnDispose");
9
- /**
10
- * The using function is a utility function that allows you to acquire resources,
11
- * process them, and then dispose of them in an error-safe manner.
12
- *
13
- * @param resources - An array of resources to acquire.
14
- * @param handler - A function that will be called with the acquired resources.
15
- * @param PromiseCtor - The Promise implementation to use. AveAzul or Bluebird.
16
- * @param asArray - Whether to return the result as an array.
17
- * @returns A promise that resolves to the result of the handler function.
18
- */
19
- function using(resources, handler, PromiseCtor, asArray) {
20
- if (typeof handler !== "function") {
21
- throw new TypeError("handler must be a function");
22
- }
23
- // resources is guaranateed to be an array of disposer, promise like, or any value
24
- // first process all resources by mapping the resources array:
25
- // 1. if it's a disposer, get its promise and resolve its value
26
- // 2. if it's a promise like, get its value
27
- // 3. otherwise, return the value
28
- // Expect Promise to be AveAzul or Bluebird that has map method
29
- const acquisitionErrors = [];
30
- // Helper function to process a disposer
31
- const processDisposer = async (resource, disposer) => {
32
- try {
33
- const res = await disposer._promise;
34
- resource._result = res;
35
- resource[SYM_FN_DISPOSE] = disposer._data;
36
- }
37
- catch (error) {
38
- acquisitionErrors.push(error);
39
- resource._error = error;
40
- }
41
- return resource;
42
- };
43
- // Helper to check if something is a disposer
44
- const isDisposer = (obj) => obj != null &&
45
- (obj instanceof disposer_ts_1.Disposer ||
46
- (obj._promise !== undefined &&
47
- typeof obj._data === "function"));
48
- const acquireResources = () => {
49
- const promiseRes = resources.map((resource) => {
50
- // if it's a promise-like, wait for its resolved value
51
- if ((0, util_ts_1.isPromise)(resource)) {
52
- return { ___promise: resource };
53
- }
54
- return resource;
55
- });
56
- return PromiseCtor.map(promiseRes, async (resource) => {
57
- // If it's directly a disposer
58
- if (isDisposer(resource)) {
59
- return processDisposer({}, resource);
60
- }
61
- // if it's a promise like, wait for its resolved value
62
- if (resource && resource.___promise) {
63
- try {
64
- const res = await resource.___promise;
65
- // Check if the resolved value is a disposer
66
- if (isDisposer(res)) {
67
- return processDisposer(resource, res);
68
- }
69
- else {
70
- resource._result = res;
71
- }
72
- }
73
- catch (error) {
74
- acquisitionErrors.push(error);
75
- resource._error = error;
76
- }
77
- return resource;
78
- }
79
- return { _result: resource };
80
- });
81
- };
82
- const disposeResources = (processedResources) => {
83
- const errors = [];
84
- return (PromiseCtor.each(processedResources, async (resource) => {
85
- // dispose all resources that were acquired without errors
86
- if (resource && resource[SYM_FN_DISPOSE]) {
87
- try {
88
- await resource[SYM_FN_DISPOSE](resource._result);
89
- }
90
- catch (error) {
91
- errors.push(error);
92
- }
93
- }
94
- })).finally(() => {
95
- if (errors.length > 0) {
96
- PromiseCtor.___throwUncaughtError(new error_1.AggregateError(errors, "cleanup resources failed"));
97
- }
98
- });
99
- };
100
- return acquireResources().then((processedResources) => {
101
- if (acquisitionErrors.length > 0) {
102
- return disposeResources(processedResources).tap(() => {
103
- throw acquisitionErrors[0];
104
- });
105
- }
106
- // now collect all the results into an array
107
- const results = [];
108
- for (const resource of processedResources) {
109
- results.push(resource._result);
110
- }
111
- let handlerPromise;
112
- try {
113
- // now call the handler with the results
114
- handlerPromise = PromiseCtor.resolve(asArray ? handler(results) : handler(...results));
115
- }
116
- catch (error) {
117
- // catch sync error from handler
118
- handlerPromise = PromiseCtor.reject(error);
119
- }
120
- return handlerPromise
121
- .tap(() => {
122
- return disposeResources(processedResources);
123
- })
124
- .tapCatch(() => {
125
- return disposeResources(processedResources);
126
- });
127
- });
128
- }
129
- //# sourceMappingURL=using.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"using.cjs","sources":["using.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,+BAA+B,cAAa;AAC5C,2BAA2B,UAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"using.js","sourceRoot":"","sources":["../src/using.ts"],"names":[],"mappings":";;AAyBA,sBA8IC;AAvKD,uDAAuD;AACvD,+CAAyC;AACzC,uCAAsC;AACtC,wCAA8C;AAG9C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAS3C;;;;;;;;;GASG;AACH,SAAgB,KAAK,CACnB,SAAgB,EAChB,OAA8B,EAC9B,WAAyB,EACzB,OAAgB;IAEhB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACpD,CAAC;IAED,kFAAkF;IAClF,8DAA8D;IAC9D,+DAA+D;IAC/D,2CAA2C;IAC3C,iCAAiC;IACjC,+DAA+D;IAC/D,MAAM,iBAAiB,GAAY,EAAE,CAAC;IAEtC,wCAAwC;IACxC,MAAM,eAAe,GAAG,KAAK,EAC3B,QAA2B,EAC3B,QAAuB,EACK,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACpC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;YACvB,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,KAEX,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;YACvC,QAAQ,CAAC,MAAM,GAAG,KAAc,CAAC;QACnC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,6CAA6C;IAC7C,MAAM,UAAU,GAAG,CAAC,GAAY,EAAwB,EAAE,CACxD,GAAG,IAAI,IAAI;QACX,CAAC,GAAG,YAAY,sBAAQ;YACtB,CAAE,GAAqB,CAAC,QAAQ,KAAK,SAAS;gBAC5C,OAAQ,GAAqB,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC;IAE3D,MAAM,gBAAgB,GAAG,GAAQ,EAAE;QACjC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5C,sDAAsD;YACtD,IAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAuB,CAAC;YACvD,CAAC;YACD,OAAO,QAA6B,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC,GAAG,CACpB,UAAU,EACV,KAAK,EAAE,QAA2C,EAAE,EAAE;YACpD,8BAA8B;YAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,eAAe,CAAC,EAAuB,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;YAED,sDAAsD;YACtD,IAAI,QAAQ,IAAK,QAA8B,CAAC,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAO,QAA8B,CAAC,UAAU,CAAC;oBAC7D,4CAA4C;oBAC5C,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpB,OAAO,eAAe,CACpB,QAA6B,EAC7B,GAAG,CACJ,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACL,QAA8B,CAAC,OAAO,GAAG,GAAG,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,iBAAiB,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;oBACtC,QAA8B,CAAC,MAAM,GAAG,KAAc,CAAC;gBAC1D,CAAC;gBACD,OAAO,QAA6B,CAAC;YACvC,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAuB,CAAC;QACpD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,kBAAuC,EAClC,EAAE;QACP,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;YAC3D,0DAA0D;YAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,qBAAqB,CAC/B,IAAI,sBAAc,CAAC,MAAM,EAAE,0BAA0B,CAAC,CACvD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,kBAAuC,EAAE,EAAE;QACzE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gBACnD,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,cAAmB,CAAC;QAExB,IAAI,CAAC;YACH,wCAAwC;YACxC,cAAc,GAAG,WAAW,CAAC,OAAO,CAClC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,cAAc;aAClB,GAAG,CAAC,GAAG,EAAE;YACR,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC,CAAC;aACD,QAAQ,CAAC,GAAG,EAAE;YACb,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC"}