@nejs/basic-extensions 2.9.0 → 2.10.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 (167) hide show
  1. package/dist/@nejs/basic-extensions.bundle.2.10.0.js +19 -0
  2. package/dist/@nejs/basic-extensions.bundle.2.10.0.js.map +7 -0
  3. package/dist/cjs/array.extensions.js +174 -0
  4. package/dist/cjs/array.extensions.js.map +1 -1
  5. package/dist/cjs/big.int.extension.js +1 -0
  6. package/dist/cjs/big.int.extension.js.map +1 -1
  7. package/dist/cjs/classes/descriptor.js +1 -1
  8. package/dist/cjs/classes/descriptor.js.map +1 -1
  9. package/dist/cjs/classes/index.d.ts +1 -0
  10. package/dist/cjs/classes/index.js +3 -0
  11. package/dist/cjs/classes/index.js.map +1 -1
  12. package/dist/cjs/classes/iterable.d.ts +44 -0
  13. package/dist/cjs/classes/iterable.js +64 -0
  14. package/dist/cjs/classes/iterable.js.map +1 -1
  15. package/dist/cjs/classes/param.parser.d.ts +10 -10
  16. package/dist/cjs/classes/property.d.ts +86 -0
  17. package/dist/cjs/classes/property.js +284 -0
  18. package/dist/cjs/classes/property.js.map +1 -0
  19. package/dist/cjs/classes/symkeys.d.ts +68 -11
  20. package/dist/cjs/classes/symkeys.js +103 -17
  21. package/dist/cjs/classes/symkeys.js.map +1 -1
  22. package/dist/cjs/classes/type.d.ts +4 -4
  23. package/dist/cjs/function.extensions.js +1 -0
  24. package/dist/cjs/function.extensions.js.map +1 -1
  25. package/dist/cjs/global.this.js +29 -0
  26. package/dist/cjs/global.this.js.map +1 -1
  27. package/dist/cjs/index.d.ts +2 -0
  28. package/dist/cjs/index.js +18 -0
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/json.extensions.js +19 -18
  31. package/dist/cjs/json.extensions.js.map +1 -1
  32. package/dist/cjs/map.extensions.js +1 -0
  33. package/dist/cjs/map.extensions.js.map +1 -1
  34. package/dist/cjs/number.extension.js +1 -0
  35. package/dist/cjs/number.extension.js.map +1 -1
  36. package/dist/cjs/object.extensions.d.ts +0 -29
  37. package/dist/cjs/object.extensions.js +218 -255
  38. package/dist/cjs/object.extensions.js.map +1 -1
  39. package/dist/cjs/set.extensions.js +1 -0
  40. package/dist/cjs/set.extensions.js.map +1 -1
  41. package/dist/cjs/string.extensions.js +474 -469
  42. package/dist/cjs/string.extensions.js.map +1 -1
  43. package/dist/cjs/symbol.extensions.js +386 -31
  44. package/dist/cjs/symbol.extensions.js.map +1 -1
  45. package/dist/cjs/utils/copy.object.d.ts +408 -0
  46. package/dist/cjs/utils/copy.object.js +720 -0
  47. package/dist/cjs/utils/copy.object.js.map +1 -0
  48. package/dist/cjs/utils/index.d.ts +1 -0
  49. package/dist/cjs/utils/index.js +19 -0
  50. package/dist/cjs/utils/index.js.map +1 -0
  51. package/dist/cjs/utils/toolkit.d.ts +1897 -0
  52. package/dist/cjs/utils/toolkit.js +1377 -0
  53. package/dist/cjs/utils/toolkit.js.map +1 -0
  54. package/dist/mjs/array.extensions.js +174 -0
  55. package/dist/mjs/array.extensions.js.map +1 -1
  56. package/dist/mjs/big.int.extension.js +1 -0
  57. package/dist/mjs/big.int.extension.js.map +1 -1
  58. package/dist/mjs/classes/descriptor.js +1 -1
  59. package/dist/mjs/classes/descriptor.js.map +1 -1
  60. package/dist/mjs/classes/index.d.ts +1 -0
  61. package/dist/mjs/classes/index.js +3 -0
  62. package/dist/mjs/classes/index.js.map +1 -1
  63. package/dist/mjs/classes/iterable.d.ts +44 -0
  64. package/dist/mjs/classes/iterable.js +64 -0
  65. package/dist/mjs/classes/iterable.js.map +1 -1
  66. package/dist/mjs/classes/param.parser.d.ts +10 -10
  67. package/dist/mjs/classes/property.d.ts +86 -0
  68. package/dist/mjs/classes/property.js +280 -0
  69. package/dist/mjs/classes/property.js.map +1 -0
  70. package/dist/mjs/classes/symkeys.d.ts +68 -11
  71. package/dist/mjs/classes/symkeys.js +103 -17
  72. package/dist/mjs/classes/symkeys.js.map +1 -1
  73. package/dist/mjs/classes/type.d.ts +4 -4
  74. package/dist/mjs/function.extensions.js +1 -0
  75. package/dist/mjs/function.extensions.js.map +1 -1
  76. package/dist/mjs/global.this.js +6 -0
  77. package/dist/mjs/global.this.js.map +1 -1
  78. package/dist/mjs/index.d.ts +2 -0
  79. package/dist/mjs/index.js +4 -0
  80. package/dist/mjs/index.js.map +1 -1
  81. package/dist/mjs/json.extensions.js +19 -18
  82. package/dist/mjs/json.extensions.js.map +1 -1
  83. package/dist/mjs/map.extensions.js +1 -0
  84. package/dist/mjs/map.extensions.js.map +1 -1
  85. package/dist/mjs/number.extension.js +1 -0
  86. package/dist/mjs/number.extension.js.map +1 -1
  87. package/dist/mjs/object.extensions.d.ts +0 -29
  88. package/dist/mjs/object.extensions.js +215 -251
  89. package/dist/mjs/object.extensions.js.map +1 -1
  90. package/dist/mjs/set.extensions.js +1 -0
  91. package/dist/mjs/set.extensions.js.map +1 -1
  92. package/dist/mjs/string.extensions.js +474 -469
  93. package/dist/mjs/string.extensions.js.map +1 -1
  94. package/dist/mjs/symbol.extensions.js +386 -31
  95. package/dist/mjs/symbol.extensions.js.map +1 -1
  96. package/dist/mjs/utils/copy.object.d.ts +408 -0
  97. package/dist/mjs/utils/copy.object.js +702 -0
  98. package/dist/mjs/utils/copy.object.js.map +1 -0
  99. package/dist/mjs/utils/index.d.ts +1 -0
  100. package/dist/mjs/utils/index.js +3 -0
  101. package/dist/mjs/utils/index.js.map +1 -0
  102. package/dist/mjs/utils/toolkit.d.ts +1897 -0
  103. package/dist/mjs/utils/toolkit.js +1372 -0
  104. package/dist/mjs/utils/toolkit.js.map +1 -0
  105. package/package.json +29 -37
  106. package/repl.bootstrap.js +12 -1
  107. package/src/array.extensions.js +191 -1
  108. package/src/big.int.extension.js +3 -1
  109. package/src/classes/descriptor.js +1 -1
  110. package/src/classes/index.js +4 -0
  111. package/src/classes/iterable.js +74 -0
  112. package/src/classes/property.js +333 -0
  113. package/src/classes/symkeys.js +120 -19
  114. package/src/function.extensions.js +2 -0
  115. package/src/global.this.js +8 -0
  116. package/src/index.js +5 -0
  117. package/src/json.extensions.js +18 -19
  118. package/src/map.extensions.js +3 -1
  119. package/src/number.extension.js +3 -1
  120. package/src/object.extensions.js +240 -277
  121. package/src/set.extensions.js +3 -1
  122. package/src/string.extensions.js +512 -506
  123. package/src/symbol.extensions.js +412 -29
  124. package/src/utils/copy.object.js +780 -0
  125. package/src/utils/index.js +2 -0
  126. package/src/utils/toolkit.js +1471 -0
  127. package/tests/arrayextensions.test.js +2 -0
  128. package/tests/index.test.js +1 -0
  129. package/tests/newClasses/asyncIterable.test.js +2 -0
  130. package/tests/newClasses/deferred.test.js +5 -3
  131. package/tests/newClasses/descriptor.test.js +2 -0
  132. package/tests/newClasses/iterable.test.js +2 -0
  133. package/tests/newClasses/refmap.test.js +2 -1
  134. package/tests/newClasses/refset.test.js +2 -0
  135. package/tests/objectextensions.test.js +2 -0
  136. package/tests/setextensions.test.js +2 -0
  137. package/tests/stringextensions.test.js +1 -0
  138. package/tests/utils/toolkit.test.js +223 -0
  139. package/tsconfig.base.json +1 -1
  140. package/vitest.config.js +7 -0
  141. package/dist/@nejs/basic-extensions.bundle.2.8.0.js +0 -19
  142. package/dist/@nejs/basic-extensions.bundle.2.8.0.js.map +0 -7
  143. package/docs/assets/anchor.js +0 -350
  144. package/docs/assets/bass-addons.css +0 -12
  145. package/docs/assets/bass.css +0 -544
  146. package/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
  147. package/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
  148. package/docs/assets/fonts/LICENSE.txt +0 -93
  149. package/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
  150. package/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
  151. package/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
  152. package/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
  153. package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
  154. package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
  155. package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
  156. package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
  157. package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
  158. package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
  159. package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
  160. package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
  161. package/docs/assets/fonts/source-code-pro.css +0 -23
  162. package/docs/assets/github.css +0 -123
  163. package/docs/assets/site.js +0 -168
  164. package/docs/assets/split.css +0 -15
  165. package/docs/assets/split.js +0 -782
  166. package/docs/assets/style.css +0 -147
  167. package/docs/index.html +0 -35485
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyExtensions = exports.Property = void 0;
4
+ const extension_1 = require("@nejs/extension");
5
+ class Property {
6
+ constructor(key, descriptor) {
7
+ if (key.startsWith(':'))
8
+ key = Symbol.for(key.slice(1));
9
+ if (typeof key !== 'string' && typeof key !== 'symbol') {
10
+ throw new TypeError('Key or symbol or :symbol must be supplied!');
11
+ }
12
+ this.key = key;
13
+ if (!Property.is.descriptor(descriptor)) {
14
+ this.descriptor = {
15
+ value: descriptor,
16
+ writable: true,
17
+ configurable: true,
18
+ enumerable: true,
19
+ };
20
+ }
21
+ else {
22
+ this.descriptor = descriptor;
23
+ }
24
+ }
25
+ apply(toObject, asKey) {
26
+ if (!toObject || !['object', 'function'].some(k => k == typeof toObject))
27
+ return;
28
+ return Object.defineProperty(toObject, asKey ?? this.key, this.descriptor);
29
+ }
30
+ get descriptor() {
31
+ const baseline = { configurable: true, enumerable: false };
32
+ const result = {
33
+ enumerable: this.meta.enumerable,
34
+ configurable: this.meta.configurable,
35
+ };
36
+ if (this.is.accessor) {
37
+ result.get = this.meta.accessor.get;
38
+ result.set = this.meta.accessor.set;
39
+ }
40
+ else {
41
+ result.value = this.meta.data.value;
42
+ result.writable = this.meta.data.writable;
43
+ }
44
+ return Object.defineProperties(result, {
45
+ make: {
46
+ ...baseline,
47
+ get() {
48
+ const self = this;
49
+ return {
50
+ get enumerable() { self.enumerable = true; return self; },
51
+ get hidden() { self.enumerable = false; return self; },
52
+ get writable() { self.writable = true; return self; },
53
+ get readonly() { self.writable = false; return self; },
54
+ get configurable() { self.configurable = true; return self; },
55
+ get immutable() { self.configurable = false; return self; },
56
+ };
57
+ }
58
+ },
59
+ is: {
60
+ ...baseline,
61
+ get() {
62
+ const self = this;
63
+ return {
64
+ get accessor() { return self.is.accssor; },
65
+ get data() { return self.is.data; }
66
+ };
67
+ }
68
+ },
69
+ });
70
+ }
71
+ set descriptor(descriptor) {
72
+ const { is } = this.constructor;
73
+ if (!is.descriptor(descriptor))
74
+ return;
75
+ this.meta.configurable = descriptor.configurable ?? true;
76
+ this.meta.enumerable = descriptor.enumerable ?? true;
77
+ if (Reflect.has(descriptor, 'get') || Reflect.has(descriptor, 'set')) {
78
+ const { get, set } = descriptor;
79
+ if (get !== undefined)
80
+ this.meta.accessor.get = get;
81
+ if (set !== undefined)
82
+ this.meta.accessor.set = set;
83
+ }
84
+ else {
85
+ const { value, writable } = descriptor;
86
+ this.meta.data.value = value;
87
+ this.meta.data.writable = writable ?? true;
88
+ }
89
+ }
90
+ get is() {
91
+ const self = this;
92
+ return {
93
+ get accessor() {
94
+ return !!(self.meta.accessor.get ||
95
+ self.meta.accessor.set);
96
+ },
97
+ get data() {
98
+ return !!!this.accessor;
99
+ },
100
+ };
101
+ }
102
+ toString(colors = false, { key, descriptor } = {}) {
103
+ const bold = s => colors ? `\x1b[1m${s}\x1b[22m` : s;
104
+ const dim = s => colors ? `\x1b[2m${s}\x1b[22m` : s;
105
+ const red = s => colors ? `\x1b[31m${s}\x1b[39m` : s;
106
+ const green = s => colors ? `\x1b[32m${s}\x1b[39m` : s;
107
+ const blue = s => colors ? `\x1b[34m${s}\x1b[39m` : s;
108
+ if (!key)
109
+ ({ key } = this);
110
+ if (!descriptor || !Property.is.descriptor(descriptor))
111
+ ({ descriptor } = this);
112
+ const buffer = [`${bold(key)} { `];
113
+ const keyPresent = (object) => (key) => Reflect.has(object, key);
114
+ const eqeq = (value, compare = (a, b) => a === b) => (element) => compare(element, value);
115
+ if (['get', 'set'].some(keyPresent(descriptor))) {
116
+ if (descriptor.get) {
117
+ buffer.push(blue('getter'));
118
+ if (descriptor.set) {
119
+ buffer.push(bold('|'));
120
+ }
121
+ }
122
+ if (descriptor.set) {
123
+ buffer.push(blue('setter'));
124
+ }
125
+ }
126
+ else {
127
+ buffer.push(green('value'));
128
+ buffer.push(bold('|'));
129
+ buffer.push(descriptor.writable ? green('writable') : red('readonly'));
130
+ }
131
+ buffer.push(' ');
132
+ buffer.push(descriptor.configurable ? green('mutable') : red('immuatable'));
133
+ buffer.push(' ');
134
+ buffer.push(descriptor.enumerable ? green('visible') : red('hidden'));
135
+ buffer.push(' }');
136
+ return buffer.join('');
137
+ }
138
+ [Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {
139
+ return this.toString(true);
140
+ }
141
+ /**
142
+ * Creates an accessor property with customizable getter and setter functions.
143
+ *
144
+ * This method offers flexible ways to define accessor properties, including
145
+ * support for storage-based getters and setters. It can handle various input
146
+ * formats, making it versatile for different use cases.
147
+ *
148
+ * @param {string} name - The name of the accessor property.
149
+ * @param {Object} accessors - Object containing getter and/or setter functions.
150
+ * @param {Function} [accessors.get] - Getter function for the property.
151
+ * @param {Function} [accessors.set] - Setter function for the property.
152
+ * @param {Object} [accessors.prototype] - Prototype object for getter/setter.
153
+ * @param {Object} [options] - Additional options for the accessor property.
154
+ * @param {boolean} [options.configurable=true] - Whether property is configurable.
155
+ * @param {boolean} [options.enumerable=true] - Whether property is enumerable.
156
+ * @param {Object} [options.storage] - Storage object for getter/setter closures.
157
+ * @returns {Property} A new Property instance representing the accessor.
158
+ * @throws {TypeError} If no name, getter, or setter is provided.
159
+ *
160
+ * @example
161
+ * // Basic usage
162
+ * Property.accessor('color', {
163
+ * get() { return this._color; },
164
+ * set(value) { this._color = value; }
165
+ * });
166
+ *
167
+ * @example
168
+ * // Using storage
169
+ * Property.accessor('keyword', {
170
+ * get(storage) { return () => storage.keyword; },
171
+ * set(storage) { return (value) => { storage.keyword = value; } }
172
+ * }, { storage: { keyword: 'initial' } });
173
+ *
174
+ * @example
175
+ * // Using named getter function
176
+ * Property.accessor('color', function get() { return 'red' })
177
+ *
178
+ * @example
179
+ * // Using prototype
180
+ * const ColorAccessors = {
181
+ * red: { get() { return this._red; } }
182
+ * };
183
+ * Property.accessor('red', ColorAccessors.red);
184
+ */
185
+ static accessor(name, { get, set, prototype }, { configurable, enumerable, storage } = {}) {
186
+ if (!get && !set && prototype) {
187
+ const constructor = prototype?.constructor;
188
+ if (constructor?.name === 'get') {
189
+ get = constructor;
190
+ }
191
+ else if (constructor?.name === 'set') {
192
+ set = constructor;
193
+ }
194
+ }
195
+ if (get && storage && get.length == 1) {
196
+ get = get(storage);
197
+ }
198
+ if (set && storage && set.length == 1) {
199
+ set = set(storage);
200
+ }
201
+ if (!name && !get && !set)
202
+ throw new TypeError('Cannot create accessor');
203
+ configurable ??= true;
204
+ enumerable ??= true;
205
+ return new Property(name, { get, set, configurable, enumerable });
206
+ }
207
+ static data(name, value, { writable, configurable, enumerable } = {}) {
208
+ if (!name)
209
+ throw new TypeError('Cannot create data property without name');
210
+ writable ??= true;
211
+ configurable ??= true;
212
+ enumerable ??= true;
213
+ return new Property(name, { value, writable, configurable, enumerable });
214
+ }
215
+ static from(object, name) {
216
+ const descriptor = Object.getOwnPropertyDescriptor(object, name);
217
+ return new Property(name, descriptor);
218
+ }
219
+ static get is() {
220
+ return {
221
+ object(value) {
222
+ return value && ['object', 'function'].some(k => k == typeof value);
223
+ },
224
+ descriptor(object) {
225
+ if (!Property.is.object(object)) {
226
+ return false;
227
+ }
228
+ const present = element => Reflect.has(object, element);
229
+ const props = {
230
+ base: ['configurable', 'enumerable'],
231
+ data: ['writable', 'value'],
232
+ accessor: ['get', 'set'],
233
+ };
234
+ if (Object.getOwnPropertyNames(object).length > 4)
235
+ return false;
236
+ if (props.data.some(present) && props.accessor.some(present))
237
+ return false;
238
+ if (props.base.some(present))
239
+ return true;
240
+ if (props.data.some(present))
241
+ return true;
242
+ if (props.accessor.some(present))
243
+ return true;
244
+ return false;
245
+ }
246
+ };
247
+ }
248
+ static {
249
+ const storage = Object.assign(Object.create(null), {
250
+ key: undefined,
251
+ meta: {
252
+ enumerable: true,
253
+ configurable: true,
254
+ accessor: {
255
+ get: undefined,
256
+ set: undefined
257
+ },
258
+ data: {
259
+ value: undefined,
260
+ writable: true
261
+ },
262
+ },
263
+ });
264
+ basic_accessor(this.prototype, 'key', storage.key, storage);
265
+ basic_accessor(this.prototype, 'meta', storage.meta, storage);
266
+ }
267
+ }
268
+ exports.Property = Property;
269
+ exports.PropertyExtensions = new extension_1.Extension(Property);
270
+ function basic_accessor(prototype, key, initialValue, storage = {}) {
271
+ storage[key] = initialValue;
272
+ Object.defineProperty(prototype, key, {
273
+ get() {
274
+ return storage[key];
275
+ },
276
+ set(value) {
277
+ storage[key] = value;
278
+ },
279
+ enumerable: true,
280
+ configurable: true,
281
+ });
282
+ return Object.getOwnPropertyDescriptor(prototype, key);
283
+ }
284
+ //# sourceMappingURL=property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../src/classes/property.js"],"names":[],"mappings":"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"}
@@ -112,21 +112,78 @@ export class Symkeys {
112
112
  */
113
113
  constructor(domain?: string, separator?: string);
114
114
  /**
115
- * Adds a new entry to the Symkeys with a unique symbol based on the provided
116
- * name and associates it with the given data.
115
+ * Adds a new symbol to the Symkeys instance with the given name and
116
+ * associated data.
117
+ *
118
+ * This method generates a unique symbol based on the provided name,
119
+ * optional domain, separator, and token. It also allows embedding
120
+ * additional data into the symbol's name.
121
+ *
122
+ * @param {string} named - The base name for the new symbol.
123
+ * @param {Object} options - Additional options for the symbol.
124
+ * @param {*} [options.associate={}] - Data to associate with the symbol.
125
+ * @param {Object} [options.embed] - Optional data to embed in the symbol.
126
+ * @param {string} [options.useDomain] - Optional domain to include in the
127
+ * symbol's name.
128
+ * @param {string} [options.useSeparator] - Optional separator to use in
129
+ * the symbol's name.
130
+ * @param {string} [options.useToken] - Optional token to use for the
131
+ * symbol. If not provided, a random token is generated.
132
+ * @returns {Symbol} The newly created symbol.
117
133
  *
118
- * @param named - The base name for the symbol to be created.
119
- * @param [associatedData={}] - The data to associate with the symbol.
120
- * @returns The unique symbol created for the entry.
134
+ * @example
135
+ * // Add a symbol with associated data
136
+ * const mySymbol = symkeys.add('myIdentifier', {
137
+ * associate: { foo: 'bar' },
138
+ * embed: { baz: 'qux' },
139
+ * useDomain: 'exampleDomain',
140
+ * useSeparator: '-',
141
+ * useToken: 'customToken',
142
+ * })
143
+ * console.log(mySymbol)
144
+ * // Symbol(@exampleDomain-myIdentifier {"baz":"qux"} #customToken)
145
+ */
146
+ add(named: string, { associate, embed, useDomain, useSeparator, useToken, }: {
147
+ associate?: any;
148
+ embed?: Object | undefined;
149
+ useDomain?: string | undefined;
150
+ useSeparator?: string | undefined;
151
+ useToken?: string | undefined;
152
+ }): Symbol;
153
+ /**
154
+ * Creates or retrieves a shared symbol key with the given name and
155
+ * optional associated data.
156
+ *
157
+ * This method generates a shared symbol key using the provided name
158
+ * and optional parameters. If the symbol already exists in the
159
+ * Symkeys's internal map, it updates the associated data if provided.
160
+ * Otherwise, it creates a new symbol with the specified parameters.
161
+ *
162
+ * @param {string} named - The name to use for the shared symbol key.
163
+ * @param {Object} options - Optional parameters for the shared symbol key.
164
+ * @param {Object} [options.associate] - Data to associate with the symbol.
165
+ * @param {Object} [options.embed] - Data to embed in the symbol's name.
166
+ * @param {string} [options.useDomain] - Domain to include in the symbol's name.
167
+ * @param {string} [options.useSeparator] - Separator to use in the symbol's name.
168
+ * @returns {Symbol} The shared symbol key.
121
169
  *
122
170
  * @example
123
- * // Add an entry with associated data
124
- * const symbol = Symkeys.add('myEntry', { foo: 'bar' });
125
- * // Retrieve the associated data using the symbol
126
- * const data = Symkeys.dataFor(symbol);
127
- * console.log(data); // Output: { foo: 'bar' }
171
+ * // Create or retrieve a shared symbol key with associated data
172
+ * const sharedSymbol = symkeys.sharedKey('mySharedKey', {
173
+ * associate: { foo: 'bar' },
174
+ * embed: { baz: 'qux' },
175
+ * useDomain: 'exampleDomain',
176
+ * useSeparator: '-',
177
+ * })
178
+ * console.log(sharedSymbol)
179
+ * // Symbol(@exampleDomain-mySharedKey {"baz":"qux"} #shared)
128
180
  */
129
- add(named: any, associatedData?: {} | undefined): symbol;
181
+ sharedKey(named: string, { associate, embed, useDomain, useSeparator }: {
182
+ associate?: Object | undefined;
183
+ embed?: Object | undefined;
184
+ useDomain?: string | undefined;
185
+ useSeparator?: string | undefined;
186
+ }): Symbol;
130
187
  /**
131
188
  * Retrieves the data associated with a given symbol from the Symkeys.
132
189
  *
@@ -20,32 +20,118 @@ const extension_1 = require("@nejs/extension");
20
20
  */
21
21
  class Symkeys {
22
22
  /**
23
- * Adds a new entry to the Symkeys with a unique symbol based on the provided
24
- * name and associates it with the given data.
25
- *
26
- * @param named - The base name for the symbol to be created.
27
- * @param [associatedData={}] - The data to associate with the symbol.
28
- * @returns The unique symbol created for the entry.
23
+ * Adds a new symbol to the Symkeys instance with the given name and
24
+ * associated data.
25
+ *
26
+ * This method generates a unique symbol based on the provided name,
27
+ * optional domain, separator, and token. It also allows embedding
28
+ * additional data into the symbol's name.
29
+ *
30
+ * @param {string} named - The base name for the new symbol.
31
+ * @param {Object} options - Additional options for the symbol.
32
+ * @param {*} [options.associate={}] - Data to associate with the symbol.
33
+ * @param {Object} [options.embed] - Optional data to embed in the symbol.
34
+ * @param {string} [options.useDomain] - Optional domain to include in the
35
+ * symbol's name.
36
+ * @param {string} [options.useSeparator] - Optional separator to use in
37
+ * the symbol's name.
38
+ * @param {string} [options.useToken] - Optional token to use for the
39
+ * symbol. If not provided, a random token is generated.
40
+ * @returns {Symbol} The newly created symbol.
29
41
  *
30
42
  * @example
31
- * // Add an entry with associated data
32
- * const symbol = Symkeys.add('myEntry', { foo: 'bar' });
33
- * // Retrieve the associated data using the symbol
34
- * const data = Symkeys.dataFor(symbol);
35
- * console.log(data); // Output: { foo: 'bar' }
43
+ * // Add a symbol with associated data
44
+ * const mySymbol = symkeys.add('myIdentifier', {
45
+ * associate: { foo: 'bar' },
46
+ * embed: { baz: 'qux' },
47
+ * useDomain: 'exampleDomain',
48
+ * useSeparator: '-',
49
+ * useToken: 'customToken',
50
+ * })
51
+ * console.log(mySymbol)
52
+ * // Symbol(@exampleDomain-myIdentifier {"baz":"qux"} #customToken)
36
53
  */
37
- add(named, associatedData = {}) {
54
+ add(named, { associate = {}, embed = undefined, useDomain = undefined, useSeparator = undefined, useToken = undefined, }) {
38
55
  // Generate a unique token for the symbol
39
- const token = Symkeys.token;
56
+ const token = useToken ?? Symkeys.token;
40
57
  // Calculate a name (optionally with domain and separator)
41
- const symName = this.calculateName(named);
58
+ let symName = this.calculateName(named, useDomain, useSeparator);
59
+ if (embed && typeof embed === 'object') {
60
+ try {
61
+ symName += ` ${JSON.stringify(embed)}`;
62
+ }
63
+ catch (error) {
64
+ console.warn(`Cannot create JSON from ${embed}; skipping`);
65
+ }
66
+ }
42
67
  // Create a symbol using the provided name and the unique token
43
68
  const symbol = Symbol.for(`@${symName} #${token}`);
44
69
  // Store the symbol and associated data in the Symkeys's internal map
45
- this[Symkeys.kDataKey].set(symbol, associatedData);
70
+ this[Symkeys.kDataKey].set(symbol, associate ?? {});
46
71
  // Return the unique symbol for external use
47
72
  return symbol;
48
73
  }
74
+ /**
75
+ * Creates or retrieves a shared symbol key with the given name and
76
+ * optional associated data.
77
+ *
78
+ * This method generates a shared symbol key using the provided name
79
+ * and optional parameters. If the symbol already exists in the
80
+ * Symkeys's internal map, it updates the associated data if provided.
81
+ * Otherwise, it creates a new symbol with the specified parameters.
82
+ *
83
+ * @param {string} named - The name to use for the shared symbol key.
84
+ * @param {Object} options - Optional parameters for the shared symbol key.
85
+ * @param {Object} [options.associate] - Data to associate with the symbol.
86
+ * @param {Object} [options.embed] - Data to embed in the symbol's name.
87
+ * @param {string} [options.useDomain] - Domain to include in the symbol's name.
88
+ * @param {string} [options.useSeparator] - Separator to use in the symbol's name.
89
+ * @returns {Symbol} The shared symbol key.
90
+ *
91
+ * @example
92
+ * // Create or retrieve a shared symbol key with associated data
93
+ * const sharedSymbol = symkeys.sharedKey('mySharedKey', {
94
+ * associate: { foo: 'bar' },
95
+ * embed: { baz: 'qux' },
96
+ * useDomain: 'exampleDomain',
97
+ * useSeparator: '-',
98
+ * })
99
+ * console.log(sharedSymbol)
100
+ * // Symbol(@exampleDomain-mySharedKey {"baz":"qux"} #shared)
101
+ */
102
+ sharedKey(named, { associate, embed, useDomain, useSeparator }) {
103
+ // Calculate the symbol name with optional domain and separator
104
+ const symName = this.calculateName(named, useDomain, useSeparator);
105
+ // Initialize JSON string for embedded data
106
+ let json = '';
107
+ if (embed && typeof embed === 'object') {
108
+ try {
109
+ json = ` ${JSON.stringify(embed)}`;
110
+ }
111
+ catch (ignored) {
112
+ // Ignore JSON stringify errors
113
+ }
114
+ }
115
+ // Create the shared symbol key
116
+ const symbol = Symbol.for(`@${symName}${json} #shared`);
117
+ // Check if the symbol already exists in the internal map
118
+ if (this[Symkeys.kDataKey].has(symbol)) {
119
+ // Update associated data if provided and symbol is a Symkey
120
+ if (associate && symbol.isSymkey) {
121
+ symbol.data = associate;
122
+ }
123
+ // Return the existing symbol
124
+ return symbol;
125
+ }
126
+ // Add a new symbol with the specified parameters
127
+ return this.add(named, {
128
+ associate: associate ?? {},
129
+ embed,
130
+ useDomain,
131
+ useSeparator,
132
+ useToken: 'shared'
133
+ });
134
+ }
49
135
  /**
50
136
  * Retrieves the data associated with a given symbol from the Symkeys.
51
137
  *
@@ -165,7 +251,7 @@ class Symkeys {
165
251
  token(forSymbol) {
166
252
  // Use a regular expression to match the token pattern in the symbol
167
253
  // description exists on symbol but our JS output target is too old
168
- return /^.* \#(.*?)$/.exec(forSymbol).description?.[1];
254
+ return /^.* \#(.*?)$/.exec(forSymbol)?.description?.[1];
169
255
  }
170
256
  /**
171
257
  * Retrieves the separator used in the Symkeys instance.
@@ -350,7 +436,7 @@ class Symkeys {
350
436
  if (!(typeof value === 'symbol' || value instanceof Symbol)) {
351
437
  return false;
352
438
  }
353
- return !!/^@.*? #\w+$/.exec(value.description);
439
+ return !!/^@.*? #\w+$/.exec(value?.description);
354
440
  }
355
441
  /**
356
442
  * Generates a random token string.
@@ -1 +1 @@
1
- {"version":3,"file":"symkeys.js","sourceRoot":"","sources":["../../../src/classes/symkeys.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symkeys.js","sourceRoot":"","sources":["../../../src/classes/symkeys.js"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ export class Type {
4
4
  static named(value: any): any;
5
5
  static class(value: any, mapped: any): any;
6
6
  static isPrimitive(value: any): boolean;
7
- static get primitives(): () => Generator<"number" | "bigint" | "string" | "symbol" | "boolean" | "undefined", void, unknown>;
8
- static get typeOfTypes(): () => Generator<"number" | "object" | "bigint" | "function" | "string" | "symbol" | "boolean" | "undefined", void, unknown>;
9
- static mapped: Map<string | undefined, BigIntConstructor | undefined>;
10
- mapped: Map<string | undefined, BigIntConstructor | undefined>;
7
+ static get primitives(): () => Generator<"number" | "bigint" | "undefined" | "boolean" | "string" | "symbol", void, unknown>;
8
+ static get typeOfTypes(): () => Generator<"function" | "object" | "number" | "bigint" | "undefined" | "boolean" | "string" | "symbol", void, unknown>;
9
+ static mapped: Map<string | undefined, ObjectConstructor | undefined>;
10
+ mapped: Map<string | undefined, ObjectConstructor | undefined>;
11
11
  of(value: any): "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
12
12
  class(value: any): any;
13
13
  isPrimitive(value: any): boolean;
@@ -716,6 +716,7 @@ exports.FunctionPrototypeExtensions = new extension_1.Patch(Function.prototype,
716
716
  // Object<->Function<->Global occurs. See original source in global.this.js
717
717
  // {@see globalThis.isThenElse}
718
718
  function isThenElse(bv, tv, ev) {
719
+ function isFunction(value) { typeof value === 'function'; }
719
720
  if (arguments.length > 1) {
720
721
  var _then = isFunction(tv) ? tv(bv) : tv;
721
722
  if (arguments.length > 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"function.extensions.js","sourceRoot":"","sources":["../../src/function.extensions.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function.extensions.js","sourceRoot":"","sources":["../../src/function.extensions.js"],"names":[],"mappings":"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"}