ts-ref-kit 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/index.js +20 -3
  2. package/dist/parser/reflect-parser.js +1 -611
  3. package/package.json +5 -3
  4. package/dist/index.d.ts +0 -2
  5. package/dist/index.js.map +0 -1
  6. package/dist/parser/index.d.ts +0 -3
  7. package/dist/parser/index.js +0 -4
  8. package/dist/parser/index.js.map +0 -1
  9. package/dist/parser/path-match.d.ts +0 -7
  10. package/dist/parser/path-match.js +0 -37
  11. package/dist/parser/path-match.js.map +0 -1
  12. package/dist/parser/reflect-loader.d.ts +0 -9
  13. package/dist/parser/reflect-loader.js +0 -93
  14. package/dist/parser/reflect-loader.js.map +0 -1
  15. package/dist/parser/reflect-parser-plugin.d.ts +0 -7
  16. package/dist/parser/reflect-parser-plugin.js +0 -27
  17. package/dist/parser/reflect-parser-plugin.js.map +0 -1
  18. package/dist/parser/reflect-parser.d.ts +0 -74
  19. package/dist/parser/reflect-parser.js.map +0 -1
  20. package/dist/reflect-json/Mappable.d.ts +0 -13
  21. package/dist/reflect-json/Mappable.js +0 -48
  22. package/dist/reflect-json/Mappable.js.map +0 -1
  23. package/dist/reflect-json/decorate.d.ts +0 -18
  24. package/dist/reflect-json/decorate.js +0 -62
  25. package/dist/reflect-json/decorate.js.map +0 -1
  26. package/dist/reflect-json/index.d.ts +0 -6
  27. package/dist/reflect-json/index.js +0 -7
  28. package/dist/reflect-json/index.js.map +0 -1
  29. package/dist/reflect-json/json-translation.d.ts +0 -38
  30. package/dist/reflect-json/json-translation.js +0 -243
  31. package/dist/reflect-json/json-translation.js.map +0 -1
  32. package/dist/reflect-json/reflect-extension.d.ts +0 -13
  33. package/dist/reflect-json/reflect-extension.js +0 -30
  34. package/dist/reflect-json/reflect-extension.js.map +0 -1
  35. package/dist/reflect-json/types.d.ts +0 -15
  36. package/dist/reflect-json/types.js +0 -2
  37. package/dist/reflect-json/types.js.map +0 -1
  38. package/dist/reflect-json/utils.d.ts +0 -9
  39. package/dist/reflect-json/utils.js +0 -48
  40. package/dist/reflect-json/utils.js.map +0 -1
  41. package/dist/reflect-types/ClassDefinition.d.ts +0 -26
  42. package/dist/reflect-types/ClassDefinition.js +0 -90
  43. package/dist/reflect-types/ClassDefinition.js.map +0 -1
  44. package/dist/reflect-types/EnumDefinition.d.ts +0 -8
  45. package/dist/reflect-types/EnumDefinition.js +0 -20
  46. package/dist/reflect-types/EnumDefinition.js.map +0 -1
  47. package/dist/reflect-types/InterfaceDefinition.d.ts +0 -16
  48. package/dist/reflect-types/InterfaceDefinition.js +0 -49
  49. package/dist/reflect-types/InterfaceDefinition.js.map +0 -1
  50. package/dist/reflect-types/MethodDefinition.d.ts +0 -15
  51. package/dist/reflect-types/MethodDefinition.js +0 -21
  52. package/dist/reflect-types/MethodDefinition.js.map +0 -1
  53. package/dist/reflect-types/PropertyDefinition.d.ts +0 -18
  54. package/dist/reflect-types/PropertyDefinition.js +0 -15
  55. package/dist/reflect-types/PropertyDefinition.js.map +0 -1
  56. package/dist/reflect-types/assert-type.d.ts +0 -12
  57. package/dist/reflect-types/assert-type.js +0 -35
  58. package/dist/reflect-types/assert-type.js.map +0 -1
  59. package/dist/reflect-types/function-validate.d.ts +0 -10
  60. package/dist/reflect-types/function-validate.js +0 -77
  61. package/dist/reflect-types/function-validate.js.map +0 -1
  62. package/dist/reflect-types/index.d.ts +0 -11
  63. package/dist/reflect-types/index.js +0 -12
  64. package/dist/reflect-types/index.js.map +0 -1
  65. package/dist/reflect-types/package.d.ts +0 -13
  66. package/dist/reflect-types/package.js +0 -25
  67. package/dist/reflect-types/package.js.map +0 -1
  68. package/dist/reflect-types/reflect-context.d.ts +0 -16
  69. package/dist/reflect-types/reflect-context.js +0 -109
  70. package/dist/reflect-types/reflect-context.js.map +0 -1
  71. package/dist/reflect-types/reflect-definitions.d.ts +0 -100
  72. package/dist/reflect-types/reflect-definitions.js +0 -29
  73. package/dist/reflect-types/reflect-definitions.js.map +0 -1
  74. package/dist/reflect-types/reflect-types.d.ts +0 -20
  75. package/dist/reflect-types/reflect-types.js +0 -83
  76. package/dist/reflect-types/reflect-types.js.map +0 -1
  77. package/dist/reflect-types/reflect-validate.d.ts +0 -24
  78. package/dist/reflect-types/reflect-validate.js +0 -313
  79. package/dist/reflect-types/reflect-validate.js.map +0 -1
