typeomatica 0.3.37 → 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 +1 -1
- package/jest.config.js +2 -1
- package/lib/errors.js +7 -7
- package/lib/fields.d.ts +5 -5
- package/lib/fields.js +20 -20
- package/lib/index.d.ts +2 -1
- package/lib/index.js +122 -116
- package/lib/types/functions.js +4 -4
- package/lib/types/index.js +16 -16
- package/lib/types/nullish.js +12 -12
- package/lib/types/objects.js +16 -16
- package/lib/types/primitives.js +45 -45
- package/lib/types/special.js +16 -16
- package/package.json +13 -12
- package/src/index.ts +11 -7
- package/src/types/nullish.ts +1 -1
- package/src/types/objects.ts +1 -1
- package/src/types/primitives.ts +2 -2
- package/src/types/special.ts +1 -1
- package/test/index.ts +2 -16
- package/tsconfig.jest.json +1 -2
- package/tsconfig.json +1 -1
- package/lib/errors.js.map +0 -1
- package/lib/fields.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/functions.js.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib/types/nullish.js.map +0 -1
- package/lib/types/objects.js.map +0 -1
- package/lib/types/primitives.js.map +0 -1
- package/lib/types/special.js.map +0 -1
- package/test/addition.js +0 -49
- package/test/noJest.js +0 -167
package/.eslintrc.js
CHANGED
package/jest.config.js
CHANGED
package/lib/errors.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.ErrorsNames = void 0;
|
|
4
4
|
exports.ErrorsNames = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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=
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.FieldConstructor = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('./errors');
|
|
5
5
|
const SymbolInitialValue = Symbol('Initial Value');
|
|
6
6
|
class FieldConstructor {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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=
|
|
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,
|
|
3
|
-
exports.Strict = exports.FieldConstructor = exports.BaseClass = exports.BaseConstructorPrototype = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
5
|
-
const types_1 = require(
|
|
6
|
-
const fields_1 = require(
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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(
|
|
108
|
-
Object.defineProperty(exports,
|
|
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
|
-
|
|
111
|
+
Strict: exports.BaseConstructorPrototype,
|
|
111
112
|
}.Strict;
|
|
112
113
|
Object.defineProperty(module.exports, 'BaseClass', {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
get() {
|
|
115
|
+
return BaseClass;
|
|
116
|
+
},
|
|
117
|
+
enumerable: true
|
|
117
118
|
});
|
|
118
119
|
Object.defineProperty(module.exports, 'FieldConstructor', {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFFYixxQ0FBdUM7QUFFdkMsbUNBT2lCO0FBRWpCLHFDQUE0QztBQUU1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQy9CLFVBQVUsRUFBVixrQkFBVTtJQUNWLE9BQU8sRUFBUCxlQUFPO0lBQ1AsT0FBTyxFQUFQLGVBQU87SUFDUCxPQUFPLEVBQVAsZUFBTztJQUNQLFNBQVMsRUFBVCxpQkFBUztDQUNULENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtJQUUxQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxZQUFvQixFQUFFLFFBQWdCO1FBQzFELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPO1lBQ04sR0FBRztnQkFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqQyxNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixPQUFPLE1BQU0sQ0FBQztZQUNmLENBQUM7WUFDRCxHQUFHLENBQUMsZ0JBQXlCO2dCQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqQyxNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FB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
|
package/lib/types/functions.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.functions = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('../errors');
|
|
5
5
|
const functions = () => {
|
|
6
|
-
|
|
6
|
+
throw new TypeError(errors_1.ErrorsNames.RIP_FUNCTIONS);
|
|
7
7
|
};
|
|
8
8
|
exports.functions = functions;
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLHNDQUF3QztBQUVqQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDN0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxvQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUZXLFFBQUEsU0FBUyxhQUVwQiJ9
|
package/lib/types/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
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(
|
|
5
|
-
Object.defineProperty(exports,
|
|
6
|
-
var nullish_1 = require(
|
|
7
|
-
Object.defineProperty(exports,
|
|
8
|
-
var objects_1 = require(
|
|
9
|
-
Object.defineProperty(exports,
|
|
10
|
-
var primitives_1 = require(
|
|
11
|
-
Object.defineProperty(exports,
|
|
12
|
-
var special_1 = require(
|
|
13
|
-
Object.defineProperty(exports,
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
'string',
|
|
16
|
+
'number',
|
|
17
|
+
'boolean',
|
|
18
18
|
];
|
|
19
19
|
const isPrimitive = (value) => {
|
|
20
|
-
|
|
20
|
+
return PRIMITIVE_TYPES.includes(typeof value);
|
|
21
21
|
};
|
|
22
22
|
exports.isPrimitive = isPrimitive;
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFFYix5Q0FBd0M7QUFBL0Isc0dBQUEsU0FBUyxPQUFBO0FBQ2xCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiwyQ0FBMEM7QUFBakMsd0dBQUEsVUFBVSxPQUFBO0FBQ25CLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFFaEIsTUFBTSxlQUFlLEdBQUc7SUFDdkIsUUFBUTtJQUNSLFFBQVE7SUFDUixTQUFTO0NBQ1QsQ0FBQztBQUVLLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDN0MsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRlcsUUFBQSxXQUFXLGVBRXRCIn0=
|
package/lib/types/nullish.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.nullish = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('../errors');
|
|
5
5
|
const nullish = (value) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9udWxsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFBO0FBQ0YsQ0FBQyxDQUFDO0FBVlcsUUFBQSxPQUFPLFdBVWxCIn0=
|
package/lib/types/objects.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.objects = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('../errors');
|
|
5
5
|
const objects = (value) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksTUFBTSxJQUFJLGdCQUFnQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzlGLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFBO0FBQ0YsQ0FBQyxDQUFDO0FBZFcsUUFBQSxPQUFPLFdBY2xCIn0=
|
package/lib/types/primitives.js
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.primitives = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('../errors');
|
|
5
5
|
const primitives = (initialValue) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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=
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9wcmltaXRpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sVUFBVSxHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksQ0FBQztJQUV4QyxPQUFPO1FBQ04sR0FBRztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFFckMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJO29CQUNWLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxVQUFVLElBQVk7NEJBQzVCLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dDQUMxQixNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQ3JELENBQUM7NEJBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3hCLENBQUMsQ0FBQTtvQkFDRixDQUFDO29CQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUN4QixPQUFPOzRCQUNOLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUE7b0JBQ0YsQ0FBQztvQkFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDckMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxNQUFNLENBQUM7Z0JBQ2YsQ0FBQzthQUNELENBQUMsQ0FBQztZQUNILE9BQU8sWUFBWSxDQUFDO1FBQ3JCLENBQUM7UUFhRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTFDLElBQUksUUFBUSxZQUFZLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsVUFBVSxjQWdFckIifQ==
|
package/lib/types/special.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
Object.defineProperty(exports,
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.special = void 0;
|
|
4
|
-
const errors_1 = require(
|
|
4
|
+
const errors_1 = require('../errors');
|
|
5
5
|
const special = (value) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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=
|
|
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.
|
|
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
|
-
"
|
|
12
|
-
"lint": "npx eslint --fix
|
|
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": "
|
|
17
|
-
"debug
|
|
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": [
|
|
@@ -31,20 +33,19 @@
|
|
|
31
33
|
"url": "git+https://github.com/wentout/typeomatica.git"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
34
|
-
"@types/jest": "^29.5.
|
|
35
|
-
"@types/node": "^18.19.
|
|
36
|
+
"@types/jest": "^29.5.14",
|
|
37
|
+
"@types/node": "^18.19.112",
|
|
36
38
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
37
39
|
"@typescript-eslint/parser": "^6.21.0",
|
|
38
|
-
"eslint": "^8.57.
|
|
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.
|
|
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
|
-
|
|
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
|
});
|
package/src/types/nullish.ts
CHANGED
package/src/types/objects.ts
CHANGED
package/src/types/primitives.ts
CHANGED
|
@@ -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
|
package/src/types/special.ts
CHANGED
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
|
-
|
|
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
|
|
package/tsconfig.jest.json
CHANGED
package/tsconfig.json
CHANGED
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":"AAAA,YAAY,CAAC;;;AAEb,qCAAuC;AAEvC,mCAOiB;AAEjB,qCAA4C;AAE5C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,UAAU,EAAV,kBAAU;IACV,OAAO,EAAP,eAAO;IACP,OAAO,EAAP,eAAO;IACP,OAAO,EAAP,eAAO;IACP,SAAS,EAAT,iBAAS;CACT,CAAC,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;IAE1C,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,YAAoB,EAAE,QAAgB;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO;YACN,GAAG;gBACF,MAAM,cAAc,GAAG,IAAI,CAAC;gBAC5B,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,cAAc,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC;YACf,CAAC;YACD,GAAG,CAAC,gBAAyB;gBAC5B,MAAM,cAAc,GAAG,IAAI,CAAC;gBAC5B,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,cAAc,CAAC,oBAAW,CAAC,aAAa,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,OAAO,MAAM,CAAC;YACf,CAAC;SACD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC;AACZ,CAAC,EAAE,EAAE,CAAC,CAAC;AAEP,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,YAAqB,EAAE,QAAgB,EAAE,EAAE;IAEpF,MAAM,KAAK,GAAG,YAAY,CAAC;IAC3B,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,YAAY,QAAQ,CAAC;IACpD,MAAM,MAAM,GAAG,YAAY,KAAK,IAAI,CAAC;IAOrC,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAC9C,QAAQ,CAAC,CAAC,CAAC,CACV,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAC9B,CAAC,CAAC,CAAC,CACH,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACpC,CACD,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,YAAY,yBAAgB,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK;QACL,CAAC,iBAEA,UAAU,EAAE,IAAI,IAEb,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClC,CAAC;IAOH,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAEf,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrE,cAAc,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAExD,MAAM,QAAQ,GAAG;IAChB,GAAG,CAAC,MAAc,EAAE,IAAqB,EAAE,QAAgB;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAEvB,OAAO;gBACN,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAE1D,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC3B,OAAO,GAAG,CAAC;gBACZ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,oBAAW,CAAC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,GAAG,CAAC,CAAS,EAAE,IAAY,EAAE,KAAc,EAAE,QAAgB;QAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IACf,CAAC;CAMD,CAAC;AAGF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAK1B,QAAA,wBAAwB,GAAG,UAWvC,iBAAoB,UAAU;IAE9B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,IAAI,GAKN,gCAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,GAAG;YAChB,WAAW,EAAE,gCAAwB;SACrC,CAAC;QAEF,OAAO,IAAS,CAAC;IAElB,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAE9D,IAAI,YAAY,GAAG,IAAc,CAAC;IAClC,IAAI,gBAAgB,CAAC;IACrB,GAAG,CAAC;QACH,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAW,CAAC;QAC9D,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAE,CAAC,KAAK,CAAC;IACzF,CAAC,QAAQ,gBAAgB,KAAK,gCAAwB,EAAE;IAExD,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AAEb,CAGC,CAAC;AA8CF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;IACxC,GAAG;QAEF,OAAO,gCAAwB,CAAC;IACjC,CAAC;IACD,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AAMH,MAAa,SAAU,SAAQ,gCAAwB;CAAI;AAA3D,8BAA2D;AAC3D,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AAQV,cAAM,GAAK;IAEzB,MAAM,EAAE,gCAAwB;CAIhC,QAAC;AAEF,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE;IAClD,GAAG;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE;IACzD,GAAG;QACF,OAAO,yBAAgB,CAAC;IACzB,CAAC;IACD,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;IAC/C,GAAG;QACF,OAAO,UAAU,eAAuB;YACvC,MAAM,SAAS,GAAG,UAEjB,MAGC;gBAGD,MAAM,QAAQ,GAAG,gCAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAExE,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACxC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS;wBAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;wBACnE,QAAQ,CAAC;wBACT,OAAO,MAAM,CAAC;oBACf,CAAC;iBACD,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC;YACrB,CAAC,CAAC;YAEF,OAAO,SAAS,CAAC;QAElB,CAAC,CAAC;IAGH,CAAC;IACD,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC"}
|
|
@@ -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"}
|
package/lib/types/index.js.map
DELETED
|
@@ -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"}
|
package/lib/types/nullish.js.map
DELETED
|
@@ -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"}
|
package/lib/types/objects.js.map
DELETED
|
@@ -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"}
|
package/lib/types/special.js.map
DELETED
|
@@ -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;
|