@nejs/basic-extensions 2.17.0 → 2.19.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.
- package/dist/@nejs/basic-extensions.bundle.2.19.0.js +19 -0
- package/dist/@nejs/basic-extensions.bundle.2.19.0.js.map +7 -0
- package/dist/cjs/classes/enum.d.ts +32 -0
- package/dist/cjs/classes/enum.js +277 -0
- package/dist/cjs/classes/enum.js.map +1 -0
- package/dist/cjs/classes/index.d.ts +1 -0
- package/dist/cjs/classes/index.js +3 -0
- package/dist/cjs/classes/index.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/mjs/classes/enum.d.ts +32 -0
- package/dist/mjs/classes/enum.js +273 -0
- package/dist/mjs/classes/enum.js.map +1 -0
- package/dist/mjs/classes/index.d.ts +1 -0
- package/dist/mjs/classes/index.js +3 -0
- package/dist/mjs/classes/index.js.map +1 -1
- package/dist/mjs/index.js +2 -0
- package/dist/mjs/index.js.map +1 -1
- package/package.json +2 -2
- package/repl.history +10 -0
- package/src/classes/enum.js +339 -0
- package/src/classes/index.js +4 -0
- package/src/index.js +2 -1
- package/dist/@nejs/basic-extensions.bundle.2.17.0.js +0 -19
- package/dist/@nejs/basic-extensions.bundle.2.17.0.js.map +0 -7
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an enumeration object with specified values and properties.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} name - The name of the enumeration.
|
|
5
|
+
* @param {Array|any} values - The values to be included in the enumeration.
|
|
6
|
+
* If not an array, it will be converted into a single-element array.
|
|
7
|
+
* @param {Object|Map} [properties] - Additional properties to be added to
|
|
8
|
+
* the enumeration. Can be an object or a Map.
|
|
9
|
+
* @returns {Object} The constructed enumeration object.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const colors = Enum('Colors', ['red', 'green', 'blue'])
|
|
13
|
+
* console.log(colors.red) // EnumValue object for 'red'
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* The `Enum` function constructs an enumeration object with a given name,
|
|
17
|
+
* values, and optional properties. It supports primitive types, arrays,
|
|
18
|
+
* and objects as values. The function uses a combination of `Object.create`
|
|
19
|
+
* and `Proxy` to define and manage the properties of the enumeration.
|
|
20
|
+
*
|
|
21
|
+
* The enumeration object includes:
|
|
22
|
+
* - A `toString` method that returns the enumeration name.
|
|
23
|
+
* - A `Symbol.toStringTag` for identifying the object as an 'Enum'.
|
|
24
|
+
* - A `Symbol.for('Enum.name')` for storing the enumeration name.
|
|
25
|
+
*
|
|
26
|
+
* For array values, it creates a maker function that returns an
|
|
27
|
+
* `EnumValue` object with properties like `real`, `value`, `type`,
|
|
28
|
+
* `name`, and `compare`.
|
|
29
|
+
*/
|
|
30
|
+
export function Enum(name: string, values: any[] | any, properties?: Object | Map<any, any> | undefined): Object;
|
|
31
|
+
export const EnumExtension: Extension;
|
|
32
|
+
import { Extension } from '@nejs/extension';
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnumExtension = void 0;
|
|
4
|
+
exports.Enum = Enum;
|
|
5
|
+
const extension_1 = require("@nejs/extension");
|
|
6
|
+
const index_js_1 = require("../utils/index.js");
|
|
7
|
+
/**
|
|
8
|
+
* Creates an enumeration object with specified values and properties.
|
|
9
|
+
*
|
|
10
|
+
* @param {string} name - The name of the enumeration.
|
|
11
|
+
* @param {Array|any} values - The values to be included in the enumeration.
|
|
12
|
+
* If not an array, it will be converted into a single-element array.
|
|
13
|
+
* @param {Object|Map} [properties] - Additional properties to be added to
|
|
14
|
+
* the enumeration. Can be an object or a Map.
|
|
15
|
+
* @returns {Object} The constructed enumeration object.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const colors = Enum('Colors', ['red', 'green', 'blue'])
|
|
19
|
+
* console.log(colors.red) // EnumValue object for 'red'
|
|
20
|
+
*
|
|
21
|
+
* @description
|
|
22
|
+
* The `Enum` function constructs an enumeration object with a given name,
|
|
23
|
+
* values, and optional properties. It supports primitive types, arrays,
|
|
24
|
+
* and objects as values. The function uses a combination of `Object.create`
|
|
25
|
+
* and `Proxy` to define and manage the properties of the enumeration.
|
|
26
|
+
*
|
|
27
|
+
* The enumeration object includes:
|
|
28
|
+
* - A `toString` method that returns the enumeration name.
|
|
29
|
+
* - A `Symbol.toStringTag` for identifying the object as an 'Enum'.
|
|
30
|
+
* - A `Symbol.for('Enum.name')` for storing the enumeration name.
|
|
31
|
+
*
|
|
32
|
+
* For array values, it creates a maker function that returns an
|
|
33
|
+
* `EnumValue` object with properties like `real`, `value`, `type`,
|
|
34
|
+
* `name`, and `compare`.
|
|
35
|
+
*/
|
|
36
|
+
function Enum(name, values, properties) {
|
|
37
|
+
const enumeration = Object.create({}, {
|
|
38
|
+
[Symbol.toStringTag]: (0, index_js_1.accessor)('Enum', false, true, false),
|
|
39
|
+
[Symbol.for('Enum.name')]: (0, index_js_1.accessor)(name, false, true, false),
|
|
40
|
+
[Symbol.for('Enum.valueKeys')]: (0, index_js_1.data)([], false, true, false),
|
|
41
|
+
[Symbol.for('nodejs.util.inspect.custom')]: (0, index_js_1.data)(function (depth, options, inspect) {
|
|
42
|
+
const valueKeys = this[Symbol.for('Enum.valueKeys')] ?? [];
|
|
43
|
+
let valueText = valueKeys
|
|
44
|
+
.map(key => `\x1b[1;2m${key}\x1b[22m`)
|
|
45
|
+
.join(', ');
|
|
46
|
+
if (valueText.length)
|
|
47
|
+
valueText = ` { ${valueText} }`;
|
|
48
|
+
return `\x1b[1menum \x1b[22m${name}${valueText}`;
|
|
49
|
+
}, false, true, false),
|
|
50
|
+
toString: (0, index_js_1.data)(function () {
|
|
51
|
+
return `Enum(${name})`;
|
|
52
|
+
}, false, true, false)
|
|
53
|
+
});
|
|
54
|
+
if (!Array.isArray(values)) {
|
|
55
|
+
values = [values];
|
|
56
|
+
}
|
|
57
|
+
const asString = o => index_js_1.as.string(o, { description: true, stringTag: true });
|
|
58
|
+
/**
|
|
59
|
+
* A new base `EnumValue` type object. It contains enough custom symbols and
|
|
60
|
+
* identifiers to allow things like a `compare(to)` function to also work on
|
|
61
|
+
* each of the elements. Thing of this as the shared base functionality for
|
|
62
|
+
* each `Enum` element.
|
|
63
|
+
*
|
|
64
|
+
* @param {any} enumValue the value around which an `EnumValue` type is
|
|
65
|
+
* created.
|
|
66
|
+
* @returns an object defined by {@link Symbol.toStringTag} as well as some
|
|
67
|
+
* custom {@link Symbol} keys. The `node.js` custom inspect symbol is also
|
|
68
|
+
* defined for better REPL representation.
|
|
69
|
+
*/
|
|
70
|
+
const makeEnumValue = (property, enumValue) => ({
|
|
71
|
+
toString: (0, index_js_1.data)(() => enumValue, false, true, false),
|
|
72
|
+
[Symbol.for('Enum.name')]: (0, index_js_1.data)(name, false, true, false),
|
|
73
|
+
[Symbol.for('Enum.is')]: (0, index_js_1.data)(true, false, false, false),
|
|
74
|
+
[Symbol.for('nodejs.util.inspect.custom')]: (0, index_js_1.data)(function (depth, options, inspect) {
|
|
75
|
+
const _options = { ...(options || {}), colors: true };
|
|
76
|
+
const _skip = this.value === Symbol.for('Enum.NonAssociatedValue');
|
|
77
|
+
const _value = _skip
|
|
78
|
+
? ''
|
|
79
|
+
: ` { value: ${inspect(this.value, _options)} }`;
|
|
80
|
+
return `${property}${_value}`;
|
|
81
|
+
}, false, true, false),
|
|
82
|
+
[Symbol.toStringTag]: (0, index_js_1.accessor)('EnumValue', false, true, false),
|
|
83
|
+
[Symbol.for('compare')]: (0, index_js_1.data)(function compareValue(to) {
|
|
84
|
+
const toObj = (to && typeof to === 'object') ? to : { real: to };
|
|
85
|
+
const kName = Symbol.for('Enum.name');
|
|
86
|
+
const hasAndIs = o => (Reflect.has(o, Symbol.for('Enum.is')) && o[Symbol.for('Enum.is')]);
|
|
87
|
+
const isLEnum = hasAndIs(this);
|
|
88
|
+
const isREnum = hasAndIs(toObj);
|
|
89
|
+
if (!isLEnum || !isREnum)
|
|
90
|
+
return false;
|
|
91
|
+
const { real: lReal, value: lValue, name: lName, type: lType } = this;
|
|
92
|
+
const { real: rReal, value: rValue, name: rName, type: rType } = toObj;
|
|
93
|
+
return (lName === rName && lType === rType &&
|
|
94
|
+
lReal === rReal && lValue === rValue);
|
|
95
|
+
}, false, true, false),
|
|
96
|
+
[Symbol.toPrimitive]: (0, index_js_1.data)(function EnumValueToPrimitive(hint) {
|
|
97
|
+
const original = this.real;
|
|
98
|
+
const type = typeof original;
|
|
99
|
+
switch (hint) {
|
|
100
|
+
case 'string':
|
|
101
|
+
if ('string' === type)
|
|
102
|
+
return original;
|
|
103
|
+
else
|
|
104
|
+
return String(original);
|
|
105
|
+
case 'number':
|
|
106
|
+
if ('number' === type)
|
|
107
|
+
return original;
|
|
108
|
+
else
|
|
109
|
+
return NaN;
|
|
110
|
+
case 'bigint':
|
|
111
|
+
if ('bigint' === type)
|
|
112
|
+
return original;
|
|
113
|
+
else
|
|
114
|
+
return NaN;
|
|
115
|
+
default:
|
|
116
|
+
return original;
|
|
117
|
+
}
|
|
118
|
+
}, false, true, false),
|
|
119
|
+
});
|
|
120
|
+
/**
|
|
121
|
+
* Given a value, determine how to represent it as both a key and a response
|
|
122
|
+
* or underlying original value. The method for this is dependent on the type
|
|
123
|
+
* of the value itself.
|
|
124
|
+
*
|
|
125
|
+
* @param {any} value the value to be converted
|
|
126
|
+
* @returns {[string, any]} an array where the first value is the transformed
|
|
127
|
+
* value as a key and the second element is the originally supplied value.
|
|
128
|
+
*/
|
|
129
|
+
const fromPrimitive = (value) => {
|
|
130
|
+
let valueType = typeof value;
|
|
131
|
+
switch (valueType) {
|
|
132
|
+
case 'string':
|
|
133
|
+
case 'number':
|
|
134
|
+
case 'bigint':
|
|
135
|
+
case 'boolean':
|
|
136
|
+
default:
|
|
137
|
+
return [String(value), value];
|
|
138
|
+
case 'symbol':
|
|
139
|
+
return [value.description, value];
|
|
140
|
+
case 'function':
|
|
141
|
+
return [value.name, value];
|
|
142
|
+
case 'object': {
|
|
143
|
+
const str = asString(value);
|
|
144
|
+
return [str, str];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
// Determine the keys that the final proxy should be aware of when computing
|
|
149
|
+
// the enumeration value itself.
|
|
150
|
+
const kValueProps = ['real', 'value', 'type', 'name', 'compare', 'isEnum'];
|
|
151
|
+
const kCustomPropKeys = [];
|
|
152
|
+
// Capture and calculate any custom properties defined for each element
|
|
153
|
+
// of the enumeration. Each custom property is appended to `kCustomPropKeys`
|
|
154
|
+
const props = {};
|
|
155
|
+
if (properties) {
|
|
156
|
+
if (Array.isArray(properties)) {
|
|
157
|
+
const entries = properties.filter(e => Array.isArray(e) && e.length === 2);
|
|
158
|
+
if (entries.length)
|
|
159
|
+
properties = new Map(entries);
|
|
160
|
+
else
|
|
161
|
+
properties = new Map();
|
|
162
|
+
}
|
|
163
|
+
else if (typeof properties === 'object') {
|
|
164
|
+
properties = new Map(Object.entries(properties));
|
|
165
|
+
}
|
|
166
|
+
if (properties instanceof Map) {
|
|
167
|
+
const applyPropertiesOf = (object, baseDescriptor) => {
|
|
168
|
+
const property = {
|
|
169
|
+
configurable: baseDescriptor?.configurable ?? true,
|
|
170
|
+
enumerable: baseDescriptor?.enumerable ?? true,
|
|
171
|
+
writable: baseDescriptor?.writable ?? true,
|
|
172
|
+
};
|
|
173
|
+
for (const [key, subvalue] of Object.entries(object)) {
|
|
174
|
+
if ((stats = (0, index_js_1.isDescriptor)(subvalue)).isValid) {
|
|
175
|
+
if (stats.isAccessor || stats.isData)
|
|
176
|
+
props[key] = subvalue;
|
|
177
|
+
}
|
|
178
|
+
else
|
|
179
|
+
props[key] = (0, index_js_1.data)(subvalue, property, false, true, false);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
let stats = {};
|
|
183
|
+
for (const [property, value] of properties.entries()) {
|
|
184
|
+
kCustomPropKeys.push(property);
|
|
185
|
+
if ((0, index_js_1.isDescriptor)(property)) {
|
|
186
|
+
if (typeof value === 'object') {
|
|
187
|
+
applyPropertiesOf(value, property);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
props[property] = (0, index_js_1.data)(value);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
for (const value of values) {
|
|
196
|
+
const valueType = Array.isArray(value) ? 'array' : typeof value;
|
|
197
|
+
let property = undefined;
|
|
198
|
+
let response = undefined;
|
|
199
|
+
let makeNew = undefined;
|
|
200
|
+
let wasArray = false;
|
|
201
|
+
let elements = value;
|
|
202
|
+
switch (valueType) {
|
|
203
|
+
case 'array':
|
|
204
|
+
if (value.length >= 1) {
|
|
205
|
+
wasArray = true;
|
|
206
|
+
([property, response] = fromPrimitive(elements[0]));
|
|
207
|
+
}
|
|
208
|
+
default:
|
|
209
|
+
([property, response] = fromPrimitive(value));
|
|
210
|
+
}
|
|
211
|
+
const maker = {
|
|
212
|
+
[property](initialValue) {
|
|
213
|
+
const storage = new Map();
|
|
214
|
+
const key = property;
|
|
215
|
+
const realValue = (0, index_js_1.accessor)(response, false, { storage, key });
|
|
216
|
+
let _opts, associatedValue;
|
|
217
|
+
if (wasArray) {
|
|
218
|
+
_opts = { storage, key: key + '.associated' };
|
|
219
|
+
associatedValue = elements.length === 1
|
|
220
|
+
? (0, index_js_1.accessor)(initialValue, true, _opts)
|
|
221
|
+
: (0, index_js_1.accessor)(elements?.[1], elements?.[2], _opts);
|
|
222
|
+
}
|
|
223
|
+
else
|
|
224
|
+
associatedValue = (0, index_js_1.accessor)(Symbol.for('Enum.NonAssociatedValue'), false, false, false);
|
|
225
|
+
const _prop = Object(asString(response));
|
|
226
|
+
const valueProps = [...kValueProps, ...kCustomPropKeys];
|
|
227
|
+
const enumResponse = Object.create(_prop, {
|
|
228
|
+
...makeEnumValue(property, response),
|
|
229
|
+
...props,
|
|
230
|
+
});
|
|
231
|
+
const proxy = new Proxy(_prop, {
|
|
232
|
+
get(target, _property, receiver) {
|
|
233
|
+
if (_property === 'real')
|
|
234
|
+
return realValue.get();
|
|
235
|
+
if (_property === 'value')
|
|
236
|
+
return associatedValue.get();
|
|
237
|
+
if (_property === 'type')
|
|
238
|
+
return name;
|
|
239
|
+
if (_property === 'name')
|
|
240
|
+
return property;
|
|
241
|
+
if (_property === 'compare')
|
|
242
|
+
return enumResponse[Symbol.for('compare')];
|
|
243
|
+
if (_property === 'isEnum')
|
|
244
|
+
return true;
|
|
245
|
+
if (!valueProps.includes(_property))
|
|
246
|
+
return undefined;
|
|
247
|
+
},
|
|
248
|
+
has(target, _property) {
|
|
249
|
+
return valueProps.includes(_property);
|
|
250
|
+
},
|
|
251
|
+
ownKeys(target) {
|
|
252
|
+
return valueProps;
|
|
253
|
+
},
|
|
254
|
+
set(target, _property, value, receiver) {
|
|
255
|
+
if (_property === 'value' && wasArray)
|
|
256
|
+
return associatedValue.set(value);
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
Object.setPrototypeOf(proxy, Object.getPrototypeOf(_prop));
|
|
261
|
+
Object.setPrototypeOf(enumResponse, proxy);
|
|
262
|
+
return enumResponse;
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
enumeration[Symbol.for('Enum.valueKeys')].push(property);
|
|
266
|
+
const dataValue = wasArray ? maker[property] : maker[property]();
|
|
267
|
+
const baseProps = {
|
|
268
|
+
writable: false,
|
|
269
|
+
configurable: false,
|
|
270
|
+
enumerable: true,
|
|
271
|
+
};
|
|
272
|
+
Object.defineProperty(enumeration, property, (0, index_js_1.data)(dataValue, baseProps));
|
|
273
|
+
}
|
|
274
|
+
return enumeration;
|
|
275
|
+
}
|
|
276
|
+
exports.EnumExtension = new extension_1.Extension(Enum);
|
|
277
|
+
//# sourceMappingURL=enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/classes/enum.js"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ const deferred_js_1 = require("./deferred.js");
|
|
|
22
22
|
__exportStar(require("./deferred.js"), exports);
|
|
23
23
|
const descriptor_js_1 = require("./descriptor.js");
|
|
24
24
|
__exportStar(require("./descriptor.js"), exports);
|
|
25
|
+
const enum_js_1 = require("./enum.js");
|
|
26
|
+
__exportStar(require("./enum.js"), exports);
|
|
25
27
|
const introspector_js_1 = require("./introspector.js");
|
|
26
28
|
__exportStar(require("./introspector.js"), exports);
|
|
27
29
|
const iterable_js_1 = require("./iterable.js");
|
|
@@ -45,6 +47,7 @@ exports.NewClassesExtension = new extension_1.Patch(globalThis, {
|
|
|
45
47
|
AsyncIterator: asyncIterable_js_1.AsyncIterator,
|
|
46
48
|
Deferred: deferred_js_1.Deferred,
|
|
47
49
|
Descriptor: descriptor_js_1.Descriptor,
|
|
50
|
+
Enum: enum_js_1.Enum,
|
|
48
51
|
Introspector: introspector_js_1.Introspector,
|
|
49
52
|
Iterable: iterable_js_1.Iterable,
|
|
50
53
|
Iterator: iterable_js_1.Iterator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,yDAAiE;AACjE,qDAAkC;AAElC,+CAAwC;AACxC,gDAA6B;AAE7B,mDAA4C;AAC5C,kDAA+B;AAE/B,uDAAgD;AAChD,oDAAiC;AAEjC,+CAAiD;AACjD,gDAA6B;AAE7B,uDAA+C;AAC/C,oDAAiC;AAEjC,6DAAmE;AACnE,uDAAoC;AAEpC,+CAA4D;AAC5D,gDAA6B;AAE7B,2CAAqC;AACrC,8CAA2B;AAE3B,2CAAoC;AACpC,8CAA2B;AAE3B,6CAAsC;AACtC,+CAA4B;AAE5B,uCAAgC;AAChC,4CAAyB;AAEZ,QAAA,mBAAmB,GAAG,IAAI,iBAAK,CAAC,UAAU,EAAE;IACvD,aAAa,EAAb,gCAAa;IACb,aAAa,EAAb,gCAAa;IACb,QAAQ,EAAR,sBAAQ;IACR,UAAU,EAAV,0BAAU;IACV,YAAY,EAAZ,8BAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,QAAQ,EAAR,sBAAQ;IACR,WAAW,EAAX,6BAAW;IACX,cAAc,EAAd,mCAAc;IACd,YAAY,EAAZ,iCAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,oBAAO;IACP,IAAI,EAAJ,cAAI;CACL,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,yDAAiE;AACjE,qDAAkC;AAElC,+CAAwC;AACxC,gDAA6B;AAE7B,mDAA4C;AAC5C,kDAA+B;AAE/B,uCAAgC;AAChC,4CAAyB;AAEzB,uDAAgD;AAChD,oDAAiC;AAEjC,+CAAiD;AACjD,gDAA6B;AAE7B,uDAA+C;AAC/C,oDAAiC;AAEjC,6DAAmE;AACnE,uDAAoC;AAEpC,+CAA4D;AAC5D,gDAA6B;AAE7B,2CAAqC;AACrC,8CAA2B;AAE3B,2CAAoC;AACpC,8CAA2B;AAE3B,6CAAsC;AACtC,+CAA4B;AAE5B,uCAAgC;AAChC,4CAAyB;AAEZ,QAAA,mBAAmB,GAAG,IAAI,iBAAK,CAAC,UAAU,EAAE;IACvD,aAAa,EAAb,gCAAa;IACb,aAAa,EAAb,gCAAa;IACb,QAAQ,EAAR,sBAAQ;IACR,UAAU,EAAV,0BAAU;IACV,IAAI,EAAJ,cAAI;IACJ,YAAY,EAAZ,8BAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,QAAQ,EAAR,sBAAQ;IACR,WAAW,EAAX,6BAAW;IACX,cAAc,EAAd,mCAAc;IACd,YAAY,EAAZ,iCAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,oBAAO;IACP,IAAI,EAAJ,cAAI;CACL,CAAC,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -31,6 +31,7 @@ const string_extensions_js_1 = require("./string.extensions.js");
|
|
|
31
31
|
const symbol_extensions_js_1 = require("./symbol.extensions.js");
|
|
32
32
|
const deferred_js_1 = require("./classes/deferred.js");
|
|
33
33
|
const descriptor_js_1 = require("./classes/descriptor.js");
|
|
34
|
+
const enum_js_1 = require("./classes/enum.js");
|
|
34
35
|
const introspector_js_1 = require("./classes/introspector.js");
|
|
35
36
|
const iterable_js_1 = require("./classes/iterable.js");
|
|
36
37
|
const param_parser_js_1 = require("./classes/param.parser.js");
|
|
@@ -81,6 +82,7 @@ const Extensions = {
|
|
|
81
82
|
[asyncIterable_js_1.AsyncIteratorExtensions.key]: asyncIterable_js_1.AsyncIteratorExtensions,
|
|
82
83
|
[deferred_js_1.DeferredExtension.key]: deferred_js_1.DeferredExtension,
|
|
83
84
|
[descriptor_js_1.DescriptorExtensions.key]: descriptor_js_1.DescriptorExtensions,
|
|
85
|
+
[enum_js_1.EnumExtension.key]: enum_js_1.EnumExtension,
|
|
84
86
|
[introspector_js_1.IntrospectorExtensions.key]: introspector_js_1.IntrospectorExtensions,
|
|
85
87
|
[iterable_js_1.IterableExtensions.key]: iterable_js_1.IterableExtensions,
|
|
86
88
|
[iterable_js_1.IteratorExtensions.key]: iterable_js_1.IteratorExtensions,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+DAAiF;AACjF,iEAAoF;AACpF,qEAA0F;AAC1F,qDAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an enumeration object with specified values and properties.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} name - The name of the enumeration.
|
|
5
|
+
* @param {Array|any} values - The values to be included in the enumeration.
|
|
6
|
+
* If not an array, it will be converted into a single-element array.
|
|
7
|
+
* @param {Object|Map} [properties] - Additional properties to be added to
|
|
8
|
+
* the enumeration. Can be an object or a Map.
|
|
9
|
+
* @returns {Object} The constructed enumeration object.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const colors = Enum('Colors', ['red', 'green', 'blue'])
|
|
13
|
+
* console.log(colors.red) // EnumValue object for 'red'
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* The `Enum` function constructs an enumeration object with a given name,
|
|
17
|
+
* values, and optional properties. It supports primitive types, arrays,
|
|
18
|
+
* and objects as values. The function uses a combination of `Object.create`
|
|
19
|
+
* and `Proxy` to define and manage the properties of the enumeration.
|
|
20
|
+
*
|
|
21
|
+
* The enumeration object includes:
|
|
22
|
+
* - A `toString` method that returns the enumeration name.
|
|
23
|
+
* - A `Symbol.toStringTag` for identifying the object as an 'Enum'.
|
|
24
|
+
* - A `Symbol.for('Enum.name')` for storing the enumeration name.
|
|
25
|
+
*
|
|
26
|
+
* For array values, it creates a maker function that returns an
|
|
27
|
+
* `EnumValue` object with properties like `real`, `value`, `type`,
|
|
28
|
+
* `name`, and `compare`.
|
|
29
|
+
*/
|
|
30
|
+
export function Enum(name: string, values: any[] | any, properties?: Object | Map<any, any> | undefined): Object;
|
|
31
|
+
export const EnumExtension: Extension;
|
|
32
|
+
import { Extension } from '@nejs/extension';
|