@nejs/basic-extensions 1.9.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.
@@ -1,13 +1,24 @@
1
- export const all: any;
1
+ export namespace all {
2
+ let patches: {};
3
+ let classes: {};
4
+ let global: {};
5
+ }
2
6
  export default results;
3
7
  declare namespace results {
8
+ export { Extensions };
9
+ export { Patches };
10
+ export { GlobalFunctionsAndProps };
11
+ export { StaticPatches };
12
+ export { InstancePatches };
13
+ export { Controls };
4
14
  export { Extensions as extensions };
5
15
  export { Patches as patches };
6
16
  export { all };
7
17
  }
8
- export namespace Extensions {
9
- export { GlobalFunctionsAndProps as global };
10
- }
18
+ export const Extensions: {};
11
19
  export const Patches: Map<any, any>;
20
+ export const StaticPatches: ((string | import("@nejs/extension").Patch | ObjectConstructor)[] | (string | import("@nejs/extension").Patch | FunctionConstructor)[] | (string | import("@nejs/extension").Patch | typeof Reflect)[] | (string | import("@nejs/extension").Patch | StringConstructor)[] | (string | import("@nejs/extension").Patch | SymbolConstructor)[])[];
21
+ export const InstancePatches: (string | Object)[][];
12
22
  export const Controls: {};
13
23
  import { GlobalFunctionsAndProps } from './globals.js';
24
+ export { GlobalFunctionsAndProps };
package/dist/mjs/index.js CHANGED
@@ -14,25 +14,24 @@ import { DeferredExtension } from './newClasses/deferred.js';
14
14
  import { AsyncIteratorExtensions, AsyncIterableExtensions } from './newClasses/asyncIterable.js';
15
15
  import { IteratorExtensions, IterableExtensions } from './newClasses/iterable.js';
16
16
  const StaticPatches = [
17
- [Object, ObjectExtensions],
18
- [Function, FunctionExtensions],
19
- [Reflect, ReflectExtensions],
20
- [String, StringExtensions],
21
- [Symbol, SymbolExtensions],
17
+ [Object, ObjectExtensions, Object.name],
18
+ [Function, FunctionExtensions, Function.name],
19
+ [Reflect, ReflectExtensions, 'Reflect'], // Missing a .name property
20
+ [String, StringExtensions, String.name],
21
+ [Symbol, SymbolExtensions, 'Symbol'], // Missing a .name property
22
22
  ];
23
23
  const InstancePatches = [
24
- [Object.prototype, ObjectPrototypeExtensions],
25
- [Function.prototype, FunctionPrototypeExtensions],
26
- [Array.prototype, ArrayPrototypeExtensions],
27
- [Map.prototype, MapPrototypeExtensions],
28
- [Set.prototype, SetPrototypeExtensions],
24
+ [Object.prototype, ObjectPrototypeExtensions, Object.name],
25
+ [Function.prototype, FunctionPrototypeExtensions, Function.name],
26
+ [Array.prototype, ArrayPrototypeExtensions, Array.name],
27
+ [Map.prototype, MapPrototypeExtensions, Map.name],
28
+ [Set.prototype, SetPrototypeExtensions, Set.name],
29
29
  ];
30
30
  const Patches = new Map([
31
31
  ...StaticPatches,
32
32
  ...InstancePatches,
33
33
  ]);
