aveazul 1.0.2 → 1.1.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 (83) hide show
  1. package/cjs-entry.cjs +2 -0
  2. package/dist-cjs/any.cjs +50 -0
  3. package/dist-cjs/any.cjs.map +1 -0
  4. package/dist-cjs/any.d.ts +2 -0
  5. package/dist-cjs/any.js.map +1 -0
  6. package/dist-cjs/aveazul.cjs +648 -0
  7. package/dist-cjs/aveazul.cjs.map +1 -0
  8. package/dist-cjs/aveazul.d.ts +344 -0
  9. package/dist-cjs/aveazul.js.map +1 -0
  10. package/dist-cjs/disposer.cjs +15 -0
  11. package/dist-cjs/disposer.cjs.map +1 -0
  12. package/dist-cjs/disposer.d.ts +9 -0
  13. package/dist-cjs/disposer.js.map +1 -0
  14. package/dist-cjs/index.cjs +17 -0
  15. package/dist-cjs/index.cjs.map +1 -0
  16. package/dist-cjs/index.d.ts +10 -0
  17. package/dist-cjs/index.js.map +1 -0
  18. package/dist-cjs/not-implemented.cjs +107 -0
  19. package/dist-cjs/not-implemented.cjs.map +1 -0
  20. package/dist-cjs/not-implemented.d.ts +4 -0
  21. package/dist-cjs/not-implemented.js.map +1 -0
  22. package/dist-cjs/operational-error.cjs +43 -0
  23. package/dist-cjs/operational-error.cjs.map +1 -0
  24. package/dist-cjs/operational-error.d.ts +20 -0
  25. package/dist-cjs/operational-error.js.map +1 -0
  26. package/dist-cjs/promisify-all.cjs +74 -0
  27. package/dist-cjs/promisify-all.cjs.map +1 -0
  28. package/dist-cjs/promisify-all.d.ts +10 -0
  29. package/dist-cjs/promisify-all.js.map +1 -0
  30. package/dist-cjs/promisify.cjs +63 -0
  31. package/dist-cjs/promisify.cjs.map +1 -0
  32. package/dist-cjs/promisify.d.ts +11 -0
  33. package/dist-cjs/promisify.js.map +1 -0
  34. package/dist-cjs/tsconfig.cjs.tsbuildinfo +1 -0
  35. package/dist-cjs/using.cjs +129 -0
  36. package/dist-cjs/using.cjs.map +1 -0
  37. package/dist-cjs/using.d.ts +12 -0
  38. package/dist-cjs/using.js.map +1 -0
  39. package/dist-cjs/util.cjs +185 -0
  40. package/dist-cjs/util.cjs.map +1 -0
  41. package/dist-cjs/util.d.ts +29 -0
  42. package/dist-cjs/util.js.map +1 -0
  43. package/dist-esm/any.d.ts +2 -0
  44. package/dist-esm/any.js +47 -0
  45. package/dist-esm/any.js.map +1 -0
  46. package/dist-esm/aveazul.d.ts +344 -0
  47. package/dist-esm/aveazul.js +612 -0
  48. package/dist-esm/aveazul.js.map +1 -0
  49. package/dist-esm/disposer.d.ts +9 -0
  50. package/dist-esm/disposer.js +11 -0
  51. package/dist-esm/disposer.js.map +1 -0
  52. package/dist-esm/index.d.ts +10 -0
  53. package/dist-esm/index.js +8 -0
  54. package/dist-esm/index.js.map +1 -0
  55. package/dist-esm/not-implemented.d.ts +4 -0
  56. package/dist-esm/not-implemented.js +102 -0
  57. package/dist-esm/not-implemented.js.map +1 -0
  58. package/dist-esm/operational-error.d.ts +20 -0
  59. package/dist-esm/operational-error.js +37 -0
  60. package/dist-esm/operational-error.js.map +1 -0
  61. package/dist-esm/promisify-all.d.ts +10 -0
  62. package/dist-esm/promisify-all.js +71 -0
  63. package/dist-esm/promisify-all.js.map +1 -0
  64. package/dist-esm/promisify.d.ts +11 -0
  65. package/dist-esm/promisify.js +60 -0
  66. package/dist-esm/promisify.js.map +1 -0
  67. package/dist-esm/tsconfig.esm.tsbuildinfo +1 -0
  68. package/dist-esm/using.d.ts +12 -0
  69. package/dist-esm/using.js +126 -0
  70. package/dist-esm/using.js.map +1 -0
  71. package/dist-esm/util.d.ts +29 -0
  72. package/dist-esm/util.js +175 -0
  73. package/dist-esm/util.js.map +1 -0
  74. package/package.json +31 -18
  75. package/lib/any.js +0 -55
  76. package/lib/aveazul.js +0 -645
  77. package/lib/disposer.js +0 -14
  78. package/lib/not-implemented.js +0 -110
  79. package/lib/operational-error.js +0 -46
  80. package/lib/promisify-all.js +0 -93
  81. package/lib/promisify.js +0 -70
  82. package/lib/using.js +0 -142
  83. package/lib/util.js +0 -199
