typeomatica 0.3.38 → 0.3.39

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/.eslintrc.js CHANGED
@@ -17,7 +17,7 @@ module.exports = {
17
17
  'linebreak-style': ['error', 'unix'],
18
18
  quotes: ['error', 'single'],
19
19
  semi: ['error', 'always'],
20
- // 'no-unused-vars': 'warn',
20
+ 'no-unused-vars': 'warn',
21
21
  'no-shadow': [
22
22
  'error',
23
23
  {
package/jest.config.js CHANGED
@@ -7,5 +7,6 @@ module.exports = {
7
7
  '\\./test/*.ts$': ['ts-jest', {
8
8
  tsconfig : './tsconfig.jest.json'
9
9
  }]
10
- }
10
+ },
11
+ // workerThreads: true
11
12
  };
package/lib/errors.js CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.ErrorsNames = void 0;
4
4
  exports.ErrorsNames = {
5
- TYPE_MISMATCH: 'Type Mismatch',
6
- ACCESS_DENIED: 'Value Access Denied',
7
- MISSING_PROP: 'Attempt to Access to Undefined Prop',
8
- RIP_FUNCTIONS: 'Functions are Restricted',
9
- FORBIDDEN_RE: 'Re-Assirnment is Forbidden'
5
+ TYPE_MISMATCH: 'Type Mismatch',
6
+ ACCESS_DENIED: 'Value Access Denied',
7
+ MISSING_PROP: 'Attempt to Access to Undefined Prop',
8
+ RIP_FUNCTIONS: 'Functions are Restricted',
9
+ FORBIDDEN_RE: 'Re-Assirnment is Forbidden'
10
10
  };
11
- //# sourceMappingURL=errors.js.map
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUVBLFFBQUEsV0FBVyxHQUFHO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsWUFBWSxFQUFFLHFDQUFxQztJQUNuRCxhQUFhLEVBQUUsMEJBQTBCO0lBQ3pDLFlBQVksRUFBRSw0QkFBNEI7Q0FDMUMsQ0FBQyJ9
package/lib/fields.d.ts CHANGED
@@ -3,10 +3,10 @@ interface FieldDefinition {
3
3
  [SymbolInitialValue]: unknown;
4
4
  }
5
5
  export declare class FieldConstructor implements FieldDefinition {
6
- [SymbolInitialValue]: unknown;
7
- get get(): () => unknown;
8
- get set(): () => never;
9
- constructor(value: unknown);
10
- static get SymbolInitialValue(): symbol;
6
+ [SymbolInitialValue]: unknown;
7
+ get get(): () => unknown;
8
+ get set(): () => never;
9
+ constructor(value: unknown);
10
+ static get SymbolInitialValue(): symbol;
11
11
  }
12
12
  export {};
package/lib/fields.js CHANGED
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.FieldConstructor = void 0;
4
- const errors_1 = require("./errors");
4
+ const errors_1 = require('./errors');
5
5
  const SymbolInitialValue = Symbol('Initial Value');
6
6
  class FieldConstructor {
7
- get get() {
8
- const self = this;
9
- return function () {
10
- return self[SymbolInitialValue];
11
- };
12
- }
13
- get set() {
14
- return function () {
15
- throw new TypeError(errors_1.ErrorsNames.FORBIDDEN_RE);
16
- };
17
- }
18
- constructor(value) {
19
- this[SymbolInitialValue] = value;
20
- }
21
- static get SymbolInitialValue() {
22
- return SymbolInitialValue;
23
- }
7
+ get get() {
8
+ const self = this;
9
+ return function () {
10
+ return self[SymbolInitialValue];
11
+ };
12
+ }
13
+ get set() {
14
+ return function () {
15
+ throw new TypeError(errors_1.ErrorsNames.FORBIDDEN_RE);
16
+ };
17
+ }
18
+ constructor(value) {
19
+ this[SymbolInitialValue] = value;
20
+ }
21
+ static get SymbolInitialValue() {
22
+ return SymbolInitialValue;
23
+ }
24
24
  }
25
25
  exports.FieldConstructor = FieldConstructor;
26
26
  Object.freeze(FieldConstructor.prototype);
27
27
  Object.seal(FieldConstructor.prototype);
28
- //# sourceMappingURL=fields.js.map
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLHFDQUF1QztBQUV2QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQWVuRCxNQUFhLGdCQUFnQjtJQUU1QixJQUFXLEdBQUc7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsT0FBTztZQUNOLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQVcsR0FBRztRQUNiLE9BQU87WUFDTixNQUFNLElBQUksU0FBUyxDQUFDLG9CQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUNELFlBQWEsS0FBYztRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUNELE1BQU0sS0FBSyxrQkFBa0I7UUFDNUIsT0FBTyxrQkFBa0IsQ0FBQztJQUMzQixDQUFDO0NBQ0Q7QUFuQkQsNENBbUJDO0FBb0NELE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyJ9
package/lib/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  export declare const BaseConstructorPrototype: {
2
- (): void;
3
2
  new (): unknown;
3
+ (): void;
4
4
  };
5
5
  export declare class BaseClass extends BaseConstructorPrototype {
6
6
  }
7
7
  export { FieldConstructor } from './fields';
8
+ export declare const SymbolInitialValue: symbol;
8
9
  type StrictRuntime = {
9
10
  <T extends object>(...args: unknown[]): T;
10
11
  };
package/lib/index.js CHANGED
@@ -1,143 +1,149 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Strict = exports.FieldConstructor = exports.BaseClass = exports.BaseConstructorPrototype = void 0;
4
- const errors_1 = require("./errors");
5
- const types_1 = require("./types");
6
- const fields_1 = require("./fields");
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.Strict = exports.SymbolInitialValue = exports.FieldConstructor = exports.BaseClass = exports.BaseConstructorPrototype = void 0;
4
+ const errors_1 = require('./errors');
5
+ const types_1 = require('./types');
6
+ const fields_1 = require('./fields');
7
7
  const resolver = Object.entries({
8
- primitives: types_1.primitives,
9
- special: types_1.special,
10
- nullish: types_1.nullish,
11
- objects: types_1.objects,
12
- functions: types_1.functions
8
+ primitives: types_1.primitives,
9
+ special: types_1.special,
10
+ nullish: types_1.nullish,
11
+ objects: types_1.objects,
12
+ functions: types_1.functions
13
13
  }).reduce((obj, [key, _handler]) => {
14
- obj[key] = function (initialValue, receiver) {
15
- const handler = _handler(initialValue);
16
- return {
17
- get() {
18
- const invocationThis = this;
19
- if (invocationThis !== receiver) {
20
- throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
21
- }
22
- const result = handler.get();
23
- return result;
24
- },
25
- set(replacementValue) {
26
- const invocationThis = this;
27
- if (invocationThis !== receiver) {
28
- throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
29
- }
30
- const result = handler.set(replacementValue);
31
- return result;
32
- }
33
- };
34
- };
35
- return obj;
14
+ obj[key] = function (initialValue, receiver) {
15
+ const handler = _handler(initialValue);
16
+ return {
17
+ get() {
18
+ const invocationThis = this;
19
+ if (invocationThis !== receiver) {
20
+ throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
21
+ }
22
+ const result = handler.get();
23
+ return result;
24
+ },
25
+ set(replacementValue) {
26
+ const invocationThis = this;
27
+ if (invocationThis !== receiver) {
28
+ throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
29
+ }
30
+ const result = handler.set(replacementValue);
31
+ return result;
32
+ }
33
+ };
34
+ };
35
+ return obj;
36
36
  }, {});
37
37
  const createProperty = (propName, initialValue, receiver) => {
38
- const value = initialValue;
39
- const valueIsPrimitive = (0, types_1.isPrimitive)(initialValue);
40
- const isObject = typeof initialValue === 'object';
41
- const isFunction = initialValue instanceof Function;
42
- const isNull = initialValue === null;
43
- const type = valueIsPrimitive ? 'primitives' : (isObject ? (isNull ? 'nullish' : 'objects') : (isFunction ? 'functions' : 'special'));
44
- const descriptor = (isObject && (value instanceof fields_1.FieldConstructor)) ?
45
- value
46
- : Object.assign({ enumerable: true }, resolver[type](value, receiver));
47
- const result = Reflect.defineProperty(receiver, propName, descriptor);
48
- return result;
38
+ const value = initialValue;
39
+ const valueIsPrimitive = (0, types_1.isPrimitive)(initialValue);
40
+ const isObject = typeof initialValue === 'object';
41
+ const isFunction = initialValue instanceof Function;
42
+ const isNull = initialValue === null;
43
+ const type = valueIsPrimitive ? 'primitives' : (isObject ? (isNull ? 'nullish' : 'objects') : (isFunction ? 'functions' : 'special'));
44
+ const descriptor = (isObject && (value instanceof fields_1.FieldConstructor)) ?
45
+ value
46
+ : Object.assign({ enumerable: true }, resolver[type](value, receiver));
47
+ const result = Reflect.defineProperty(receiver, propName, descriptor);
48
+ return result;
49
49
  };
50
- const props2skip = new Set([Symbol.toStringTag, Symbol.iterator]);
50
+ const props2skip = new Set([Symbol.toStringTag, Symbol.iterator, 'href']);
51
51
  const util = require('util');
52
52
  const hasNodeInspect = (util && util.inspect && util.inspect.custom);
53
53
  hasNodeInspect && (props2skip.add(util.inspect.custom));
54
54
  const handlers = {
55
- get(target, prop, receiver) {
56
- const result = Reflect.get(target, prop, receiver);
57
- if (result !== undefined) {
58
- return result;
59
- }
60
- if (prop === 'toJSON') {
61
- return function () {
62
- const entries = Object.entries(this);
63
- return JSON.stringify(entries.reduce((obj, [key, value]) => {
64
- obj[key] = value.valueOf();
65
- return obj;
66
- }, {}));
67
- };
68
- }
69
- if (props2skip.has(prop)) {
70
- return undefined;
71
- }
72
- throw new Error(`${errors_1.ErrorsNames.MISSING_PROP}: [ ${String(prop).valueOf()} ] of ${receiver.constructor.name}`);
73
- },
74
- set(_, prop, value, receiver) {
75
- const result = createProperty(prop, value, receiver);
76
- return result;
77
- },
55
+ get(target, prop, receiver) {
56
+ const result = Reflect.get(target, prop, receiver);
57
+ if (result !== undefined) {
58
+ return result;
59
+ }
60
+ if (prop === 'toJSON') {
61
+ return function () {
62
+ const entries = Object.entries(this);
63
+ return JSON.stringify(entries.reduce((obj, [key, value]) => {
64
+ obj[key] = value.valueOf();
65
+ return obj;
66
+ }, {}));
67
+ };
68
+ }
69
+ if (props2skip.has(prop)) {
70
+ return undefined;
71
+ }
72
+ throw new Error(`${errors_1.ErrorsNames.MISSING_PROP}: [ ${String(prop).valueOf()} ] of ${receiver.constructor.name}`);
73
+ },
74
+ set(_, prop, value, receiver) {
75
+ const result = createProperty(prop, value, receiver);
76
+ return result;
77
+ },
78
78
  };
79
79
  const BaseTarget = Object.create(null);
80
80
  exports.BaseConstructorPrototype = function (InstanceTarget = BaseTarget) {
81
- if (!new.target) {
82
- const self = exports.BaseConstructorPrototype.bind(this, InstanceTarget);
83
- self.prototype = {
84
- constructor: exports.BaseConstructorPrototype
85
- };
86
- return self;
87
- }
88
- const InstancePrototype = new Proxy(InstanceTarget, handlers);
89
- let protoPointer = this;
90
- let protoConstrcutor;
91
- do {
92
- protoPointer = Reflect.getPrototypeOf(protoPointer);
93
- protoConstrcutor = Reflect.getOwnPropertyDescriptor(protoPointer, 'constructor').value;
94
- } while (protoConstrcutor !== exports.BaseConstructorPrototype);
95
- Reflect.setPrototypeOf(protoPointer, InstancePrototype);
96
- return this;
81
+ if (!new.target) {
82
+ const self = exports.BaseConstructorPrototype.bind(this, InstanceTarget);
83
+ self.prototype = {
84
+ constructor: exports.BaseConstructorPrototype
85
+ };
86
+ return self;
87
+ }
88
+ const InstancePrototype = new Proxy(InstanceTarget, handlers);
89
+ let protoPointer = this;
90
+ let protoConstrcutor;
91
+ do {
92
+ protoPointer = Reflect.getPrototypeOf(protoPointer);
93
+ protoConstrcutor = Reflect.getOwnPropertyDescriptor(protoPointer, 'constructor').value;
94
+ } while (protoConstrcutor !== exports.BaseConstructorPrototype);
95
+ Reflect.setPrototypeOf(protoPointer, InstancePrototype);
96
+ return this;
97
97
  };
98
98
  Object.defineProperty(module, 'exports', {
99
- get() {
100
- return exports.BaseConstructorPrototype;
101
- },
102
- enumerable: true
99
+ get() {
100
+ return exports.BaseConstructorPrototype;
101
+ },
102
+ enumerable: true
103
103
  });
104
104
  class BaseClass extends exports.BaseConstructorPrototype {
105
105
  }
106
106
  exports.BaseClass = BaseClass;
107
- var fields_2 = require("./fields");
108
- Object.defineProperty(exports, "FieldConstructor", { enumerable: true, get: function () { return fields_2.FieldConstructor; } });
107
+ var fields_2 = require('./fields');
108
+ Object.defineProperty(exports, 'FieldConstructor', { enumerable: true, get: function () { return fields_2.FieldConstructor; } });
109
+ exports.SymbolInitialValue = fields_1.FieldConstructor.SymbolInitialValue;
109
110
  exports.Strict = {
110
- Strict: exports.BaseConstructorPrototype,
111
+ Strict: exports.BaseConstructorPrototype,
111
112
  }.Strict;
112
113
  Object.defineProperty(module.exports, 'BaseClass', {
113
- get() {
114
- return BaseClass;
115
- },
116
- enumerable: true
114
+ get() {
115
+ return BaseClass;
116
+ },
117
+ enumerable: true
117
118
  });
118
119
  Object.defineProperty(module.exports, 'FieldConstructor', {
119
- get() {
120
- return fields_1.FieldConstructor;
121
- },
122
- enumerable: true
120
+ get() {
121
+ return fields_1.FieldConstructor;
122
+ },
123
+ enumerable: true
124
+ });
125
+ Object.defineProperty(module.exports, 'SymbolInitialValue', {
126
+ get() {
127
+ return exports.SymbolInitialValue;
128
+ },
129
+ enumerable: true
123
130
  });
124
131
  Object.defineProperty(module.exports, 'Strict', {
125
- get() {
126
- return function (prototypeTarget) {
127
- const decorator = function (Target) {
128
- const Targeted = exports.BaseConstructorPrototype.call(Target, prototypeTarget);
129
- const MyProxyClass = new Proxy(Targeted, {
130
- construct(target, argumentsList, newTarget) {
131
- const result = Reflect.construct(target, argumentsList, newTarget);
132
- debugger;
133
- return result;
134
- },
135
- });
136
- return MyProxyClass;
137
- };
138
- return decorator;
139
- };
140
- },
141
- enumerable: true
132
+ get() {
133
+ return function (prototypeTarget) {
134
+ const decorator = function (Target) {
135
+ const Targeted = exports.BaseConstructorPrototype.call(Target, prototypeTarget);
136
+ const MyProxyClass = new Proxy(Targeted, {
137
+ construct(target, argumentsList, newTarget) {
138
+ const result = Reflect.construct(target, argumentsList, newTarget);
139
+ return result;
140
+ },
141
+ });
142
+ return MyProxyClass;
143
+ };
144
+ return decorator;
145
+ };
146
+ },
147
+ enumerable: true
142
148
  });
143
- //# sourceMappingURL=index.js.map
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFFYixxQ0FBdUM7QUFFdkMsbUNBT2lCO0FBRWpCLHFDQUE0QztBQUU1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQy9CLFVBQVUsRUFBVixrQkFBVTtJQUNWLE9BQU8sRUFBUCxlQUFPO0lBQ1AsT0FBTyxFQUFQLGVBQU87SUFDUCxPQUFPLEVBQVAsZUFBTztJQUNQLFNBQVMsRUFBVCxpQkFBUztDQUNULENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtJQUUxQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxZQUFvQixFQUFFLFFBQWdCO1FBQzFELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPO1lBQ04sR0FBRztnQkFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqQyxNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixPQUFPLE1BQU0sQ0FBQztZQUNmLENBQUM7WUFDRCxHQUFHLENBQUMsZ0JBQXlCO2dCQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqQyxNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FB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
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.functions = void 0;
4
- const errors_1 = require("../errors");
4
+ const errors_1 = require('../errors');
5
5
  const functions = () => {
6
- throw new TypeError(errors_1.ErrorsNames.RIP_FUNCTIONS);
6
+ throw new TypeError(errors_1.ErrorsNames.RIP_FUNCTIONS);
7
7
  };
8
8
  exports.functions = functions;
9
- //# sourceMappingURL=functions.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLHNDQUF3QztBQUVqQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDN0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxvQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUZXLFFBQUEsU0FBUyxhQUVwQiJ9
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.isPrimitive = exports.special = exports.primitives = exports.objects = exports.nullish = exports.functions = void 0;
4
- var functions_1 = require("./functions");
5
- Object.defineProperty(exports, "functions", { enumerable: true, get: function () { return functions_1.functions; } });
6
- var nullish_1 = require("./nullish");
7
- Object.defineProperty(exports, "nullish", { enumerable: true, get: function () { return nullish_1.nullish; } });
8
- var objects_1 = require("./objects");
9
- Object.defineProperty(exports, "objects", { enumerable: true, get: function () { return objects_1.objects; } });
10
- var primitives_1 = require("./primitives");
11
- Object.defineProperty(exports, "primitives", { enumerable: true, get: function () { return primitives_1.primitives; } });
12
- var special_1 = require("./special");
13
- Object.defineProperty(exports, "special", { enumerable: true, get: function () { return special_1.special; } });
4
+ var functions_1 = require('./functions');
5
+ Object.defineProperty(exports, 'functions', { enumerable: true, get: function () { return functions_1.functions; } });
6
+ var nullish_1 = require('./nullish');
7
+ Object.defineProperty(exports, 'nullish', { enumerable: true, get: function () { return nullish_1.nullish; } });
8
+ var objects_1 = require('./objects');
9
+ Object.defineProperty(exports, 'objects', { enumerable: true, get: function () { return objects_1.objects; } });
10
+ var primitives_1 = require('./primitives');
11
+ Object.defineProperty(exports, 'primitives', { enumerable: true, get: function () { return primitives_1.primitives; } });
12
+ var special_1 = require('./special');
13
+ Object.defineProperty(exports, 'special', { enumerable: true, get: function () { return special_1.special; } });
14
14
  const PRIMITIVE_TYPES = [
15
- 'string',
16
- 'number',
17
- 'boolean',
15
+ 'string',
16
+ 'number',
17
+ 'boolean',
18
18
  ];
19
19
  const isPrimitive = (value) => {
20
- return PRIMITIVE_TYPES.includes(typeof value);
20
+ return PRIMITIVE_TYPES.includes(typeof value);
21
21
  };
22
22
  exports.isPrimitive = isPrimitive;
23
- //# sourceMappingURL=index.js.map
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFFYix5Q0FBd0M7QUFBL0Isc0dBQUEsU0FBUyxPQUFBO0FBQ2xCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiwyQ0FBMEM7QUFBakMsd0dBQUEsVUFBVSxPQUFBO0FBQ25CLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFFaEIsTUFBTSxlQUFlLEdBQUc7SUFDdkIsUUFBUTtJQUNSLFFBQVE7SUFDUixTQUFTO0NBQ1QsQ0FBQztBQUVLLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDN0MsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRlcsUUFBQSxXQUFXLGVBRXRCIn0=
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.nullish = void 0;
4
- const errors_1 = require("../errors");
4
+ const errors_1 = require('../errors');
5
5
  const nullish = (value) => {
6
- return {
7
- get() {
8
- return value;
9
- },
10
- set() {
11
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
12
- throw error;
13
- }
14
- };
6
+ return {
7
+ get() {
8
+ return value;
9
+ },
10
+ set() {
11
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
12
+ throw error;
13
+ }
14
+ };
15
15
  };
16
16
  exports.nullish = nullish;
17
- //# sourceMappingURL=nullish.js.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9udWxsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFBO0FBQ0YsQ0FBQyxDQUFDO0FBVlcsUUFBQSxPQUFPLFdBVWxCIn0=
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.objects = void 0;
4
- const errors_1 = require("../errors");
4
+ const errors_1 = require('../errors');
5
5
  const objects = (value) => {
6
- return {
7
- get() {
8
- return value;
9
- },
10
- set(replacementValue) {
11
- if (replacementValue instanceof Object && replacementValue.constructor === value.constructor) {
12
- value = replacementValue;
13
- return value;
14
- }
15
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
- throw error;
17
- }
18
- };
6
+ return {
7
+ get() {
8
+ return value;
9
+ },
10
+ set(replacementValue) {
11
+ if (replacementValue instanceof Object && replacementValue.constructor === value.constructor) {
12
+ value = replacementValue;
13
+ return value;
14
+ }
15
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
+ throw error;
17
+ }
18
+ };
19
19
  };
20
20
  exports.objects = objects;
21
- //# sourceMappingURL=objects.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksTUFBTSxJQUFJLGdCQUFnQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzlGLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFBO0FBQ0YsQ0FBQyxDQUFDO0FBZFcsUUFBQSxPQUFPLFdBY2xCIn0=
@@ -1,50 +1,50 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.primitives = void 0;
4
- const errors_1 = require("../errors");
4
+ const errors_1 = require('../errors');
5
5
  const primitives = (initialValue) => {
6
- let value = Object(initialValue);
7
- const initialType = typeof initialValue;
8
- return {
9
- get() {
10
- const proxyAsValue = new Proxy(value, {
11
- get(_, prop) {
12
- if (prop === Symbol.toPrimitive) {
13
- return function (hint) {
14
- if (hint !== initialType) {
15
- throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
16
- }
17
- return value.valueOf();
18
- };
19
- }
20
- if (prop === 'valueOf') {
21
- return function () {
22
- return value.valueOf();
23
- };
24
- }
25
- if (value[prop] instanceof Function) {
26
- return value[prop].bind(value);
27
- }
28
- const answer = value[prop];
29
- return answer;
30
- }
31
- });
32
- return proxyAsValue;
33
- },
34
- set(replacementValue) {
35
- if (replacementValue instanceof value.constructor) {
36
- value = replacementValue;
37
- return value;
38
- }
39
- const prevalue = Object(replacementValue);
40
- if (prevalue instanceof value.constructor) {
41
- value = prevalue;
42
- return value;
43
- }
44
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
45
- throw error;
46
- }
47
- };
6
+ let value = Object(initialValue);
7
+ const initialType = typeof initialValue;
8
+ return {
9
+ get() {
10
+ const proxyAsValue = new Proxy(value, {
11
+ get(_, prop) {
12
+ if (prop === Symbol.toPrimitive) {
13
+ return function (hint) {
14
+ if (hint !== initialType) {
15
+ throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
16
+ }
17
+ return value.valueOf();
18
+ };
19
+ }
20
+ if (prop === 'valueOf') {
21
+ return function () {
22
+ return value.valueOf();
23
+ };
24
+ }
25
+ if (value[prop] instanceof Function) {
26
+ return value[prop].bind(value);
27
+ }
28
+ const answer = value[prop];
29
+ return answer;
30
+ }
31
+ });
32
+ return proxyAsValue;
33
+ },
34
+ set(replacementValue) {
35
+ if (replacementValue instanceof value.constructor) {
36
+ value = replacementValue;
37
+ return value;
38
+ }
39
+ const prevalue = Object(replacementValue);
40
+ if (prevalue instanceof value.constructor) {
41
+ value = prevalue;
42
+ return value;
43
+ }
44
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
45
+ throw error;
46
+ }
47
+ };
48
48
  };
49
49
  exports.primitives = primitives;
50
- //# sourceMappingURL=primitives.js.map
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9wcmltaXRpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sVUFBVSxHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksQ0FBQztJQUV4QyxPQUFPO1FBQ04sR0FBRztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFFckMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJO29CQUNWLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxVQUFVLElBQVk7NEJBQzVCLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dDQUMxQixNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQ3JELENBQUM7NEJBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3hCLENBQUMsQ0FBQTtvQkFDRixDQUFDO29CQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUN4QixPQUFPOzRCQUNOLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUE7b0JBQ0YsQ0FBQztvQkFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDckMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxNQUFNLENBQUM7Z0JBQ2YsQ0FBQzthQUNELENBQUMsQ0FBQztZQUNILE9BQU8sWUFBWSxDQUFDO1FBQ3JCLENBQUM7UUFhRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTFDLElBQUksUUFBUSxZQUFZLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsVUFBVSxjQWdFckIifQ==
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  exports.special = void 0;
4
- const errors_1 = require("../errors");
4
+ const errors_1 = require('../errors');
5
5
  const special = (value) => {
6
- return {
7
- get() {
8
- return value;
9
- },
10
- set(replacementValue) {
11
- if (typeof replacementValue === typeof value) {
12
- value = replacementValue;
13
- return value;
14
- }
15
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
- throw error;
17
- }
18
- };
6
+ return {
7
+ get() {
8
+ return value;
9
+ },
10
+ set(replacementValue) {
11
+ if (typeof replacementValue === typeof value) {
12
+ value = replacementValue;
13
+ return value;
14
+ }
15
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
+ throw error;
17
+ }
18
+ };
19
19
  };
20
20
  exports.special = special;
21
- //# sourceMappingURL=special.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zcGVjaWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsZ0JBQXdCO1lBQzNCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUM5QyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLENBQUM7UUFDYixDQUFDO0tBQ0QsQ0FBQTtBQUNGLENBQUMsQ0FBQztBQWRXLFFBQUEsT0FBTyxXQWNsQiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typeomatica",
3
- "version": "0.3.38",
3
+ "version": "0.3.39",
4
4
  "description": "type logic against javascript metaprogramming",
5
5
  "engines": {
6
6
  "node": ">=16"
@@ -8,13 +8,15 @@
8
8
  "main": "lib/index.js",
9
9
  "scripts": {
10
10
  "build": "rm -rf ./lib && npx tsc --pretty",
11
- "buildlint": "rm -rf ./lib && npx tsc --pretty && npm run lint",
12
- "lint": "npx eslint --fix --ignore-pattern ./lib",
11
+ "lint:lib": "npx eslint --fix ./lib",
12
+ "lint:src": "npx eslint --fix ./src",
13
13
  "test": "npx jest",
14
14
  "test:cov": "npx jest --collectCoverage",
15
15
  "test:addition": "npm run build && node --test --experimental-test-coverage ./test/addition.js",
16
- "debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand",
17
- "debug:old": "npx --node-options=--inspect-brk jest",
16
+ "debug:on-issues": "echo 'if debugger; command is not working try other Node.JS version'",
17
+ "debug": "node --inspect-brk --nolazy node_modules/.bin/jest --runInBand --detectOpenHandles",
18
+ "debug:jest": "node --nolazy --inspect-brk ./node_modules/jest/bin/jest.js --runInBand --colors --verbose",
19
+ "debug:usual": "npx --node-options=--inspect-brk jest --runInBand --colors --verbose",
18
20
  "prepare": "husky install"
19
21
  },
20
22
  "keywords": [
@@ -32,19 +34,18 @@
32
34
  },
33
35
  "devDependencies": {
34
36
  "@types/jest": "^29.5.14",
35
- "@types/node": "^18.19.67",
37
+ "@types/node": "^18.19.112",
36
38
  "@typescript-eslint/eslint-plugin": "^6.21.0",
37
39
  "@typescript-eslint/parser": "^6.21.0",
38
40
  "eslint": "^8.57.1",
41
+ "globals": "^16.2.0",
39
42
  "husky": "^8.0.3",
40
43
  "jest": "^29.7.0",
41
44
  "json5": "^2.2.3",
42
45
  "lint-staged": "^13.3.0",
43
46
  "set-value": "^4.1.0",
47
+ "ts-jest": "^29.4.0",
44
48
  "ts-node": "^10.9.2",
45
- "typescript": "^5.7.2"
46
- },
47
- "dependencies": {
48
- "ts-jest": "^29.2.5"
49
+ "typescript": "^5.8.3"
49
50
  }
50
51
  }
package/src/index.ts CHANGED
@@ -86,7 +86,9 @@ const createProperty = (propName: string, initialValue: unknown, receiver: objec
86
86
 
87
87
  };
88
88
 
89
- const props2skip = new Set([Symbol.toStringTag, Symbol.iterator]);
89
+ // line below 'href' is for util.inspect works, useful for v24
90
+ const props2skip = new Set([Symbol.toStringTag, Symbol.iterator, 'href']);
91
+ // const props2skip = new Set([Symbol.toStringTag, Symbol.iterator]);
90
92
  const util = require('util');
91
93
  const hasNodeInspect = (util && util.inspect && util.inspect.custom);
92
94
  hasNodeInspect && (props2skip.add(util.inspect.custom));
@@ -98,7 +100,6 @@ const handlers = {
98
100
  return result;
99
101
  }
100
102
  if (prop === 'toJSON') {
101
- // eslint-disable-next-line no-unused-vars
102
103
  return function (this: typeof target) {
103
104
  const entries = Object.entries(this);
104
105
  return JSON.stringify(entries.reduce((obj, [key, value]) => {
@@ -108,7 +109,6 @@ const handlers = {
108
109
  }, {}));
109
110
  };
110
111
  }
111
- // @ts-ignore
112
112
  if (props2skip.has(prop)) {
113
113
  return undefined;
114
114
  }
@@ -216,7 +216,6 @@ export const BaseConstructorPrototype = function <
216
216
 
217
217
  // as ObjectConstructor & {
218
218
  // (): void
219
- // // eslint-disable-next-line no-unused-vars
220
219
  // new<T>(param?: T extends object ? T : {}): {
221
220
  // [key in keyof T]: T[key]
222
221
  // }
@@ -232,13 +231,13 @@ Object.defineProperty(module, 'exports', {
232
231
 
233
232
 
234
233
  // export class BaseClass extends BaseConstructorProtoProxy { }
235
- // eslint-disable-next-line new-cap
236
234
  // @ts-ignore
237
235
  export class BaseClass extends BaseConstructorPrototype { }
236
+
238
237
  export { FieldConstructor } from './fields';
238
+ export const { SymbolInitialValue } = FieldConstructor;
239
239
 
240
240
  type StrictRuntime = {
241
- // eslint-disable-next-line no-unused-vars
242
241
  <T extends object>(...args: unknown[]): T
243
242
  }
244
243
 
@@ -263,6 +262,12 @@ Object.defineProperty(module.exports, 'FieldConstructor', {
263
262
  },
264
263
  enumerable: true
265
264
  });
265
+ Object.defineProperty(module.exports, 'SymbolInitialValue', {
266
+ get() {
267
+ return SymbolInitialValue;
268
+ },
269
+ enumerable: true
270
+ });
266
271
  Object.defineProperty(module.exports, 'Strict', {
267
272
  get() {
268
273
  return function (prototypeTarget: object) {
@@ -280,7 +285,6 @@ Object.defineProperty(module.exports, 'Strict', {
280
285
  construct(target, argumentsList, newTarget) {
281
286
  //@ts-ignore
282
287
  const result = Reflect.construct(target, argumentsList, newTarget);
283
- debugger;
284
288
  return result;
285
289
  },
286
290
  });
@@ -11,5 +11,5 @@ export const nullish = (value: object) => {
11
11
  const error = new TypeError(ErrorsNames.TYPE_MISMATCH);
12
12
  throw error;
13
13
  }
14
- }
14
+ };
15
15
  };
@@ -15,5 +15,5 @@ export const objects = (value: object) => {
15
15
  const error = new TypeError(ErrorsNames.TYPE_MISMATCH);
16
16
  throw error;
17
17
  }
18
- }
18
+ };
19
19
  };
@@ -17,13 +17,13 @@ export const primitives = (initialValue: object) => {
17
17
  throw new ReferenceError(ErrorsNames.ACCESS_DENIED);
18
18
  }
19
19
  return value.valueOf();
20
- }
20
+ };
21
21
  }