@@ -1,243 +0,0 @@
1
- import 'reflect-metadata';
2
- import { asBoolean, asNumber, asString, createNewInstance, isDictionary, setAnyValue } from './utils';
3
- import { registerMappable } from './Mappable';
4
- import { getClassDefinition, getErrorTraceMessages, validateInstance } from '../reflect-types';
5
- import { callDecoratedMethod, defineDecoratedProperty } from "./decorate";
6
- const JSON_SERIALIZED = Symbol('JSON_SERIALIZED');
7
- const AFTER_SERIALIZED = Symbol('AFTER_SERIALIZED');
8
- class SerializeSettings {
9
- constructor() {
10
- this.settingsByName = {};
11
- this.settingsBySerializedName = {};
12
- this.ignoredProperties = [];
13
- this.defaultIgnored = false;
14
- }
15
- add(prop) {
16
- this.settingsByName[prop.propName] = prop;
17
- this.settingsBySerializedName[prop.serializedName] = prop;
18
- }
19
- isPropertyIgnored(propName) {
20
- if (this.defaultIgnored && !this.settingsByName[propName]) {
21
- return true;
22
- }
23
- return this.ignoredProperties.indexOf(propName) !== -1;
24
- }
25
- }
26
- class SerializedPropertySetting {
27
- constructor(target, propName, options) {
28
- this.target = target;
29
- this.propName = propName;
30
- this.options = options;
31
- this.isArray = Reflect.getDesignType(target, propName) === Array;
32
- this.serializedName = options.name || asString(propName);
33
- this.class = options.class;
34
- this.fromJSON = this.createBuilder();
35
- this.toJSON = options.toJSON || (value => serializeTo(value));
36
- }
37
- createBuilder() {
38
- if (this.options.fromJSON) {
39
- return this.options.fromJSON;
40
- }
41
- else if (this.class && this.class instanceof Function) {
42
- const clazz = this.class;
43
- return data => {
44
- const transformer = jsonTransformers.get(clazz);
45
- return transformer ? transformer.fromJson(data) : deserialize(data, clazz);
46
- };
47
- }
48
- else {
49
- return data => getValueByReflectType(this.target, this.propName, data);
50
- }
51
- }
52
- }
53
- export function setDefaultIgnored(clazz, defaultIgnored) {
54
- updateSerializeSettings(clazz, settings => {
55
- settings.defaultIgnored = defaultIgnored;
56
- });
57
- }
58
- export function registerSerializedProperty(target, propName, options) {
59
- const clazz = target.constructor;
60
- updateSerializeSettings(clazz, settings => {
61
- settings.add(new SerializedPropertySetting(target, propName, options));
62
- });
63
- }
64
- function updateSerializeSettings(clazz, update) {
65
- let settings = Reflect.getMetadata(JSON_SERIALIZED, clazz);
66
- if (settings === undefined) {
67
- settings = new SerializeSettings();
68
- }
69
- update(settings);
70
- Reflect.defineMetadata(JSON_SERIALIZED, settings, clazz);
71
- }
72
- export const SerializedClass = Serialized();
73
- // @Annotation
74
- export function Serialized(options) {
75
- options = options || {};
76
- return (target, propName) => registerSerializedProperty(target, asString(propName), options);
77
- }
78
- // @Annotation
79
- export function SerializedName(serializedName) {
80
- return (target, propName) => registerSerializedProperty(target, asString(propName), {
81
- name: serializedName
82
- });
83
- }
84
- // @Annotation
85
- export const IgnoreSerialization = (target, propName) => updateSerializeSettings(target.constructor, settings => settings.ignoredProperties.push(propName));
86
- /**
87
- * serialize an object to json string
88
- */
89
- export function serialize(value) {
90
- if (typeof value === 'object')
91
- return JSON.stringify(serializeToData(value));
92
- return JSON.stringify(value);
93
- }
94
- export function serializeTo(value) {
95
- if (value === undefined)
96
- throw new Error('attempt to serialize undefined value');
97
- if (value === null)
98
- return null;
99
- const transformer = jsonTransformers.get(value.constructor);
100
- return transformer ? transformer.toJson(value) : serializeToData(value);
101
- }
102
- /**
103
- * convert an object to data object
104
- */
105
- export function serializeToData(object) {
106
- var _a;
107
- if (object instanceof Array) {
108
- return object.map(it => serializeToData(it));
109
- }
110
- if (isDictionary(object)) {
111
- const result = {};
112
- Object.entries(object).forEach(it => {
113
- const [prop, value] = it;
114
- result[prop] = serializeTo(value);
115
- });
116
- return result;
117
- }
118
- const clazz = object.constructor;
119
- const reflectEnabled = (_a = getClassDefinition(clazz)) === null || _a === void 0 ? void 0 : _a.isSubClassOf('Mappable');
120
- if (reflectEnabled)
121
- registerMappable(clazz);
122
- const settings = Reflect.getMetadata(JSON_SERIALIZED, clazz);
123
- if (settings === undefined) {
124
- return object;
125
- }
126
- const jsonMappingObject = {};
127
- Object.entries(object).forEach(entry => {
128
- const propName = entry[0];
129
- if (settings.isPropertyIgnored(propName))
130
- return;
131
- let value = entry[1];
132
- if (value === undefined || value instanceof Function || typeof value === 'symbol')
133
- return;
134
- const propSetting = settings.settingsByName[propName];
135
- const serializedName = (propSetting === null || propSetting === void 0 ? void 0 : propSetting.serializedName) || propName;
136
- if (propSetting) {
137
- if (propSetting.isArray) {
138
- value = value.map(it => propSetting.toJSON(it));
139
- }
140
- else {
141
- value = propSetting.toJSON(value);
142
- }
143
- }
144
- jsonMappingObject[serializedName] = value;
145
- });
146
- return jsonMappingObject;
147
- }
148
- export function deserialize(json, constructorOrTarget) {
149
- var _a;
150
- if (typeof json === 'string') {
151
- json = JSON.parse(json);
152
- }
153
- if (constructorOrTarget === null)
154
- return json;
155
- if (constructorOrTarget === undefined)
156
- return json;
157
- try {
158
- const data = json;
159
- const clazz = constructorOrTarget instanceof Function ? constructorOrTarget : constructorOrTarget.constructor;
160
- const reflectEnabled = (_a = getClassDefinition(clazz)) === null || _a === void 0 ? void 0 : _a.isSubClassOf('Mappable');
161
- if (reflectEnabled)
162
- registerMappable(clazz);
163
- const transformer = jsonTransformers.get(clazz);
164
- if (transformer)
165
- return transformer.fromJson(data);
166
- const target = constructorOrTarget instanceof Function ? createNewInstance(constructorOrTarget) : constructorOrTarget;
167
- deserializeFrom(data, target);
168
- if (reflectEnabled) {
169
- const validateResult = validateInstance(target, clazz.name);
170
- if (!validateResult.success) {
171
- throw new Error(`JSON deserialize validate failed: ${getErrorTraceMessages(validateResult)} `);
172
- }
173
- }
174
- return target;
175
- }
176
- catch (e) {
177
- console.error('failed to deserialize');
178
- console.dir(e);
179
- throw e;
180
- }
181
- }
182
- export function deserializeArray(json, clazz) {
183
- const data = typeof json === 'string' ? JSON.parse(json) : json;
184
- if (!(data instanceof Array)) {
185
- return [];
186
- }
187
- return data.map(item => deserialize(item, clazz));
188
- }
189
- export function deserializeFrom(data, target) {
190
- const clazz = target.constructor;
191
- const settings = Reflect.getMetadata(JSON_SERIALIZED, clazz);
192
- if (settings === undefined) {
193
- Object.assign(target, data);
194
- return;
195
- }
196
- Object.keys(data).forEach(serializedName => {
197
- const propDef = settings.settingsBySerializedName[serializedName];
198
- const jsonValue = data[serializedName];
199
- if (propDef === undefined) {
200
- if (!settings.defaultIgnored) {
201
- setAnyValue(target, serializedName, jsonValue);
202
- }
203
- return;
204
- }
205
- const propName = propDef.propName;
206
- if (settings.isPropertyIgnored(propName)) {
207
- return;
208
- }
209
- let value;
210
- if (jsonValue instanceof Array) {
211
- value = jsonValue.map(it => propDef.fromJSON(it));
212
- }
213
- else {
214
- value = propDef.fromJSON(jsonValue);
215
- }
216
- setAnyValue(target, propName, value);
217
- });
218
- callDecoratedMethod(target, AFTER_SERIALIZED);
219
- }
220
- export function getSerializeSettings(clazz) {
221
- return Reflect.getMetadata(JSON_SERIALIZED, clazz);
222
- }
223
- function getValueByReflectType(target, propName, value) {
224
- const reflectType = Reflect.getDesignType(target, propName);
225
- if (reflectType === undefined)
226
- return value;
227
- if (reflectType === Array)
228
- return deserializeArray(value);
229
- const transformer = jsonTransformers.get(reflectType);
230
- return transformer ? transformer.fromJson(value) : deserialize(value, reflectType);
231
- }
232
- const jsonTransformers = new Map();
233
- export function registerTransform(clazz, transform) {
234
- jsonTransformers.set(clazz, transform);
235
- }
236
- export const itSelf = (some) => some;
237
- export const done = () => undefined;
238
- registerTransform(String, { fromJson: asString, toJson: itSelf });
239
- registerTransform(Number, { fromJson: asNumber, toJson: itSelf });
240
- registerTransform(Boolean, { fromJson: asBoolean, toJson: itSelf });
241
- registerTransform(Date, { fromJson: (anyValue) => new Date(asNumber(anyValue)), toJson: date => date.getTime() });
242
- export const AfterSerialized = defineDecoratedProperty(AFTER_SERIALIZED);
243
- //# sourceMappingURL=json-translation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-translation.js","sourceRoot":"","sources":["../../src/reflect-json/json-translation.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import 'reflect-metadata';
2
- import { Any, AnyConstructorFunction, AnyObject, Optional } from './types';
3
- export type ReflectPropertyKey = string | symbol;
4
- export type ReflectType = StringConstructor | NumberConstructor | BooleanConstructor | ObjectConstructor | ArrayConstructor | FunctionConstructor | AnyConstructorFunction;
5
- declare global {
6
- namespace Reflect {
7
- function getDesignType<T extends AnyObject>(target: T, property: keyof T | ReflectPropertyKey): Optional<ReflectType>;
8
- function getReturnType<T extends AnyObject>(target: T, property: keyof T | ReflectPropertyKey): Optional<ReflectType>;
9
- function getParamTypes<T extends AnyObject>(target: T, property: keyof T | ReflectPropertyKey): Optional<ReflectType[]>;
10
- function addMetadataList<T extends object>(key: symbol, value: Any, target: T): void;
11
- function addMetadataList<T extends object>(key: symbol, value: Any, target: T, property: ReflectPropertyKey): void;
12
- }
13
- }
@@ -1,30 +0,0 @@
1
- import 'reflect-metadata';
2
- const DESIGN_TYPE = 'design:type';
3
- const DESIGN_RETURNTYPE = 'design:returntype';
4
- const DESIGN_PARAMTYPES = 'design:paramtypes';
5
- function getDesignType(target, property) {
6
- return Reflect.getMetadata(DESIGN_TYPE, target, property);
7
- }
8
- function getReturnType(target, property) {
9
- return Reflect.getMetadata(DESIGN_RETURNTYPE, target, property);
10
- }
11
- function getParamTypes(target, property) {
12
- return Reflect.getMetadata(DESIGN_PARAMTYPES, target, property);
13
- }
14
- function addMetadataList(key, value, target, propertyKey) {
15
- const list = (propertyKey === undefined
16
- ? Reflect.getMetadata(key, target)
17
- : Reflect.getMetadata(key, target, propertyKey)) || [];
18
- if (!list.includes(value))
19
- list.push(value);
20
- propertyKey === undefined
21
- ? Reflect.defineMetadata(key, list, target)
22
- : Reflect.defineMetadata(key, list, target, propertyKey);
23
- }
24
- Object.assign(Reflect, {
25
- getDesignType,
26
- getReturnType,
27
- getParamTypes,
28
- addMetadataList
29
- });
30
- //# sourceMappingURL=reflect-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflect-extension.js","sourceRoot":"","sources":["../../src/reflect-json/reflect-extension.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAA;AACjC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAC7C,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAwC7C,SAAS,aAAa,CAAC,MAAiB,EAAE,QAAgB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,QAAgB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,QAAgB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,eAAe,CAAmB,GAAW,EAAE,KAAU,EAAE,MAAS,EAAE,WAAgC;IAC3G,MAAM,IAAI,GACN,CAAC,WAAW,KAAK,SAAS;QACtB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;QAClC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,WAAW,KAAK,SAAS;QACrB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;QAC3C,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;IACnB,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;CAClB,CAAC,CAAA"}
@@ -1,15 +0,0 @@
1
- export type Any = any;
2
- export type AnyFunction = (...args: Any[]) => Any;
3
- export type AnyConstructorFunction = new (...args: Any[]) => Any;
4
- export type Class<T> = new (...args: Any[]) => T;
5
- export type ClassOrInstance<T> = T | Class<T>;
6
- export type Dictionary<T> = {
7
- [key: string | symbol]: T;
8
- };
9
- export type AnyObject = Dictionary<Any>;
10
- export type Optional<T> = T | undefined;
11
- export type Nullable<T> = T | null;
12
- export type JsonValue = string | number | boolean | null | JsonObject | JsonObject[];
13
- export type JsonObject = {
14
- [propName: string]: JsonValue;
15
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/reflect-json/types.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { Any, Class } from "./types";
2
- export declare function asBoolean(value: unknown): boolean;
3
- export declare function asString(v: unknown): string;
4
- export declare function asNumber(v: unknown): number;
5
- export declare function setAnyValue<T>(target: Any, field: string | number | symbol, value: T): void;
6
- export declare function getAnyValue<T>(target: Any, field: string | number | symbol): T | undefined;
7
- export declare function getOrSetValue<T>(target: Any, field: string | number | symbol, defaultWith: () => T): T;
8
- export declare function isDictionary(value: Any): boolean;
9
- export declare function createNewInstance<T>(clazz: Class<T>): any;
@@ -1,48 +0,0 @@
1
- export function asBoolean(value) {
2
- if (String(value).toLocaleLowerCase() === 'false')
3
- return false;
4
- return !!value;
5
- }
6
- export function asString(v) {
7
- if (v === null || v === undefined || Number.isNaN(v)) {
8
- return '';
9
- }
10
- if (v instanceof Date && String(v) === 'Invalid Date') {
11
- return '';
12
- }
13
- if (typeof v === 'symbol') {
14
- return v.description || '';
15
- }
16
- return String(v);
17
- }
18
- export function asNumber(v) {
19
- if (!v)
20
- return 0;
21
- if (v instanceof Date)
22
- return v.getDate();
23
- return Number(v);
24
- }
25
- export function setAnyValue(target, field, value) {
26
- ;
27
- target[field] = value;
28
- }
29
- export function getAnyValue(target, field) {
30
- return target[field];
31
- }
32
- export function getOrSetValue(target, field, defaultWith) {
33
- const value = target[field];
34
- if (value !== undefined)
35
- return value;
36
- const defaultValue = defaultWith();
37
- setAnyValue(target, field, defaultValue);
38
- return defaultValue;
39
- }
40
- export function isDictionary(value) {
41
- return typeof value === 'object' && value !== null && value.constructor === Object;
42
- }
43
- export function createNewInstance(clazz) {
44
- const result = Object.create(clazz.prototype);
45
- result.constructor = this;
46
- return result;
47
- }
48
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/reflect-json/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,KAAc;IACpC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAC/D,OAAO,CAAC,CAAC,KAAK,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,CAAA;IACb,CAAC;IACD,IAAI,CAAC,YAAY,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;QACpD,OAAO,EAAE,CAAA;IACb,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,WAAW,IAAI,EAAE,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAU;IAC/B,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAChB,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,MAAW,EAAE,KAA+B,EAAE,KAAQ;IACjF,CAAC;IAAC,MAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,MAAW,EAAE,KAA+B;IACvE,OAAQ,MAAoB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,MAAW,EAAE,KAA+B,EAAE,WAAoB;IAC/F,MAAM,KAAK,GAAI,MAAoB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,YAAY,GAAG,WAAW,EAAE,CAAA;IAClC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACxC,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAU;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,KAAe;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7C,MAAM,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -1,26 +0,0 @@
1
- import type { RawClassDefinition, TypeDefinition } from './index';
2
- import { InterfaceDefinition, MethodDefinition, PropertyDefinition } from './index';
3
- import type { AnyConstructorFunction, Dictionary } from './package';
4
- export declare class ClassDefinition {
5
- readonly name: string;
6
- readonly superClassName: string;
7
- readonly superClass: ClassDefinition | undefined;
8
- readonly methods: MethodDefinition[];
9
- readonly properties: PropertyDefinition[];
10
- readonly jsClass: AnyConstructorFunction;
11
- private readonly _implementationNames;
12
- private readonly _implementations?;
13
- private _allImplementations?;
14
- constructor(def: RawClassDefinition & {
15
- jsClass: AnyConstructorFunction;
16
- });
17
- get allMethods(): Dictionary<MethodDefinition>;
18
- get allProperties(): Dictionary<PropertyDefinition>;
19
- get implementations(): InterfaceDefinition[];
20
- get allImplementations(): InterfaceDefinition[];
21
- getProperty(propName: string): PropertyDefinition | undefined;
22
- get type(): TypeDefinition;
23
- isSubClassOf(typeName: string): boolean;
24
- isSuperClassOf(typeName: string): boolean;
25
- toString(): string;
26
- }
@@ -1,90 +0,0 @@
1
- import { fillMethod, fillProperty, getClassDefinition, getInterfaceDefinition } from './index';
2
- export class ClassDefinition {
3
- constructor(def) {
4
- var _a, _b;
5
- this.name = def.name;
6
- this.superClassName = def.superClassName || 'Object';
7
- this.superClass = getClassDefinition(this.superClassName);
8
- this._implementationNames = def.implementations || [];
9
- this.methods = ((_a = def.methods) === null || _a === void 0 ? void 0 : _a.map(fillMethod)) || [];
10
- this.properties = ((_b = def.properties) === null || _b === void 0 ? void 0 : _b.map(fillProperty)) || [];
11
- this.jsClass = def.jsClass;
12
- }
13
- get allMethods() {
14
- const results = {};
15
- if (this.superClassName !== 'Object') {
16
- const superClassDef = getClassDefinition(this.superClassName);
17
- if (superClassDef) {
18
- Object.assign(results, Object.assign({}, superClassDef.allMethods));
19
- }
20
- }
21
- Object.assign(results, Object.assign({}, toDictionary(this.methods, it => [it.name, it])));
22
- return results;
23
- }
24
- get allProperties() {
25
- var _a;
26
- return Object.assign(((_a = this.superClass) === null || _a === void 0 ? void 0 : _a.allProperties) || {}, toDictionary(this.properties, it => [it.name, it]));
27
- }
28
- get implementations() {
29
- if (!this._implementations) {
30
- return mapNotNull(this._implementationNames, getInterfaceDefinition);
31
- }
32
- return this._implementations;
33
- }
34
- get allImplementations() {
35
- var _a, _b;
36
- if (this._allImplementations === undefined) {
37
- const result = new Set(this.implementations);
38
- this.implementations.forEach(interfaceDef => {
39
- interfaceDef.allImplementations.forEach(it => result.add(it));
40
- });
41
- (_b = (_a = this.superClass) === null || _a === void 0 ? void 0 : _a.allImplementations) === null || _b === void 0 ? void 0 : _b.forEach(it => result.add(it));
42
- this._allImplementations = Array.from(result);
43
- }
44
- return this._allImplementations;
45
- }
46
- getProperty(propName) {
47
- return this.properties.find(it => it.name === propName);
48
- }
49
- get type() {
50
- var _a, _b;
51
- const props = {};
52
- (_b = (_a = this.superClass) === null || _a === void 0 ? void 0 : _a.type.typeLiteralMembers) === null || _b === void 0 ? void 0 : _b.forEach(prop => (props[prop.name] = prop));
53
- this.properties.forEach(prop => (props[prop.name] = prop));
54
- return {
55
- name: this.name,
56
- typeLiteralMembers: Object.values(props)
57
- };
58
- }
59
- isSubClassOf(typeName) {
60
- var _a;
61
- if (this.name === typeName)
62
- return true;
63
- if ((_a = this.superClass) === null || _a === void 0 ? void 0 : _a.isSubClassOf(typeName))
64
- return true;
65
- return this.implementations.map(it => it.name).includes(typeName);
66
- }
67
- isSuperClassOf(typeName) {
68
- if (this.name === typeName)
69
- return true;
70
- const classDef = getClassDefinition(typeName);
71
- if (!classDef)
72
- return false;
73
- return classDef.isSubClassOf(this.name);
74
- }
75
- toString() {
76
- return `class ${this.name}`;
77
- }
78
- }
79
- function toDictionary(arr, handler) {
80
- const dict = {};
81
- arr.forEach(item => {
82
- const [key, value] = handler(item);
83
- dict[key] = value;
84
- });
85
- return dict;
86
- }
87
- function mapNotNull(arr, mapper) {
88
- return ((arr === null || arr === void 0 ? void 0 : arr.map(mapper).filter(it => it !== undefined)) || []);
89
- }
90
- //# sourceMappingURL=ClassDefinition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassDefinition.js","sourceRoot":"","sources":["../../src/reflect-types/ClassDefinition.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { RawEnumDefinition, TypeDefinition } from './reflect-definitions';
2
- export declare class EnumDefinition {
3
- readonly name: string;
4
- readonly members: Map<string, TypeDefinition>;
5
- constructor(def: RawEnumDefinition);
6
- get type(): TypeDefinition;
7
- get names(): string[];
8
- }
@@ -1,20 +0,0 @@
1
- export class EnumDefinition {
2
- constructor(def) {
3
- this.name = def.name;
4
- this.members = new Map();
5
- def.members.forEach(member => {
6
- const value = member.initializer === undefined ? { name: 'number' } : { literalValue: member.initializer };
7
- this.members.set(member.name, value);
8
- });
9
- }
10
- get type() {
11
- return {
12
- name: this.name,
13
- unionMembers: Array.from(this.members.values())
14
- };
15
- }
16
- get names() {
17
- return Array.from(this.members.keys());
18
- }
19
- }
20
- //# sourceMappingURL=EnumDefinition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnumDefinition.js","sourceRoot":"","sources":["../../src/reflect-types/EnumDefinition.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAIzB,YAAY,GAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;QACxB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,MAAM,KAAK,GACT,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,CAAA;YAC9F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAChD,CAAA;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;CACF"}
@@ -1,16 +0,0 @@
1
- import type { RawInterfaceDefinition, TypeDefinition } from './index';
2
- import { MethodDefinition, PropertyDefinition } from './index';
3
- export declare class InterfaceDefinition {
4
- readonly name: string;
5
- readonly methods: MethodDefinition[];
6
- readonly properties: PropertyDefinition[];
7
- private readonly _implementationNames;
8
- private _implementations?;
9
- private _allImplementations?;
10
- constructor(def: RawInterfaceDefinition);
11
- get implementations(): InterfaceDefinition[];
12
- get allImplementations(): InterfaceDefinition[];
13
- get type(): TypeDefinition;
14
- toString(): string;
15
- buildBaseObject(): {};
16
- }
@@ -1,49 +0,0 @@
1
- import { fillMethod, fillProperty, getInterfaceDefinition } from './index';
2
- import { mapNotNull, setValue } from './package';
3
- export class InterfaceDefinition {
4
- constructor(def) {
5
- var _a, _b;
6
- this.name = def.name;
7
- this._implementationNames = def.implementations || [];
8
- this.methods = ((_a = def.methods) === null || _a === void 0 ? void 0 : _a.map(fillMethod)) || [];
9
- this.properties = ((_b = def.properties) === null || _b === void 0 ? void 0 : _b.map(fillProperty)) || [];
10
- }
11
- get implementations() {
12
- if (!this._implementations) {
13
- this._implementations = mapNotNull(this._implementationNames, getInterfaceDefinition);
14
- }
15
- return this._implementations;
16
- }
17
- get allImplementations() {
18
- if (this._allImplementations === undefined) {
19
- const result = new Set(this.implementations);
20
- this.implementations.forEach(interfaceDef => {
21
- interfaceDef.allImplementations.forEach(it => result.add(it));
22
- });
23
- this._allImplementations = Array.from(result);
24
- }
25
- return this._allImplementations;
26
- }
27
- get type() {
28
- const props = {};
29
- this.allImplementations.forEach(parentInterface => {
30
- const interfaceProps = parentInterface.type.typeLiteralMembers;
31
- interfaceProps === null || interfaceProps === void 0 ? void 0 : interfaceProps.forEach(prop => (props[prop.name] = prop));
32
- });
33
- this.properties.forEach(prop => (props[prop.name] = prop));
34
- return {
35
- name: this.name,
36
- typeLiteralMembers: Object.values(props)
37
- };
38
- }
39
- toString() {
40
- return `interface ${this.name}`;
41
- }
42
- buildBaseObject() {
43
- const result = {};
44
- this.properties.forEach(it => setValue(result, it.name, undefined));
45
- this.methods.forEach(it => setValue(result, it.name, () => undefined));
46
- return result;
47
- }
48
- }
49
- //# sourceMappingURL=InterfaceDefinition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterfaceDefinition.js","sourceRoot":"","sources":["../../src/reflect-types/InterfaceDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,sBAAsB,EAGvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,OAAO,mBAAmB;IAQ9B,YAAY,GAA2B;;QACrC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACpB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,OAAO,GAAG,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,CAAC,UAAU,CAAC,KAAI,EAAE,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,CAAA,MAAA,GAAG,CAAC,UAAU,0CAAE,GAAG,CAAC,YAAY,CAAC,KAAI,EAAE,CAAA;IAC3D,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC1C,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED,IAAI,IAAI;QACN,MAAM,KAAK,GAA+C,EAAE,CAAA;QAC5D,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAChD,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAA;YAC9D,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC1D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACzC,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,aAAa,IAAI,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED,eAAe;QACb,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;QACtE,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- import { type RawMethodDefinition, type TypeDefinition } from './index';
2
- export declare class MethodDefinition {
3
- name: string;
4
- isPrivate: boolean;
5
- isStatic: boolean;
6
- isAsync: boolean;
7
- returnType: TypeDefinition;
8
- args: {
9
- name: string;
10
- type?: TypeDefinition;
11
- isOptional: boolean;
12
- }[];
13
- constructor(def: RawMethodDefinition);
14
- }
15
- export declare function fillMethod(rawMethod: RawMethodDefinition): MethodDefinition;