@@ -0,0 +1,74 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,10 @@
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 {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promisify-all.js","sourceRoot":"","sources":["../src/promisify-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,11 @@
1
+ export interface PromisifyOptions {
2
+ Promise?: PromiseConstructor;
3
+ multiArgs?: boolean;
4
+ copyProps?: boolean;
5
+ suffix?: string;
6
+ context?: unknown;
7
+ }
8
+ type NodeStyleFunction = (...args: unknown[]) => void;
9
+ type PromisifiedFunction<T> = (...args: unknown[]) => Promise<T>;
10
+ export declare function promisify<T = unknown>(fn: NodeStyleFunction, _options?: PromisifyOptions): PromisifiedFunction<T>;
11
+ export {};
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,129 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,12 @@
1
+ import type { AveAzulClass } from "./aveazul.ts";
2
+ /**
3
+ * The using function is a utility function that allows you to acquire resources,
4
+ * process them, and then dispose of them in an error-safe manner.
5
+ *
6
+ * @param resources - An array of resources to acquire.
7
+ * @param handler - A function that will be called with the acquired resources.
8
+ * @param PromiseCtor - The Promise implementation to use. AveAzul or Bluebird.
9
+ * @param asArray - Whether to return the result as an array.
10
+ * @returns A promise that resolves to the result of the handler function.
11
+ */
12
+ export declare function using<R>(resources: any[], handler: (...args: any[]) => R, PromiseCtor: AveAzulClass, asArray: boolean): any;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"using.js","sourceRoot":"","sources":["../src/using.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isClass = isClass;
4
+ exports.isIdentifier = isIdentifier;
5
+ exports.copyOwnProperties = copyOwnProperties;
6
+ exports.isPromisified = isPromisified;
7
+ exports.isPromise = isPromise;
8
+ exports.getObjectDataKeys = getObjectDataKeys;
9
+ exports.triggerUncaughtException = triggerUncaughtException;
10
+ exports.toArray = toArray;
11
+ /**
12
+ * Determines if a function is a class (either ES6 class or ES5 constructor function)
13
+ * This function performs several checks to identify different class patterns:
14
+ * 1. ES6 classes with the 'class' keyword
15
+ * 2. Constructor functions (ES5 classes) with prototype methods
16
+ *
17
+ * @param fn - The value to check
18
+ * @returns True if the function is a class, false otherwise
19
+ */
20
+ const thisAssignmentPattern = /this\s*\.\s*\S+\s*=/;
21
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
22
+ function isClass(fn) {
23
+ try {
24
+ if (typeof fn === "function") {
25
+ const keys = Object.getOwnPropertyNames(fn.prototype);
26
+ const hasMethods = keys.length > 1;
27
+ const hasMethodsOtherThanConstructor = keys.length > 0 && !(keys.length === 1 && keys[0] === "constructor");
28
+ const hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") &&
29
+ Object.getOwnPropertyNames(fn).length > 0;
30
+ if (hasMethods ||
31
+ hasMethodsOtherThanConstructor ||
32
+ hasThisAssignmentAndStaticMethods) {
33
+ return true;
34
+ }
35
+ }
36
+ return false;
37
+ }
38
+ catch (_a) {
39
+ return false;
40
+ }
41
+ }
42
+ const rident = /^[a-z$_][a-z$_0-9]*$/i;
43
+ function isIdentifier(str) {
44
+ return rident.test(str);
45
+ }
46
+ /**
47
+ * Prop filtering code copied from bluebird/js/release
48
+ */
49
+ const noCopyProps = [
50
+ "arity",
51
+ "length",
52
+ "name",
53
+ "arguments",
54
+ "caller",
55
+ "callee",
56
+ "prototype",
57
+ "__isPromisified__",
58
+ ];
59
+ const noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$");
60
+ function propsFilter(key) {
61
+ return !noCopyPropsPattern.test(key);
62
+ }
63
+ function copyOwnProperties(source, target, filter = propsFilter) {
64
+ const names = Object.getOwnPropertyNames(source);
65
+ for (const name of names) {
66
+ if (filter(name)) {
67
+ Object.defineProperty(target, name, Object.getOwnPropertyDescriptor(source, name));
68
+ }
69
+ }
70
+ }
71
+ /**
72
+ * Copied from bluebird/js/release/util.js
73
+ */
74
+ function isPromisified(fn) {
75
+ try {
76
+ return fn.__isPromisified__ === true;
77
+ }
78
+ catch (_a) {
79
+ return false;
80
+ }
81
+ }
82
+ /**
83
+ * Determines if an object is a Promise instance
84
+ * @param obj - The object to check
85
+ * @returns True if the object is a Promise instance, false otherwise
86
+ */
87
+ function isPromise(obj) {
88
+ return (obj instanceof Promise ||
89
+ (obj != null &&
90
+ typeof obj === "object" &&
91
+ typeof obj.then === "function" &&
92
+ typeof obj.catch === "function"));
93
+ }
94
+ /**
95
+ * Gets all property keys from an object and its prototype chain, excluding standard
96
+ * prototypes like Object.prototype, Array.prototype, and Function.prototype
97
+ *
98
+ * @param obj - The target object to get keys from
99
+ * @param excludedProtos - An array of prototype objects to exclude keys from
100
+ * @returns Array of property keys
101
+ */
102
+ function getObjectDataKeys(obj, excludedProtos = []) {
103
+ const excludedPrototypes = [
104
+ Array.prototype,
105
+ Object.prototype,
106
+ Function.prototype,
107
+ ...excludedProtos,
108
+ ];
109
+ const isExcludedProto = function (val) {
110
+ for (const protoVal of excludedPrototypes) {
111
+ if (protoVal === val) {
112
+ return true;
113
+ }
114
+ }
115
+ return false;
116
+ };
117
+ const ret = [];
118
+ const visitedKeys = Object.create(null);
119
+ /* copied from bluebird/js/release/util.js and modified */
120
+ while (obj && !isExcludedProto(obj)) {
121
+ let keys;
122
+ try {
123
+ keys = Object.getOwnPropertyNames(obj);
124
+ }
125
+ catch (_a) {
126
+ /* istanbul ignore next */
127
+ return ret;
128
+ }
129
+ for (const key of keys) {
130
+ /* istanbul ignore if */
131
+ if (visitedKeys[key]) {
132
+ /* istanbul ignore next */
133
+ continue;
134
+ }
135
+ visitedKeys[key] = true;
136
+ const desc = Object.getOwnPropertyDescriptor(obj, key);
137
+ /**
138
+ * When desc.get && desc.set are falsy, it means the property is a data
139
+ * property that holds an actual value, rather than being computed dynamically
140
+ * through getter/setter functions.
141
+ */
142
+ /* istanbul ignore next */
143
+ if (desc && !desc.get && !desc.set) {
144
+ ret.push(key);
145
+ }
146
+ }
147
+ obj = Object.getPrototypeOf(obj);
148
+ }
149
+ return ret;
150
+ }
151
+ /**
152
+ * Triggers an uncaught exception in a safe way by scheduling it on the next event loop tick
153
+ * This is used for fatal errors that should crash the process
154
+ * @param error - The error to throw
155
+ */
156
+ function triggerUncaughtException(error) {
157
+ let err;
158
+ if (!(error instanceof Error)) {
159
+ err = new Error(String(error));
160
+ }
161
+ else {
162
+ err = error;
163
+ }
164
+ // Use setTimeout with 0ms delay to throw on the next event loop tick
165
+ // This ensures the current execution context completes first
166
+ setTimeout(() => {
167
+ throw err;
168
+ }, 0);
169
+ }
170
+ function toArray(args) {
171
+ if (!Array.isArray(args)) {
172
+ // Check if args is iterable
173
+ if (args != null &&
174
+ typeof args[Symbol.iterator] === "function") {
175
+ // Convert iterable to array, must do this to get the length, in order
176
+ // to detect if too many errors occurred and completion is impossible.
177
+ args = Array.from(args);
178
+ }
179
+ else {
180
+ throw new TypeError("expecting an array or an iterable object but got " + args);
181
+ }
182
+ }
183
+ return args;
184
+ }
185
+ //# sourceMappingURL=util.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.cjs","sources":["util.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,29 @@
1
+ export declare function isClass(fn: unknown): fn is Function;
2
+ export declare function isIdentifier(str: string): boolean;
3
+ export declare function copyOwnProperties(source: object, target: object, filter?: (key: string) => boolean): void;
4
+ /**
5
+ * Copied from bluebird/js/release/util.js
6
+ */
7
+ export declare function isPromisified(fn: unknown): boolean;
8
+ /**
9
+ * Determines if an object is a Promise instance
10
+ * @param obj - The object to check
11
+ * @returns True if the object is a Promise instance, false otherwise
12
+ */
13
+ export declare function isPromise(obj: unknown): obj is Promise<unknown>;
14
+ /**
15
+ * Gets all property keys from an object and its prototype chain, excluding standard
16
+ * prototypes like Object.prototype, Array.prototype, and Function.prototype
17
+ *
18
+ * @param obj - The target object to get keys from
19
+ * @param excludedProtos - An array of prototype objects to exclude keys from
20
+ * @returns Array of property keys
21
+ */
22
+ export declare function getObjectDataKeys(obj: object | null, excludedProtos?: object[]): string[];
23
+ /**
24
+ * Triggers an uncaught exception in a safe way by scheduling it on the next event loop tick
25
+ * This is used for fatal errors that should crash the process
26
+ * @param error - The error to throw
27
+ */
28
+ export declare function triggerUncaughtException(error: unknown): void;
29
+ export declare function toArray<T>(args: Iterable<T> | ArrayLike<T>): T[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { AveAzulClass } from "./aveazul.ts";
2
+ export declare function addStaticAny(AveAzul: AveAzulClass, force?: boolean): void;
@@ -0,0 +1,47 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { toArray, isPromise } from "./util.js";
3
+ import { AggregateError } from "@jchip/error";
4
+ export function addStaticAny(AveAzul, force = false) {
5
+ if (force || !AveAzul.any) {
6
+ AveAzul.any = function (args) {
7
+ let argsArray;
8
+ try {
9
+ argsArray = toArray(args);
10
+ }
11
+ catch (error) {
12
+ return AveAzul.reject(error);
13
+ }
14
+ if (argsArray.length === 0) {
15
+ return AveAzul.reject(new RangeError("Input array must contain at least 1 items but contains only 0 items"));
16
+ }
17
+ return new AveAzul((resolve, reject) => {
18
+ const len = argsArray.length;
19
+ let settled = false;
20
+ const errors = [];
21
+ const doFinish = (value) => {
22
+ if (settled)
23
+ return;
24
+ settled = true;
25
+ resolve(value);
26
+ };
27
+ const addError = (err) => {
28
+ errors.push(err);
29
+ if (!settled && errors.length >= len) {
30
+ settled = true;
31
+ reject(new AggregateError(errors));
32
+ }
33
+ };
34
+ for (let i = 0; i < len; i++) {
35
+ const arg = argsArray[i];
36
+ if (isPromise(arg)) {
37
+ arg.then(doFinish, addError);
38
+ }
39
+ else {
40
+ doFinish(arg);
41
+ }
42
+ }
43
+ });
44
+ };
45
+ }
46
+ }
47
+ //# sourceMappingURL=any.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any.js","sourceRoot":"","sources":["../src/any.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,UAAU,YAAY,CAAC,OAAqB,EAAE,KAAK,GAAG,KAAK;IAC/D,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,GAAG,UAAa,IAAkC;YAC3D,IAAI,SAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,UAAU,CACZ,qEAAqE,CACtE,CACF,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,MAAM,GAAY,EAAE,CAAC;gBAE3B,MAAM,QAAQ,GAAG,CAAC,KAAQ,EAAQ,EAAE;oBAClC,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC;gBAEF,MAAM,QAAQ,GAAG,CAAC,GAAU,EAAQ,EAAE;oBACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBACrC,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC,CAAC;gBAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClB,GAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,GAAQ,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}