34
34
  const Extensions = {
35
- global: GlobalFunctionsAndProps,
36
35
  [AsyncIterableExtensions.key]: AsyncIterableExtensions,
37
36
  [AsyncIteratorExtensions.key]: AsyncIteratorExtensions,
38
37
  [DeferredExtension.key]: DeferredExtension,
@@ -51,14 +50,19 @@ Object.assign(Controls, {
51
50
  enablePatches() {
52
51
  Patches.forEach((extension) => { extension.apply(); });
53
52
  },
54
- enableStaticPatches(filter = (extension) => true) {
55
- StaticPatches.filter(filter).forEach(extension => extension.apply());
53
+ enableStaticPatches(filter = ([owner, extension]) => true) {
54
+ const patches = StaticPatches.filter(toFilterFn(filter));
55
+ patches.forEach(([_, extension]) => extension.apply());
56
+ return patches;
56
57
  },
57
- enableInstancePatches(filter = (extension) => true) {
58
- InstancePatches.filter(filter).forEach(extension => extension.apply());
58
+ enableInstancePatches(filter = ([owner, extension]) => true) {
59
+ const patches = InstancePatches.filter(toFilterFn(filter));
60
+ patches.forEach(([_, extension]) => extension.apply());
61
+ return patches;
59
62
  },
60
63
  enableExtensions() {
61
64
  Object.values(Extensions).forEach((extension) => { extension.apply(); });
65
+ GlobalFunctionsAndProps.apply();
62
66
  },
63
67
  disableAll() {
64
68
  Controls.disablePatches();
@@ -67,40 +71,91 @@ Object.assign(Controls, {
67
71
  disablePatches() {
68
72
  Patches.forEach((extension) => { extension.revert(); });
69
73
  },
70
- disableStaticPatches(filter = (extension) => true) {
71
- StaticPatches.filter(filter).forEach(extension => extension.revert());
74
+ disableStaticPatches(filter = ([owner, extension]) => true) {
75
+ const patches = StaticPatches.filter(toFilterFn(filter));
76
+ patches.forEach(([_, extension]) => extension.revert());
77
+ return patches;
72
78
  },
73
- disableInstancePatches(filter = (extension) => true) {
74
- InstancePatches.filter(filter).forEach(extension => extension.revert());
79
+ disableInstancePatches(filter = ([owner, extension]) => true) {
80
+ const patches = InstancePatches.filter(toFilterFn(filter));
81
+ patches.forEach(([_, extension]) => extension.revert());
82
+ return patches;
75
83
  },
76
84
  disableExtensions() {
77
85
  Object.values(Extensions).forEach((extension) => { extension.revert(); });
86
+ GlobalFunctionsAndProps.revert();
78
87
  },
79
88
  });
80
89
  export const all = (() => {
81
- const extensions = [
82
- ...Array.from(Patches.values()),
83
- ...Array.from(Object.values(Extensions)),
84
- ];
85
- const dest = extensions.reduce((accumulator, extension) => {
86
- Reflect.ownKeys(extension.patchEntries).reduce((_, key) => {
87
- const entry = extension.patchEntries[key];
88
- if (entry.isAccessor)
89
- accumulator[key] = new Descriptor(entry.descriptor);
90
- else
91
- accumulator[key] = entry.computed;
92
- return accumulator;
93
- }, accumulator);
90
+ const dest = {
91
+ patches: {},
92
+ classes: {},
93
+ global: {},
94
+ };
95
+ const entriesReducer = (accumulator, [key, entry]) => {
96
+ const descriptor = new Descriptor(entry.descriptor, entry.owner);
97
+ descriptor.applyTo(accumulator, key, true);
94
98
  return accumulator;
95
- }, {});
99
+ };
100
+ const staticPatchReducer = (accumulator, [_, patch, ownerName]) => {
101
+ if (!accumulator?.[ownerName]) {
102
+ accumulator[ownerName] = {};
103
+ }
104
+ [...patch].reduce(entriesReducer, accumulator[ownerName]);
105
+ return accumulator;
106
+ };
107
+ const instancePatchReducer = (accumulator, [_, patch, ownerName]) => {
108
+ if (!accumulator?.[ownerName])
109
+ accumulator[ownerName] = {};
110
+ if (!accumulator[ownerName]?.prototype)
111
+ accumulator[ownerName].prototype = {};
112
+ [...patch].reduce(entriesReducer, accumulator[ownerName].prototype);
113
+ return accumulator;
114
+ };
115
+ StaticPatches.reduce(staticPatchReducer, dest.patches);
116
+ InstancePatches.reduce(instancePatchReducer, dest.patches);
117
+ (Object.entries(Extensions)
118
+ .map(([k, v]) => [k, v, k])
119
+ .reduce(staticPatchReducer, dest.classes));
120
+ for (const [key, entry] of GlobalFunctionsAndProps) {
121
+ const descriptor = new Descriptor(entry.descriptor, entry.owner);
122
+ Object.defineProperty(dest.global, key, descriptor.toObject(true));
123
+ }
96
124
  return dest;
97
125
  })();
98
126
  const results = {
99
127
  ...Controls,
128
+ Extensions,
129
+ Patches,
130
+ GlobalFunctionsAndProps,
131
+ StaticPatches,
132
+ InstancePatches,
133
+ Controls,
100
134
  extensions: Extensions,
101
135
  patches: Patches,
102
136
  all,
103
137
  };
104
138
  export default results;
105
- export { Extensions, Patches, Controls, };
139
+ export { Extensions, Patches, StaticPatches, InstancePatches, Controls, GlobalFunctionsAndProps, };
140
+ function toFilterFn(filter = ([owner, extension]) => true) {
141
+ let filterFn = filter;
142
+ if (typeof filterFn !== 'function') {
143
+ const elements = Array.isArray(filter) ? filter : [filter];
144
+ filterFn = ([owner, _]) => {
145
+ for (const element of elements) {
146
+ const elementStr = String(element);
147
+ if (elementStr.startsWith('^')) {
148
+ if ((owner?.name ?? owner) != elementStr.substring(1)) {
149
+ return true;
150
+ }
151
+ }
152
+ if ((owner?.name ?? owner) == elementStr) {
153
+ return true;
154
+ }
155
+ }
156
+ return false;
157
+ };
158
+ }
159
+ return filterFn;
160
+ }
106
161
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,aAAa,GAAG;IACpB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC;IACvC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC;IAC7C,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAQ,2BAA2B;IAC1E,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC;IACvC,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAW,2BAA2B;CAC3E,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,CAAC,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC;IAC1D,CAAC,QAAQ,CAAC,SAAS,EAAE,2BAA2B,EAAE,QAAQ,CAAC,IAAI,CAAC;IAChE,CAAC,KAAK,CAAC,SAAS,EAAE,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC;IACvD,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC;IACjD,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC;CAClD,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,GAAG,aAAa;IAChB,GAAG,eAAe;CACnB,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG;IACjB,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,uBAAuB;IACtD,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,uBAAuB;IACtD,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,iBAAiB;IAC1C,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,oBAAoB;IAChD,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,kBAAkB;IAC5C,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,kBAAkB;IAC5C,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,gBAAgB;IACxC,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,gBAAgB;CACzC,CAAA;AAED,MAAM,QAAQ,GAAG,EAAE,CAAA;AAEnB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IACtB,SAAS;QACP,QAAQ,CAAC,aAAa,EAAE,CAAA;QACxB,QAAQ,CAAC,gBAAgB,EAAE,CAAA;IAC7B,CAAC;IAED,aAAa;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI;QACvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI;QACzD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,gBAAgB;QACd,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;QACvE,uBAAuB,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IAED,UAAU;QACR,QAAQ,CAAC,cAAc,EAAE,CAAA;QACzB,QAAQ,CAAC,iBAAiB,EAAE,CAAA;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI;QACxD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI;QAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,iBAAiB;QACf,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;QACxE,uBAAuB,CAAC,MAAM,EAAE,CAAA;IAClC,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;IACvB,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAEhE,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAE1C,OAAO,WAAW,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;QAC7B,CAAC;QAED,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;QACzD,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;QAClE,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAC3B,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS;YACpC,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;QAEtC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAA;QACrE,OAAO,WAAW,CAAA;IACpB,CAAC,CAAA;IAED,aAAa,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzB,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAC1C,CAAA;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAChE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,OAAO,GAAG;IACd,GAAG,QAAQ;IACX,UAAU;IACV,OAAO;IACP,uBAAuB;IACvB,aAAa;IACb,eAAe;IACf,QAAQ;IACR,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,OAAO;IAChB,GAAG;CACJ,CAAA;AAED,eAAe,OAAO,CAAA;AAEtB,OAAO,EACL,UAAU,EACV,OAAO,EACP,aAAa,EACb,eAAe,EACf,QAAQ,EACR,uBAAuB,GACxB,CAAA;AAED,SAAS,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI;IACvD,IAAI,QAAQ,GAAG,MAAM,CAAA;IAErB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC1D,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;gBAClC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtD,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -24,19 +24,21 @@ export class AsyncIterable {
24
24
  static isAsyncIterable(value: any): boolean;
25
25
  /**
26
26
  * Constructs an instance of AsyncIterable. Similar to Iterable, it can be
27
- * initialized with either an iterable object or individual elements. The
28
- * elements can be promises, direct values, or a mix of both. If the first
29
- * argument is an iterable, the instance is initialized with the elements
30
- * from the iterable, followed by any additional arguments. If the first
31
- * argument is not an iterable, all arguments are treated as individual
32
- * elements.
27
+ * initialized with either an iterable object, an async generator function,
28
+ * or individual elements. The elements can be promises, direct values, or a
29
+ * mix of both. If the first argument is an iterable or an async generator
30
+ * function, the instance is initialized with the elements from the iterable
31
+ * or the generated elements from the async generator function, followed by
32
+ * any additional arguments. If the first argument is not an iterable or an
33
+ * async generator function, all arguments are treated as individual elements.
33
34
  *
34
- * @param {Iterable|Promise|*} elementsOrFirstElement - An iterable object,
35
- * a Promise, or the first element.
35
+ * @param {Iterable|AsyncGeneratorFunction|Promise|*} elementsOrFirstElement -
36
+ * An iterable object, an async generator function, a Promise, or the first
37
+ * element.
36
38
  * @param {...Promise|*} moreElements - Additional elements if the first
37
- * argument is not an iterable.
39
+ * argument is not an iterable or an async generator function.
38
40
  */
39
- constructor(elementsOrFirstElement: Iterable<any> | Promise<any> | any, ...moreElements: (Promise<any> | any)[]);
41
+ constructor(elementsOrFirstElement: Iterable<any> | AsyncGeneratorFunction | Promise<any> | any, ...moreElements: (Promise<any> | any)[]);
40
42
  /**
41
43
  * Implements the async iterable protocol. When an instance of AsyncIterable
42
44
  * is used in a `for await...of` loop, this async generator function is
@@ -67,10 +69,11 @@ export class AsyncIterator {
67
69
  /**
68
70
  * Creates a new `AsyncIterator` object instance.
69
71
  *
70
- * @param {object} asyncIterable any object that has a
71
- * `[Symbol.asyncIterable]` property assigned to a generator function.
72
+ * @param {object|AsyncGeneratorFunction} asyncIterable any object that has a
73
+ * `[Symbol.asyncIterable]` property assigned to a generator function or an
74
+ * async generator function itself.
72
75
  */
73
- constructor(asyncIterable: object);
76
+ constructor(asyncIterable: object | AsyncGeneratorFunction);
74
77
  /**
75
78
  * Returns a new `Array` derived from the iterable this object
76
79
  * wraps.
@@ -15,23 +15,30 @@ export class AsyncIterable {
15
15
  #elements = [];
16
16
  /**
17
17
  * Constructs an instance of AsyncIterable. Similar to Iterable, it can be
18
- * initialized with either an iterable object or individual elements. The
19
- * elements can be promises, direct values, or a mix of both. If the first
20
- * argument is an iterable, the instance is initialized with the elements
21
- * from the iterable, followed by any additional arguments. If the first
22
- * argument is not an iterable, all arguments are treated as individual
23
- * elements.
18
+ * initialized with either an iterable object, an async generator function,
19
+ * or individual elements. The elements can be promises, direct values, or a
20
+ * mix of both. If the first argument is an iterable or an async generator
21
+ * function, the instance is initialized with the elements from the iterable
22
+ * or the generated elements from the async generator function, followed by
23
+ * any additional arguments. If the first argument is not an iterable or an
24
+ * async generator function, all arguments are treated as individual elements.
24
25
  *
25
- * @param {Iterable|Promise|*} elementsOrFirstElement - An iterable object,
26
- * a Promise, or the first element.
26
+ * @param {Iterable|AsyncGeneratorFunction|Promise|*} elementsOrFirstElement -
27
+ * An iterable object, an async generator function, a Promise, or the first
28
+ * element.
27
29
  * @param {...Promise|*} moreElements - Additional elements if the first
28
- * argument is not an iterable.
30
+ * argument is not an iterable or an async generator function.
29
31
  */
30
32
  constructor(elementsOrFirstElement, ...moreElements) {
31
33
  if (elementsOrFirstElement != null &&
32
- typeof elementsOrFirstElement[Symbol.iterator] === 'function') {
34
+ (typeof elementsOrFirstElement[Symbol.iterator] === 'function' ||
35
+ typeof elementsOrFirstElement[Symbol.asyncIterator] === 'function')) {
33
36
  this.#elements = [...elementsOrFirstElement, ...moreElements];
34
37
  }
38
+ else if (typeof elementsOrFirstElement === 'function' &&
39
+ elementsOrFirstElement.constructor.name === 'AsyncGeneratorFunction') {
40
+ this.#elements = elementsOrFirstElement();
41
+ }
35
42
  else {
36
43
  this.#elements = [elementsOrFirstElement, ...moreElements];
37
44
  }
@@ -47,10 +54,10 @@ export class AsyncIterable {
47
54
  * a Promise.
48
55
  */
49
56
  async *[Symbol.asyncIterator]() {
50
- for (const element of this.#elements) {
51
- // Treat each element as a promise. If it's not, it's automatically
52
- // wrapped as a resolved promise.
53
- yield Promise.resolve(element);
57
+ for await (const element of this.#elements) {
58
+ // No need to wrap as a promise here since `for await...of` can handle
59
+ // both Promises and non-Promise values.
60
+ yield element;
54
61
  }
55
62
  }
56
63
  /**
@@ -91,15 +98,23 @@ export class AsyncIterator {
91
98
  /**
92
99
  * Creates a new `AsyncIterator` object instance.
93
100
  *
94
- * @param {object} asyncIterable any object that has a
95
- * `[Symbol.asyncIterable]` property assigned to a generator function.
101
+ * @param {object|AsyncGeneratorFunction} asyncIterable any object that has a
102
+ * `[Symbol.asyncIterable]` property assigned to a generator function or an
103
+ * async generator function itself.
96
104
  */
97
105
  constructor(asyncIterable) {
98
- if (!asyncIterable || !Reflect.has(asyncIterable, Symbol.asyncIterator)) {
106
+ if (typeof asyncIterable === 'function' &&
107
+ asyncIterable.constructor.name === 'AsyncGeneratorFunction') {
108
+ this.#asyncIterable = asyncIterable();
109
+ }
110
+ else if (!asyncIterable ||
111
+ !Reflect.has(asyncIterable, Symbol.asyncIterator)) {
99
112
  throw new TypeError('Value used to instantiate AsyncIterator is not an async iterable');
100
113
  }
101
- this.#asyncIterable = asyncIterable;
102
- this.#asyncIterator = asyncIterable[Symbol.asyncIterator]();
114
+ else {
115
+ this.#asyncIterable = asyncIterable;
116
+ }
117
+ this.#asyncIterator = this.#asyncIterable[Symbol.asyncIterator]();
103
118
  }
104
119
  /**
105
120
  * Returns a new `Array` derived from the iterable this object
@@ -1 +1 @@
1
- {"version":3,"file":"asyncIterable.js","sourceRoot":"","sources":["../../../src/newClasses/asyncIterable.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asyncIterable.js","sourceRoot":"","sources":["../../../src/newClasses/asyncIterable.js"],"names":[],"mappings":"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"}
@@ -204,15 +204,22 @@ export class Descriptor {
204
204
  */
205
205
  static get DATA_KEYS(): string[];
206
206
  /**
207
- * Creates a new instance of Descriptor either from another object or
208
- * around the supplied object descriptor value.
209
- *
210
- * @param {object} object either an object descriptor or the object
211
- * from which to get the descriptor
212
- * @param {symbol|string} key a valid key for accessing the descriptor
213
- * on the aforesupplied object.
214
- */
215
- constructor(object: object, key: symbol | string);
207
+ * Constructs a Descriptor instance which wraps and manages an object
208
+ * property descriptor. The constructor can handle an existing descriptor
209
+ * object or create a new one based on an object and a property key.
210
+ *
211
+ * @param {object|Descriptor} object - The target object or an existing
212
+ * Descriptor instance. If it's an object, it is used in conjunction with
213
+ * `key` to create a descriptor. If it's a Descriptor instance, it is used
214
+ * directly as the descriptor.
215
+ * @param {string|symbol} [key] - The property key for which the descriptor
216
+ * is to be created. This parameter is ignored if `object` is a Descriptor
217
+ * instance. If `key` is an object and `object` is a valid descriptor, `key`
218
+ * is treated as the associated object.
219
+ * @throws {Error} Throws an error if the constructed descriptor is not
220
+ * valid.
221
+ */
222
+ constructor(object: object | Descriptor, key?: string | symbol | undefined);
216
223
  /**
217
224
  * Detects whether or not this instance is an accessor object descriptor
218
225
  *
@@ -379,7 +386,21 @@ export class Descriptor {
379
386
  * @param {string|symbol} forKey the string or symbol for which this
380
387
  * descriptor will abe applied
381
388
  */
382
- applyTo(object: object, forKey: string | symbol): object;
389
+ applyTo(object: object, forKey: string | symbol, bindAccessors?: boolean): object;
390
+ /**
391
+ * Converts this Descriptor class instance into a basic object descriptor
392
+ * that is accepted by all the standard JavaScript runtime methods that
393
+ * deal with object descriptors.
394
+ *
395
+ * @param {boolean|object} bindAccessors if `true`, a non-fatal attempt to
396
+ * bind accessor getter and setter methods is made before returning the
397
+ * object. If `bindAccessors` is truthy and is also an object, this is the
398
+ * object the accessors will be bound to. If the value is falsy or if the
399
+ * descriptor instance represents a data descriptor, nothing happens.
400
+ * @returns {object} the object instance's basic object representation as
401
+ * a descriptor.
402
+ */
403
+ toObject(bindAccessors?: boolean | object): object;
383
404
  /**
384
405
  * Converts this descriptor object into a base representation
385
406
  *
@@ -20,28 +20,39 @@ export class Descriptor {
20
20
  */
21
21
  #object = undefined;
22
22
  /**
23
- * Creates a new instance of Descriptor either from another object or
24
- * around the supplied object descriptor value.
25
- *
26
- * @param {object} object either an object descriptor or the object
27
- * from which to get the descriptor
28
- * @param {symbol|string} key a valid key for accessing the descriptor
29
- * on the aforesupplied object.
23
+ * Constructs a Descriptor instance which wraps and manages an object
24
+ * property descriptor. The constructor can handle an existing descriptor
25
+ * object or create a new one based on an object and a property key.
26
+ *
27
+ * @param {object|Descriptor} object - The target object or an existing
28
+ * Descriptor instance. If it's an object, it is used in conjunction with
29
+ * `key` to create a descriptor. If it's a Descriptor instance, it is used
30
+ * directly as the descriptor.
31
+ * @param {string|symbol} [key] - The property key for which the descriptor
32
+ * is to be created. This parameter is ignored if `object` is a Descriptor
33
+ * instance. If `key` is an object and `object` is a valid descriptor, `key`
34
+ * is treated as the associated object.
35
+ * @throws {Error} Throws an error if the constructed descriptor is not
36
+ * valid.
30
37
  */
31
38
  constructor(object, key) {
32
39
  if ((object ?? key) === undefined) {
33
40
  this.#desc = Descriptor.enigmatic;
34
41
  }
35
- if (Descriptor.isDescriptor(object)) {
42
+ else if (Descriptor.isDescriptor(object)) {
36
43
  this.#desc = object;
37
- this.#object = undefined;
44
+ this.#object = isObject(key) ? key : undefined;
38
45
  }
39
46
  else if (isObject(object) && isValidKey(key)) {
40
47
  this.#desc = Object.getOwnPropertyDescriptor(object, key);
41
48
  this.#object = object;
42
49
  }
43
50
  if (!this.isDescriptor) {
44
- console.error('Current descriptor:', this.#desc);
51
+ console.error(`
52
+ Descriptor(object,key) FAILED:
53
+ object: ${object === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(object) : String(object))}
54
+ key: ${key === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(key) : String(key))}
55
+ descriptor: `, this.#desc);
45
56
  throw new Error(`Not a valid descriptor:`, this.#desc);
46
57
  }
47
58
  }
@@ -283,11 +294,44 @@ export class Descriptor {
283
294
  * @param {string|symbol} forKey the string or symbol for which this
284
295
  * descriptor will abe applied
285
296
  */
286
- applyTo(object, forKey) {
297
+ applyTo(object, forKey, bindAccessors = false) {
287
298
  if (!isObject(object) || !isValidKey(forKey)) {
288
299
  throw new Error(`Cannot apply descriptor to non-object or invalid key`);
289
300
  }
290
- return Object.defineProperty(object, forKey, this.#desc);
301
+ return Object.defineProperty(object, forKey, this.toObject(bindAccessors));
302
+ }
303
+ /**
304
+ * Converts this Descriptor class instance into a basic object descriptor
305
+ * that is accepted by all the standard JavaScript runtime methods that
306
+ * deal with object descriptors.
307
+ *
308
+ * @param {boolean|object} bindAccessors if `true`, a non-fatal attempt to
309
+ * bind accessor getter and setter methods is made before returning the
310
+ * object. If `bindAccessors` is truthy and is also an object, this is the
311
+ * object the accessors will be bound to. If the value is falsy or if the
312
+ * descriptor instance represents a data descriptor, nothing happens.
313
+ * @returns {object} the object instance's basic object representation as
314
+ * a descriptor.
315
+ */
316
+ toObject(bindAccessors = false) {
317
+ let descriptor = { ...this.#desc };
318
+ if (bindAccessors && this.isAccessor) {
319
+ if (this.hasObject) {
320
+ descriptor = {
321
+ ...descriptor,
322
+ get: this.boundGet,
323
+ set: this.boundSet
324
+ };
325
+ }
326
+ else if (isObject(bindAccessors)) {
327
+ descriptor = {
328
+ ...descriptor,
329
+ get: this.get?.bind(bindAccessors),
330
+ set: this.set?.bind(bindAccessors)
331
+ };
332
+ }
333
+ }
334
+ return descriptor;
291
335
  }
292
336
  /**
293
337
  * Converts this descriptor object into a base representation
@@ -315,7 +359,7 @@ export class Descriptor {
315
359
  case 'number':
316
360
  return NaN;
317
361
  default:
318
- return this.#desc;
362
+ return this.toObject();
319
363
  }
320
364
  }
321
365
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/newClasses/descriptor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/newClasses/descriptor.js"],"names":[],"mappings":"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"}