typia 4.0.0 → 4.0.1-dev.20230605
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/lib/programmers/ApplicationProgrammer.js +1 -1
- package/lib/programmers/internal/application_alias.d.ts +5 -0
- package/lib/programmers/internal/{application_definition.js → application_alias.js} +10 -10
- package/lib/programmers/internal/application_alias.js.map +1 -0
- package/lib/programmers/internal/application_array.js +19 -41
- package/lib/programmers/internal/application_array.js.map +1 -1
- package/lib/programmers/internal/application_native.js +3 -3
- package/lib/programmers/internal/application_object.js +5 -5
- package/lib/programmers/internal/application_schema.js +4 -4
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_tuple.js +8 -30
- package/lib/programmers/internal/application_tuple.js.map +1 -1
- package/lib/schemas/IJsonComponents.d.ts +1 -12
- package/lib/schemas/IJsonSchema.d.ts +1 -1
- package/package.json +1 -1
- package/src/IRandomGenerator.ts +34 -34
- package/src/factories/IdentifierFactory.ts +65 -65
- package/src/factories/MetadataCollection.ts +254 -254
- package/src/factories/MetadataFactory.ts +40 -40
- package/src/factories/MetadataTagFactory.ts +300 -300
- package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
- package/src/factories/internal/metadata/emplace_metadata_definition.ts +35 -35
- package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
- package/src/factories/internal/metadata/explore_metadata.ts +66 -66
- package/src/factories/internal/metadata/iterate_metadata.ts +77 -77
- package/src/factories/internal/metadata/iterate_metadata_array.ts +25 -25
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +130 -130
- package/src/factories/internal/metadata/iterate_metadata_definition.ts +30 -30
- package/src/factories/internal/metadata/iterate_metadata_object.ts +49 -49
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +68 -68
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
- package/src/factories/internal/metadata/iterate_metadata_union.ts +68 -68
- package/src/metadata/IMetadata.ts +27 -27
- package/src/metadata/IMetadataAlias.ts +12 -12
- package/src/metadata/IMetadataApplication.ts +7 -7
- package/src/metadata/IMetadataArray.ts +10 -10
- package/src/metadata/IMetadataCollection.ts +11 -11
- package/src/metadata/IMetadataDictionary.ts +14 -14
- package/src/metadata/IMetadataObject.ts +18 -18
- package/src/metadata/IMetadataProperty.ts +11 -11
- package/src/metadata/IMetadataTuple.ts +10 -10
- package/src/metadata/Metadata.ts +585 -585
- package/src/metadata/MetadataAlias.ts +61 -61
- package/src/metadata/MetadataArray.ts +52 -52
- package/src/metadata/MetadataObject.ts +114 -114
- package/src/metadata/MetadataProperty.ts +64 -64
- package/src/metadata/MetadataTuple.ts +53 -53
- package/src/programmers/ApplicationProgrammer.ts +55 -55
- package/src/programmers/AssertProgrammer.ts +291 -291
- package/src/programmers/CheckerProgrammer.ts +1182 -1182
- package/src/programmers/CloneProgrammer.ts +595 -595
- package/src/programmers/FeatureProgrammer.ts +495 -495
- package/src/programmers/IsProgrammer.ts +250 -250
- package/src/programmers/LiteralsProgrammer.ts +66 -66
- package/src/programmers/PruneProgrammer.ts +550 -550
- package/src/programmers/RandomProgrammer.ts +589 -589
- package/src/programmers/StringifyProgrammer.ts +990 -990
- package/src/programmers/ValidateProgrammer.ts +313 -313
- package/src/programmers/helpers/FunctionImporeter.ts +78 -78
- package/src/programmers/helpers/RandomJoiner.ts +173 -173
- package/src/programmers/helpers/UnionExplorer.ts +301 -301
- package/src/programmers/helpers/UnionPredicator.ts +81 -81
- package/src/programmers/helpers/disable_function_importer_declare.ts +26 -26
- package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
- package/src/programmers/internal/{application_definition.ts → application_alias.ts} +45 -45
- package/src/programmers/internal/application_array.ts +30 -64
- package/src/programmers/internal/application_boolean.ts +15 -15
- package/src/programmers/internal/application_constant.ts +26 -26
- package/src/programmers/internal/application_default.ts +17 -17
- package/src/programmers/internal/application_native.ts +39 -39
- package/src/programmers/internal/application_number.ts +74 -74
- package/src/programmers/internal/application_object.ts +167 -167
- package/src/programmers/internal/application_schema.ts +156 -164
- package/src/programmers/internal/application_tuple.ts +47 -77
- package/src/programmers/internal/check_union_array_like.ts +329 -329
- package/src/programmers/internal/feature_object_entries.ts +63 -63
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
- package/src/schemas/IJsonApplication.ts +8 -8
- package/src/schemas/IJsonComponents.ts +34 -45
- package/src/schemas/IJsonSchema.ts +134 -134
- package/src/transformers/CallExpressionTransformer.ts +179 -179
- package/src/transformers/FileTransformer.ts +47 -47
- package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +104 -104
- package/src/transformers/features/miscellaneous/MetadataTransformer.ts +53 -53
- package/src/utils/ArrayUtil.ts +45 -45
- package/src/utils/RandomGenerator.ts +81 -81
- package/lib/programmers/internal/application_definition.d.ts +0 -5
- package/lib/programmers/internal/application_definition.js.map +0 -1
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { ClassProperties } from "../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataTuple } from "./IMetadataTuple";
|
|
4
|
-
import { Metadata } from "./Metadata";
|
|
5
|
-
|
|
6
|
-
export class MetadataTuple {
|
|
7
|
-
public readonly name: string;
|
|
8
|
-
public readonly elements: Metadata[];
|
|
9
|
-
|
|
10
|
-
public readonly index: number | null;
|
|
11
|
-
public readonly recursive: boolean;
|
|
12
|
-
public readonly nullables: boolean[];
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
private constructor(props: ClassProperties<MetadataTuple>) {
|
|
18
|
-
this.name = props.name;
|
|
19
|
-
this.elements = props.elements;
|
|
20
|
-
this.index = props.index;
|
|
21
|
-
this.recursive = props.recursive;
|
|
22
|
-
this.nullables = props.nullables;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
public static _From_without_elements(
|
|
29
|
-
props: Omit<IMetadataTuple, "elements">,
|
|
30
|
-
): MetadataTuple {
|
|
31
|
-
return this.create({
|
|
32
|
-
name: props.name,
|
|
33
|
-
index: props.index,
|
|
34
|
-
elements: null!,
|
|
35
|
-
recursive: props.recursive,
|
|
36
|
-
nullables: props.nullables.slice(),
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public static create(props: ClassProperties<MetadataTuple>): MetadataTuple {
|
|
41
|
-
return new MetadataTuple(props);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public toJSON(): IMetadataTuple {
|
|
45
|
-
return {
|
|
46
|
-
name: this.name,
|
|
47
|
-
index: this.index,
|
|
48
|
-
elements: this.elements.map((elem) => elem.toJSON()),
|
|
49
|
-
recursive: this.recursive,
|
|
50
|
-
nullables: this.nullables.slice(),
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
import { ClassProperties } from "../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataTuple } from "./IMetadataTuple";
|
|
4
|
+
import { Metadata } from "./Metadata";
|
|
5
|
+
|
|
6
|
+
export class MetadataTuple {
|
|
7
|
+
public readonly name: string;
|
|
8
|
+
public readonly elements: Metadata[];
|
|
9
|
+
|
|
10
|
+
public readonly index: number | null;
|
|
11
|
+
public readonly recursive: boolean;
|
|
12
|
+
public readonly nullables: boolean[];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
private constructor(props: ClassProperties<MetadataTuple>) {
|
|
18
|
+
this.name = props.name;
|
|
19
|
+
this.elements = props.elements;
|
|
20
|
+
this.index = props.index;
|
|
21
|
+
this.recursive = props.recursive;
|
|
22
|
+
this.nullables = props.nullables;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
public static _From_without_elements(
|
|
29
|
+
props: Omit<IMetadataTuple, "elements">,
|
|
30
|
+
): MetadataTuple {
|
|
31
|
+
return this.create({
|
|
32
|
+
name: props.name,
|
|
33
|
+
index: props.index,
|
|
34
|
+
elements: null!,
|
|
35
|
+
recursive: props.recursive,
|
|
36
|
+
nullables: props.nullables.slice(),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public static create(props: ClassProperties<MetadataTuple>): MetadataTuple {
|
|
41
|
+
return new MetadataTuple(props);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public toJSON(): IMetadataTuple {
|
|
45
|
+
return {
|
|
46
|
+
name: this.name,
|
|
47
|
+
index: this.index,
|
|
48
|
+
elements: this.elements.map((elem) => elem.toJSON()),
|
|
49
|
+
recursive: this.recursive,
|
|
50
|
+
nullables: this.nullables.slice(),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { Metadata } from "../metadata/Metadata";
|
|
2
|
-
import { IJsonApplication } from "../schemas/IJsonApplication";
|
|
3
|
-
import { IJsonComponents } from "../schemas/IJsonComponents";
|
|
4
|
-
import { IJsonSchema } from "../schemas/IJsonSchema";
|
|
5
|
-
|
|
6
|
-
import { application_schema } from "./internal/application_schema";
|
|
7
|
-
|
|
8
|
-
export namespace ApplicationProgrammer {
|
|
9
|
-
export interface IOptions {
|
|
10
|
-
purpose: "ajv" | "swagger";
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
export namespace IOptions {
|
|
17
|
-
export const complement = (options?: Partial<IOptions>): IOptions => {
|
|
18
|
-
const purpose: "swagger" | "ajv" = options?.purpose ?? "swagger";
|
|
19
|
-
return {
|
|
20
|
-
purpose,
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated Use `write()` function instead
|
|
27
|
-
*/
|
|
28
|
-
export const generate = (
|
|
29
|
-
metadatas: Array<Metadata>,
|
|
30
|
-
options?: Partial<IOptions>,
|
|
31
|
-
): IJsonApplication => write(options)(metadatas);
|
|
32
|
-
|
|
33
|
-
export const write =
|
|
34
|
-
(options?: Partial<IOptions>) =>
|
|
35
|
-
(metadatas: Array<Metadata>): IJsonApplication => {
|
|
36
|
-
const fullOptions: IOptions = IOptions.complement(options);
|
|
37
|
-
const components: IJsonComponents = {
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
const generator = application_schema(fullOptions)(true)(components);
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
schemas: metadatas.map((meta, i) => {
|
|
44
|
-
const schema: IJsonSchema | null = generator(meta)({});
|
|
45
|
-
if (schema === null)
|
|
46
|
-
throw new Error(
|
|
47
|
-
`Error on typia.application(): invalid type on argument - (${meta.getName()}, ${i})`,
|
|
48
|
-
);
|
|
49
|
-
return schema;
|
|
50
|
-
}),
|
|
51
|
-
components,
|
|
52
|
-
...fullOptions,
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
}
|
|
1
|
+
import { Metadata } from "../metadata/Metadata";
|
|
2
|
+
import { IJsonApplication } from "../schemas/IJsonApplication";
|
|
3
|
+
import { IJsonComponents } from "../schemas/IJsonComponents";
|
|
4
|
+
import { IJsonSchema } from "../schemas/IJsonSchema";
|
|
5
|
+
|
|
6
|
+
import { application_schema } from "./internal/application_schema";
|
|
7
|
+
|
|
8
|
+
export namespace ApplicationProgrammer {
|
|
9
|
+
export interface IOptions {
|
|
10
|
+
purpose: "ajv" | "swagger";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export namespace IOptions {
|
|
17
|
+
export const complement = (options?: Partial<IOptions>): IOptions => {
|
|
18
|
+
const purpose: "swagger" | "ajv" = options?.purpose ?? "swagger";
|
|
19
|
+
return {
|
|
20
|
+
purpose,
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use `write()` function instead
|
|
27
|
+
*/
|
|
28
|
+
export const generate = (
|
|
29
|
+
metadatas: Array<Metadata>,
|
|
30
|
+
options?: Partial<IOptions>,
|
|
31
|
+
): IJsonApplication => write(options)(metadatas);
|
|
32
|
+
|
|
33
|
+
export const write =
|
|
34
|
+
(options?: Partial<IOptions>) =>
|
|
35
|
+
(metadatas: Array<Metadata>): IJsonApplication => {
|
|
36
|
+
const fullOptions: IOptions = IOptions.complement(options);
|
|
37
|
+
const components: IJsonComponents = {
|
|
38
|
+
schemas: {},
|
|
39
|
+
};
|
|
40
|
+
const generator = application_schema(fullOptions)(true)(components);
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
schemas: metadatas.map((meta, i) => {
|
|
44
|
+
const schema: IJsonSchema | null = generator(meta)({});
|
|
45
|
+
if (schema === null)
|
|
46
|
+
throw new Error(
|
|
47
|
+
`Error on typia.application(): invalid type on argument - (${meta.getName()}, ${i})`,
|
|
48
|
+
);
|
|
49
|
+
return schema;
|
|
50
|
+
}),
|
|
51
|
+
components,
|
|
52
|
+
...fullOptions,
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}
|