22
22
 
23
23
  if (prop === 'valueOf') {
24
24
  return function () {
25
25
  return value.valueOf();
26
- }
26
+ };
27
27
  }
28
28
 
29
29
  // @ts-ignore
@@ -15,5 +15,5 @@ export const special = (value: object) => {
15
15
  const error = new TypeError(ErrorsNames.TYPE_MISMATCH);
16
16
  throw error;
17
17
  }
18
- }
18
+ };
19
19
  };
package/test/index.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  'use strict';
2
-
3
2
  import { describe, expect, test } from '@jest/globals';
4
3
 
5
4
  // BasePrototype & BaseClass are the same function
6
5
  // go as you want for being meaningfull
7
6
  // or meaningless
8
7
  const BasePrototype = require('..');
9
- import { BaseClass, FieldConstructor, Strict } from '..';
8
+ import { BaseClass, FieldConstructor, SymbolInitialValue, Strict } from '..';
10
9
 
11
- const { SymbolInitialValue } = FieldConstructor;
10
+ debugger; // eslint-disable-line no-debugger
12
11
 
13
12
  interface IBase {
14
13
  get getterField(): string
@@ -24,7 +23,6 @@ let decoratedSomeProp = 0;
24
23
  // const s = BasePrototype({ someProp: 123 });
25
24
  // console.log(s);
26
25
 
27
-
28
26
  // eslint-disable-next-line new-cap
29
27
  @Strict({ someProp: 123 })
30
28
  class DecoratedByBase {
@@ -64,7 +62,6 @@ class Base extends BasePrototype({
64
62
 
65
63
  constructor() {
66
64
  super();
67
- // debugger;
68
65
  this.stringValue = '123';
69
66
  this.booleanValue = true;
70
67
  this.objectValue = {};
@@ -82,9 +79,7 @@ class Base extends BasePrototype({
82
79
  // });
83
80
  }
84
81
  }
85
- // debugger;
86
82
  const baseInstance = new Base;
87
- // debugger;
88
83
 
89
84
  const upperInstance = Object.create(baseInstance);
90
85
 
@@ -97,9 +92,7 @@ class SimpleBase extends BaseClass {
97
92
  // this.stringProp = '123';
98
93
  // }
99
94
  }
100
- // debugger;
101
95
  const simpleInstance = new SimpleBase;
102
- // debugger;
103
96
 
104
97
  interface IFCstr<S> {
105
98
  (): void
@@ -232,12 +225,8 @@ describe('props tests', () => {
232
225
 
233
226
  test('decorators works', () => {
234
227
  const rgp = Reflect.getPrototypeOf;
235
- // eslint-disable-next-line no-debugger
236
- debugger;
237
228
  const decorated = new DecoratedByBase;
238
- debugger;
239
229
  const exdecorated = new ExtendedDecoratedByBase;
240
- debugger;
241
230
  expect(decoratedSomeProp.valueOf()).toEqual(321);
242
231
  expect(exdecorated.someProp.valueOf()).toEqual(321);
243
232
  expect(decorated.someProp.valueOf()).toEqual(123);
@@ -279,9 +268,6 @@ describe('props tests', () => {
279
268
 
280
269
  expect(/String$/.test(simpleInstance.stringProp.constructor.name)).toBe(true);
281
270
  expect(() => {
282
-
283
- // eslint-disable-next-line no-debugger
284
- debugger;
285
271
  // @ts-expect-error
286
272
  simpleInstance.stringProp = 123;
287
273
 
@@ -13,8 +13,7 @@
13
13
  "noUnusedLocals": true,
14
14
  "noUnusedParameters": true,
15
15
  "declaration": true,
16
- "sourceMap": false,
17
- "outDir": "lib",
16
+ "inlineSourceMap": true,
18
17
  "traceResolution": false,
19
18
  "removeComments": true,
20
19
  "experimentalDecorators": true,
package/tsconfig.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "noUnusedLocals": true,
14
14
  "noUnusedParameters": true,
15
15
  "declaration": true,
16
- "sourceMap": true,
16
+ "inlineSourceMap": true,
17
17
  "outDir": "lib",
18
18
  "traceResolution": false,
19
19
  "removeComments": true,
package/lib/errors.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEA,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,qBAAqB;IACpC,YAAY,EAAE,qCAAqC;IACnD,aAAa,EAAE,0BAA0B;IACzC,YAAY,EAAE,4BAA4B;CAC1C,CAAC"}
package/lib/fields.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,qCAAuC;AAEvC,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAenD,MAAa,gBAAgB;IAE5B,IAAW,GAAG;QACb,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO;YACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjC,CAAC,CAAC;IACH,CAAC;IACD,IAAW,GAAG;QACb,OAAO;YACN,MAAM,IAAI,SAAS,CAAC,oBAAW,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,CAAC;IACH,CAAC;IACD,YAAa,KAAc;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,kBAAkB;QAC5B,OAAO,kBAAkB,CAAC;IAC3B,CAAC;CACD;AAnBD,4CAmBC;AAoCD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC"}
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/types/functions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,sCAAwC;AAEjC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,SAAS,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,MAAM,eAAe,GAAG;IACvB,QAAQ;IACR,QAAQ;IACR,SAAS;CACT,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;IAC7C,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nullish.js","sourceRoot":"","sources":["../../src/types/nullish.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,sCAAwC;AAEjC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO;QACN,GAAG;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,GAAG;YACF,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;KACD,CAAA;AACF,CAAC,CAAC;AAVW,QAAA,OAAO,WAUlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/types/objects.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,sCAAwC;AAEjC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO;QACN,GAAG;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,GAAG,CAAC,gBAAyB;YAC5B,IAAI,gBAAgB,YAAY,MAAM,IAAI,gBAAgB,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC9F,KAAK,GAAG,gBAAgB,CAAC;gBACzB,OAAO,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;KACD,CAAA;AACF,CAAC,CAAC;AAdW,QAAA,OAAO,WAclB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,sCAAwC;AAEjC,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,IAAI,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC;IAExC,OAAO;QACN,GAAG;YACF,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;gBAErC,GAAG,CAAC,CAAC,EAAE,IAAI;oBACV,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;wBACjC,OAAO,UAAU,IAAY;4BAC5B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gCAC1B,MAAM,IAAI,cAAc,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;4BACrD,CAAC;4BACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;wBACxB,CAAC,CAAA;oBACF,CAAC;oBAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACxB,OAAO;4BACN,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;wBACxB,CAAC,CAAA;oBACF,CAAC;oBAGD,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;wBACrC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;oBAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO,MAAM,CAAC;gBACf,CAAC;aACD,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACrB,CAAC;QAaD,GAAG,CAAC,gBAAyB;YAC5B,IAAI,gBAAgB,YAAY,KAAK,CAAC,WAAW,EAAE,CAAC;gBACnD,KAAK,GAAG,gBAAgB,CAAC;gBACzB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAE1C,IAAI,QAAQ,YAAY,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC3C,KAAK,GAAG,QAAQ,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAhEW,QAAA,UAAU,cAgErB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"special.js","sourceRoot":"","sources":["../../src/types/special.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,sCAAwC;AAEjC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO;QACN,GAAG;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,GAAG,CAAC,gBAAwB;YAC3B,IAAI,OAAO,gBAAgB,KAAK,OAAO,KAAK,EAAE,CAAC;gBAC9C,KAAK,GAAG,gBAAgB,CAAC;gBACzB,OAAO,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;KACD,CAAA;AACF,CAAC,CAAC;AAdW,QAAA,OAAO,WAclB"}
package/test/addition.js DELETED
@@ -1,49 +0,0 @@
1
- 'use strict';
2
-
3
- const { describe, test } = require('node:test');
4
- const assert = require('node:assert').strict;
5
-
6
- const BasePrototype = require('..');
7
-
8
- // eslint-disable-next-line new-cap
9
- class Base extends BasePrototype({
10
- additionalProp: 321,
11
- }) {
12
- numberValue = 123;
13
- constructor() {
14
- super();
15
- this.stringValue = '123';
16
- this.booleanValue = true;
17
- this.objectValue = {};
18
- }
19
- }
20
-
21
- const baseInstance = new Base;
22
-
23
- describe('props tests', () => {
24
-
25
- test('base instance has props', () => {
26
- const realKeys = Object.keys(baseInstance);
27
- const needKeys = ['numberValue', 'stringValue', 'booleanValue', 'objectValue'];
28
- assert.deepEqual(realKeys, needKeys);
29
- });
30
-
31
- test('JavaScript class fields allow re-definition', () => {
32
- baseInstance.numberValue = '123';
33
- assert.equal(baseInstance.numberValue, '123');
34
- });
35
-
36
- test('everything the rest is the same', () => {
37
- assert.equal(baseInstance.additionalProp, 321);
38
- assert.throws(() => {
39
- baseInstance.stringValue = 123;
40
- }, new TypeError('Type Mismatch'));
41
- assert.throws(() => {
42
- baseInstance.booleanValue = 123;
43
- }, new TypeError('Type Mismatch'));
44
- assert.throws(() => {
45
- baseInstance.objectValue = null;
46
- }, new TypeError('Type Mismatch'));
47
- });
48
-
49
- });
package/test/noJest.js DELETED
@@ -1,167 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
18
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
19
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
20
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
21
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
22
- var _, done = false;
23
- for (var i = decorators.length - 1; i >= 0; i--) {
24
- var context = {};
25
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
26
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
27
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
28
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
29
- if (kind === "accessor") {
30
- if (result === void 0) continue;
31
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
32
- if (_ = accept(result.get)) descriptor.get = _;
33
- if (_ = accept(result.set)) descriptor.set = _;
34
- if (_ = accept(result.init)) initializers.unshift(_);
35
- }
36
- else if (_ = accept(result)) {
37
- if (kind === "field") initializers.unshift(_);
38
- else descriptor[key] = _;
39
- }
40
- }
41
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
42
- done = true;
43
- };
44
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
45
- var useValue = arguments.length > 2;
46
- for (var i = 0; i < initializers.length; i++) {
47
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
48
- }
49
- return useValue ? value : void 0;
50
- };
51
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
52
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
53
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
54
- };
55
- Object.defineProperty(exports, "__esModule", { value: true });
56
- // BasePrototype & BaseClass are the same function
57
- // go as you want for being meaningfull
58
- // or meaningless
59
- var BasePrototype = require('..');
60
- var __1 = require("..");
61
- // eslint-disable-next-line new-cap
62
- var DecoratedByBase = function () {
63
- var _classDecorators = [(0, __1.Strict)({ someProp: 123 })];
64
- var _classDescriptor;
65
- var _classExtraInitializers = [];
66
- var _classThis;
67
- var DecoratedByBase = _classThis = /** @class */ (function () {
68
- function DecoratedByBase_1() {
69
- }
70
- return DecoratedByBase_1;
71
- }());
72
- __setFunctionName(_classThis, "DecoratedByBase");
73
- (function () {
74
- var _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
75
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
76
- DecoratedByBase = _classThis = _classDescriptor.value;
77
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
78
- __runInitializers(_classThis, _classExtraInitializers);
79
- })();
80
- return DecoratedByBase = _classThis;
81
- }();
82
- var ExtendedDecoratedByBase = /** @class */ (function (_super) {
83
- __extends(ExtendedDecoratedByBase, _super);
84
- function ExtendedDecoratedByBase() {
85
- var _this = _super.call(this) || this;
86
- _this.someProp = 321;
87
- return _this;
88
- }
89
- return ExtendedDecoratedByBase;
90
- }(DecoratedByBase));
91
- // eslint-disable-next-line new-cap
92
- var Base = /** @class */ (function (_super) {
93
- __extends(Base, _super);
94
- function Base() {
95
- var _this = _super.call(this) || this;
96
- _this.numberValue = 123;
97
- debugger;
98
- _this.stringValue = '123';
99
- _this.booleanValue = true;
100
- _this.objectValue = {};
101
- return _this;
102
- // ES2022
103
- // Object.defineProperty(this, 'getterField', {
104
- // get() {
105
- // const answer = `${this.stringValue}`;
106
- // return answer;
107
- // }
108
- // });
109
- // Object.defineProperty(this, 'setterField', {
110
- // set(value: string) {
111
- // this.stringValue = value;
112
- // }
113
- // });
114
- }
115
- Object.defineProperty(Base.prototype, "getterField", {
116
- get: function () {
117
- var answer = "".concat(this.stringValue);
118
- return answer;
119
- },
120
- enumerable: false,
121
- configurable: true
122
- });
123
- Object.defineProperty(Base.prototype, "setterField", {
124
- set: function (value) {
125
- this.stringValue = value;
126
- },
127
- enumerable: false,
128
- configurable: true
129
- });
130
- return Base;
131
- }(BasePrototype({
132
- additionalProp: 321,
133
- someMethod: function () {
134
- return this.numberValue.valueOf();
135
- },
136
- })));
137
- debugger;
138
- var baseInstance = new Base;
139
- console.log(baseInstance);
140
- debugger;
141
- var upperInstance = Object.create(baseInstance);
142
- console.log(upperInstance);
143
- var SimpleBase = /** @class */ (function (_super) {
144
- __extends(SimpleBase, _super);
145
- function SimpleBase() {
146
- var _this = _super !== null && _super.apply(this, arguments) || this;
147
- _this.stringProp = '123';
148
- return _this;
149
- // ES2022
150
- // stringProp: string;
151
- // constructor() {
152
- // super();
153
- // this.stringProp = '123';
154
- // }
155
- }
156
- return SimpleBase;
157
- }(__1.BaseClass));
158
- debugger;
159
- var simpleInstance = new SimpleBase;
160
- console.log(simpleInstance);
161
- debugger;
162
- var decorated = new DecoratedByBase;
163
- console.log(decorated);
164
- debugger;
165
- var exdecorated = new ExtendedDecoratedByBase;
166
- console.log(exdecorated);
167
- debugger;