ts-class-to-openapi 1.0.5 → 1.0.6
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/README.md +368 -882
- package/dist/__test__/entities/additional-test-classes.d.ts +12 -0
- package/dist/__test__/entities/decorated-classes.d.ts +54 -0
- package/dist/__test__/entities/nested-classes.d.ts +70 -0
- package/dist/__test__/entities/pure-classes.d.ts +37 -0
- package/dist/__test__/entities/schema-validation-classes.d.ts +35 -0
- package/dist/__test__/index.d.ts +3 -9
- package/dist/__test__/test.d.ts +4 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +475 -1324
- package/dist/index.js +474 -1324
- package/dist/run.d.ts +1 -1
- package/dist/run.js +1062 -1350
- package/dist/transformer.d.ts +1 -575
- package/dist/transformer.fixtures.d.ts +21 -0
- package/dist/types.d.ts +38 -3
- package/package.json +16 -15
- package/dist/__test__/entities/address.entity.d.ts +0 -5
- package/dist/__test__/entities/array.entity.d.ts +0 -7
- package/dist/__test__/entities/broken.entity.d.ts +0 -7
- package/dist/__test__/entities/circular.entity.d.ts +0 -59
- package/dist/__test__/entities/complete.entity.d.ts +0 -16
- package/dist/__test__/entities/complex-generics.entity.d.ts +0 -33
- package/dist/__test__/entities/comprehensive-enum.entity.d.ts +0 -23
- package/dist/__test__/entities/enum.entity.d.ts +0 -29
- package/dist/__test__/entities/generic.entity.d.ts +0 -11
- package/dist/__test__/entities/optional-properties.entity.d.ts +0 -11
- package/dist/__test__/entities/plain.entity.d.ts +0 -19
- package/dist/__test__/entities/simple.entity.d.ts +0 -5
- package/dist/__test__/entities/upload.entity.d.ts +0 -8
- package/dist/__test__/entities/user-role-generic.entity.d.ts +0 -13
- package/dist/__test__/plain.test.d.ts +0 -1
- package/dist/__test__/ref-pattern.test.d.ts +0 -1
- package/dist/__test__/singleton-behavior.test.d.ts +0 -1
- package/dist/__test__/test-entities/duplicate-name.entity.d.ts +0 -5
- package/dist/__test__/test-entities/generic.entity.d.ts +0 -11
- /package/dist/__test__/{circular-reference.test.d.ts → testCases/debug.test.d.ts} +0 -0
- /package/dist/__test__/{enum.test.d.ts → testCases/decorated-classes.test.d.ts} +0 -0
- /package/dist/__test__/{generic-types.test.d.ts → testCases/edge-cases.test.d.ts} +0 -0
- /package/dist/__test__/{integration.test.d.ts → testCases/nested-classes.test.d.ts} +0 -0
- /package/dist/__test__/{main.test.d.ts → testCases/pure-classes.test.d.ts} +0 -0
- /package/dist/__test__/{optional-properties.test.d.ts → testCases/schema-validation.test.d.ts} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Additional test classes for pure TypeScript classes tests
|
|
3
|
+
* These classes are used in the pure-classes.test.ts file
|
|
4
|
+
*/
|
|
5
|
+
export declare class OptionalOnlyClass {
|
|
6
|
+
optionalProp?: string;
|
|
7
|
+
anotherOptional?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class UnionTypeClass {
|
|
10
|
+
stringOrNumber: string | number;
|
|
11
|
+
optionalUnion?: boolean | string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare enum UserStatus {
|
|
2
|
+
ACTIVE = "active",
|
|
3
|
+
INACTIVE = "inactive",
|
|
4
|
+
PENDING = "pending",
|
|
5
|
+
SUSPENDED = "suspended"
|
|
6
|
+
}
|
|
7
|
+
export declare enum Priority {
|
|
8
|
+
LOW = 1,
|
|
9
|
+
MEDIUM = 2,
|
|
10
|
+
HIGH = 3,
|
|
11
|
+
CRITICAL = 4
|
|
12
|
+
}
|
|
13
|
+
export declare class DecoratedAddress {
|
|
14
|
+
street: string;
|
|
15
|
+
city: string;
|
|
16
|
+
state: string;
|
|
17
|
+
zipCode: string;
|
|
18
|
+
country: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class DecoratedUser {
|
|
21
|
+
id: number;
|
|
22
|
+
name: string;
|
|
23
|
+
email: string;
|
|
24
|
+
age: number;
|
|
25
|
+
status: UserStatus;
|
|
26
|
+
isActive?: boolean;
|
|
27
|
+
tags: string[];
|
|
28
|
+
address: DecoratedAddress;
|
|
29
|
+
createdAt: Date;
|
|
30
|
+
updatedAt?: Date;
|
|
31
|
+
}
|
|
32
|
+
export declare class DecoratedProduct {
|
|
33
|
+
id: number;
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
price: number;
|
|
37
|
+
currency: string;
|
|
38
|
+
categories: string[];
|
|
39
|
+
inStock: boolean;
|
|
40
|
+
quantity?: number;
|
|
41
|
+
images?: string[];
|
|
42
|
+
}
|
|
43
|
+
export declare class DecoratedTask {
|
|
44
|
+
id: number;
|
|
45
|
+
title: string;
|
|
46
|
+
description: string;
|
|
47
|
+
priority: Priority;
|
|
48
|
+
completed: boolean;
|
|
49
|
+
dueDate: Date;
|
|
50
|
+
assignedTo?: DecoratedUser;
|
|
51
|
+
tags?: string[];
|
|
52
|
+
createdAt: Date;
|
|
53
|
+
completedAt?: Date;
|
|
54
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nested TypeScript classes to test object relationships
|
|
3
|
+
*/
|
|
4
|
+
export declare class Address {
|
|
5
|
+
street: string;
|
|
6
|
+
city: string;
|
|
7
|
+
state: string;
|
|
8
|
+
zipCode: string;
|
|
9
|
+
country: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class Role {
|
|
12
|
+
id: number;
|
|
13
|
+
name: string;
|
|
14
|
+
permissions: string[];
|
|
15
|
+
level: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class Company {
|
|
18
|
+
name: string;
|
|
19
|
+
industry: string;
|
|
20
|
+
foundedYear: number;
|
|
21
|
+
employees: number;
|
|
22
|
+
}
|
|
23
|
+
export declare class EmergencyContact {
|
|
24
|
+
name: string;
|
|
25
|
+
phone: string;
|
|
26
|
+
relationship: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class NestedUser {
|
|
29
|
+
id: number;
|
|
30
|
+
name: string;
|
|
31
|
+
email: string;
|
|
32
|
+
address: Address;
|
|
33
|
+
roles: Role[];
|
|
34
|
+
company: Company;
|
|
35
|
+
alternativeAddresses: Address[];
|
|
36
|
+
emergencyContact?: EmergencyContact;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Deep nesting example
|
|
40
|
+
*/
|
|
41
|
+
export declare class Department {
|
|
42
|
+
id: number;
|
|
43
|
+
name: string;
|
|
44
|
+
budget: number;
|
|
45
|
+
}
|
|
46
|
+
export declare class Team {
|
|
47
|
+
id: number;
|
|
48
|
+
name: string;
|
|
49
|
+
department: Department;
|
|
50
|
+
members: TeamMember[];
|
|
51
|
+
}
|
|
52
|
+
export declare class TeamMember {
|
|
53
|
+
id: number;
|
|
54
|
+
name: string;
|
|
55
|
+
email: string;
|
|
56
|
+
role: string;
|
|
57
|
+
startDate: Date;
|
|
58
|
+
}
|
|
59
|
+
export declare class Subsidiary {
|
|
60
|
+
name: string;
|
|
61
|
+
location: Address;
|
|
62
|
+
established: Date;
|
|
63
|
+
}
|
|
64
|
+
export declare class Organization {
|
|
65
|
+
id: number;
|
|
66
|
+
name: string;
|
|
67
|
+
teams: Team[];
|
|
68
|
+
headquarters: Address;
|
|
69
|
+
subsidiaries: Subsidiary[];
|
|
70
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure TypeScript class without any decorators
|
|
3
|
+
* Used to test basic type inference and transformation
|
|
4
|
+
*/
|
|
5
|
+
export declare class PureUser {
|
|
6
|
+
id: number;
|
|
7
|
+
name: string;
|
|
8
|
+
email: string;
|
|
9
|
+
age: number;
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
tags: string[];
|
|
12
|
+
metadata: Record<string, any>;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
phone?: string;
|
|
15
|
+
bio?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Pure TypeScript class with primitive types only
|
|
19
|
+
*/
|
|
20
|
+
export declare class SimplePerson {
|
|
21
|
+
firstName: string;
|
|
22
|
+
lastName: string;
|
|
23
|
+
age: number;
|
|
24
|
+
isEmployed: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Pure TypeScript class with arrays
|
|
28
|
+
*/
|
|
29
|
+
export declare class Product {
|
|
30
|
+
id: number;
|
|
31
|
+
name: string;
|
|
32
|
+
price: number;
|
|
33
|
+
categories: string[];
|
|
34
|
+
scores: number[];
|
|
35
|
+
isAvailable: boolean;
|
|
36
|
+
description?: string;
|
|
37
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classes for testing schema validation
|
|
3
|
+
*/
|
|
4
|
+
export declare class TypeMappingTest {
|
|
5
|
+
stringProp: string;
|
|
6
|
+
numberProp: number;
|
|
7
|
+
booleanProp: boolean;
|
|
8
|
+
arrayProp: string[];
|
|
9
|
+
objectProp: Record<string, any>;
|
|
10
|
+
dateProp: Date;
|
|
11
|
+
}
|
|
12
|
+
export declare class NestedSchema {
|
|
13
|
+
id: number;
|
|
14
|
+
name: string;
|
|
15
|
+
nested: {
|
|
16
|
+
prop1: string;
|
|
17
|
+
prop2: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare class CircularA {
|
|
21
|
+
id: number;
|
|
22
|
+
name: string;
|
|
23
|
+
refToB: CircularB;
|
|
24
|
+
}
|
|
25
|
+
export declare class CircularB {
|
|
26
|
+
id: number;
|
|
27
|
+
description: string;
|
|
28
|
+
refToA: CircularA;
|
|
29
|
+
}
|
|
30
|
+
export declare class RequiredFieldsTest {
|
|
31
|
+
required1: string;
|
|
32
|
+
required2: number;
|
|
33
|
+
optional1?: string;
|
|
34
|
+
optional2?: number;
|
|
35
|
+
}
|
package/dist/__test__/index.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import './
|
|
2
|
-
import './
|
|
3
|
-
import './
|
|
4
|
-
import './optional-properties.test';
|
|
5
|
-
import './generic-types.test';
|
|
6
|
-
import './enum.test';
|
|
7
|
-
import './circular-reference.test';
|
|
8
|
-
import './ref-pattern.test';
|
|
9
|
-
import './singleton-behavior.test';
|
|
1
|
+
import './testCases/pure-classes.test';
|
|
2
|
+
import './testCases/decorated-classes.test';
|
|
3
|
+
import './testCases/nested-classes.test';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { transform
|
|
1
|
+
import { transform } from './transformer';
|
|
2
2
|
import { SchemaType, TransformerOptions } from './types';
|
|
3
|
-
export { transform,
|
|
3
|
+
export { transform, type SchemaType, type TransformerOptions };
|