@typetron/framework 0.3.11 → 0.3.14
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/Container/Container.js +3 -3
- package/Database/Connection.d.ts +2 -5
- package/Database/Connection.d.ts.map +1 -1
- package/Database/Connection.js +4 -4
- package/Database/Decorators.d.ts +7 -2
- package/Database/Decorators.d.ts.map +1 -1
- package/Database/Decorators.js +6 -3
- package/Database/Decorators.js.map +1 -1
- package/Database/Drivers/DatabaseDriver.d.ts +4 -6
- package/Database/Drivers/DatabaseDriver.d.ts.map +1 -1
- package/Database/Drivers/DatabaseDriver.js.map +1 -1
- package/Database/Drivers/MySQL/Alter/index.d.ts +34 -0
- package/Database/Drivers/MySQL/Alter/index.d.ts.map +1 -0
- package/Database/Drivers/MySQL/Alter/index.js +65 -0
- package/Database/Drivers/MySQL/Alter/index.js.map +1 -0
- package/Database/Drivers/MySQL/ColumnDefinition.d.ts +7 -0
- package/Database/Drivers/MySQL/ColumnDefinition.d.ts.map +1 -0
- package/Database/Drivers/MySQL/ColumnDefinition.js +18 -0
- package/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -0
- package/Database/Drivers/MySQL/Create.d.ts +10 -0
- package/Database/Drivers/MySQL/Create.d.ts.map +1 -0
- package/Database/Drivers/MySQL/Create.js +43 -0
- package/Database/Drivers/MySQL/Create.js.map +1 -0
- package/Database/Drivers/MySQL/MysqlDriver.d.ts +7 -3
- package/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -1
- package/Database/Drivers/MySQL/MysqlDriver.js +27 -15
- package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
- package/Database/Drivers/MySQL/Schema.d.ts +12 -2
- package/Database/Drivers/MySQL/Schema.d.ts.map +1 -1
- package/Database/Drivers/MySQL/Schema.js +57 -3
- package/Database/Drivers/MySQL/Schema.js.map +1 -1
- package/Database/Drivers/MySQL/index.d.ts +1 -0
- package/Database/Drivers/MySQL/index.d.ts.map +1 -1
- package/Database/Drivers/MySQL/index.js +14 -0
- package/Database/Drivers/MySQL/index.js.map +1 -1
- package/Database/Drivers/SQL/Schema.d.ts +3 -8
- package/Database/Drivers/SQL/Schema.d.ts.map +1 -1
- package/Database/Drivers/SQL/Schema.js +21 -63
- package/Database/Drivers/SQL/Schema.js.map +1 -1
- package/Database/Drivers/SQL/Statements/Alter.d.ts +2 -2
- package/Database/Drivers/SQL/Statements/Alter.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/Alter.js +8 -8
- package/Database/Drivers/SQL/Statements/Alter.js.map +1 -1
- package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +2 -2
- package/Database/Drivers/SQL/Statements/BaseStatement.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/BaseStatement.js +3 -3
- package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
- package/Database/Drivers/SQL/Statements/Delete.d.ts +1 -1
- package/Database/Drivers/SQL/Statements/Delete.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/Delete.js +4 -6
- package/Database/Drivers/SQL/Statements/Delete.js.map +1 -1
- package/Database/Drivers/SQL/Statements/Insert.d.ts +1 -1
- package/Database/Drivers/SQL/Statements/Insert.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/Insert.js +3 -2
- package/Database/Drivers/SQL/Statements/Insert.js.map +1 -1
- package/Database/Drivers/SQL/Statements/Select.d.ts +1 -1
- package/Database/Drivers/SQL/Statements/Select.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/Select.js +9 -12
- package/Database/Drivers/SQL/Statements/Select.js.map +1 -1
- package/Database/Drivers/SQL/Statements/Update.d.ts +1 -1
- package/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -1
- package/Database/Drivers/SQL/Statements/Update.js +6 -8
- package/Database/Drivers/SQL/Statements/Update.js.map +1 -1
- package/Database/Drivers/SQL/index.d.ts +9 -0
- package/Database/Drivers/SQL/index.d.ts.map +1 -0
- package/Database/Drivers/SQL/index.js +3 -0
- package/Database/Drivers/SQL/index.js.map +1 -0
- package/Database/Drivers/SQLite/Create.d.ts +10 -0
- package/Database/Drivers/SQLite/Create.d.ts.map +1 -0
- package/Database/Drivers/SQLite/Create.js +42 -0
- package/Database/Drivers/SQLite/Create.js.map +1 -0
- package/Database/Drivers/SQLite/Schema.d.ts +12 -2
- package/Database/Drivers/SQLite/Schema.d.ts.map +1 -1
- package/Database/Drivers/SQLite/Schema.js +38 -3
- package/Database/Drivers/SQLite/Schema.js.map +1 -1
- package/Database/Drivers/SQLite/SqliteDriver.d.ts +7 -3
- package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
- package/Database/Drivers/SQLite/SqliteDriver.js +22 -9
- package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
- package/Database/Drivers/SQLite/index.d.ts +1 -0
- package/Database/Drivers/SQLite/index.d.ts.map +1 -1
- package/Database/Drivers/SQLite/index.js +13 -0
- package/Database/Drivers/SQLite/index.js.map +1 -1
- package/Database/Drivers/SchemaContract.d.ts +1 -3
- package/Database/Drivers/SchemaContract.d.ts.map +1 -1
- package/Database/Drivers/SchemaContract.js.map +1 -1
- package/Database/Drivers/Statement.d.ts +4 -3
- package/Database/Drivers/Statement.d.ts.map +1 -1
- package/Database/Drivers/Statement.js +4 -2
- package/Database/Drivers/Statement.js.map +1 -1
- package/Database/Entity.js +2 -1
- package/Database/Entity.js.map +1 -1
- package/Database/EntityQuery.d.ts +4 -4
- package/Database/EntityQuery.d.ts.map +1 -1
- package/Database/EntityQuery.js.map +1 -1
- package/Database/Expression.d.ts +2 -4
- package/Database/Expression.d.ts.map +1 -1
- package/Database/Expression.js +0 -6
- package/Database/Expression.js.map +1 -1
- package/Database/Fields.d.ts.map +1 -1
- package/Database/Fields.js +1 -1
- package/Database/Fields.js.map +1 -1
- package/Database/Helpers.d.ts.map +1 -1
- package/Database/Helpers.js +8 -2
- package/Database/Helpers.js.map +1 -1
- package/Database/Migrations/Migrator.d.ts +1 -1
- package/Database/Migrations/Migrator.d.ts.map +1 -1
- package/Database/Migrations/Migrator.js +1 -1
- package/Database/Migrations/Migrator.js.map +1 -1
- package/Database/Query.d.ts +11 -10
- package/Database/Query.d.ts.map +1 -1
- package/Database/Query.js +6 -4
- package/Database/Query.js.map +1 -1
- package/Database/StringExpression.d.ts +7 -0
- package/Database/StringExpression.d.ts.map +1 -0
- package/Database/StringExpression.js +15 -0
- package/Database/StringExpression.js.map +1 -0
- package/Database/Types.d.ts +3 -3
- package/Database/Types.d.ts.map +1 -1
- package/Database/Types.js +1 -1
- package/Database/index.d.ts +2 -1
- package/Database/index.d.ts.map +1 -1
- package/Database/index.js +1 -0
- package/Database/index.js.map +1 -1
- package/Encryption/index.d.ts.map +1 -1
- package/Encryption/index.js +4 -1
- package/Encryption/index.js.map +1 -1
- package/Framework/Config/DatabaseConfig.d.ts.map +1 -1
- package/Framework/Config/DatabaseConfig.js.map +1 -1
- package/Framework/Providers/DatabaseProvider.js +1 -1
- package/Framework/Providers/DatabaseProvider.js.map +1 -1
- package/Readme.md +123 -123
- package/Support/Array.d.ts +4 -2
- package/Support/Array.d.ts.map +1 -1
- package/Support/Array.js +8 -2
- package/Support/Array.js.map +1 -1
- package/package.json +66 -66
- package/tests/Database/Drivers/MySQL/AlterTest.d.ts +2 -0
- package/tests/Database/Drivers/MySQL/AlterTest.d.ts.map +1 -0
- package/tests/Database/Drivers/MySQL/AlterTest.js +144 -0
- package/tests/Database/Drivers/MySQL/AlterTest.js.map +1 -0
- package/tests/Database/Drivers/MySQL/CreateTest.d.ts +2 -0
- package/tests/Database/Drivers/MySQL/CreateTest.d.ts.map +1 -0
- package/tests/Database/Drivers/MySQL/CreateTest.js +64 -0
- package/tests/Database/Drivers/MySQL/CreateTest.js.map +1 -0
- package/tests/Database/Drivers/MysqlDriverTest.d.ts +2 -0
- package/tests/Database/Drivers/MysqlDriverTest.d.ts.map +1 -0
- package/tests/Database/Drivers/MysqlDriverTest.js +174 -0
- package/tests/Database/Drivers/MysqlDriverTest.js.map +1 -0
- package/tests/Database/Drivers/SqliteDriverTest.d.ts +2 -0
- package/tests/Database/Drivers/SqliteDriverTest.d.ts.map +1 -0
- package/tests/Database/Drivers/SqliteDriverTest.js +156 -0
- package/tests/Database/Drivers/SqliteDriverTest.js.map +1 -0
- package/tests/Database/QueryTest.js +59 -55
- package/tests/Database/QueryTest.js.map +1 -1
- package/tests/Database/utils.d.ts +6 -0
- package/tests/Database/utils.d.ts.map +1 -0
- package/tests/Database/utils.js +19 -0
- package/tests/Database/utils.js.map +1 -0
- package/tests/Support/ArrayTest.js +42 -2
- package/tests/Support/ArrayTest.js.map +1 -1
package/Readme.md
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
# Typetron
|
|
2
|
-
> **Note:** This project is a prototype in heavy development and not ready for production.
|
|
3
|
-
|
|
4
|
-
**[Typetron](https://typetron.org)** is a **modern web framework** built for Node.js, written in **Typescript**, that
|
|
5
|
-
allows you to build fully featured web applications.
|
|
6
|
-
Typetron is best suited for small sized to enterprise level apps.
|
|
7
|
-
Most of the core packages it uses were built from scratch in order to preserve the performance of the framework.
|
|
8
|
-
|
|
9
|
-
_(check [this tutorial](https://typetron.org/tutorials/blog) on how to get started with Typetron)_
|
|
10
|
-
|
|
11
|
-
### Prerequisites
|
|
12
|
-
- [NodeJs >=12 LTS](https://nodejs.org)
|
|
13
|
-
|
|
14
|
-
#### Features
|
|
15
|
-
Typetron aims to have all the features necessary for building any web app without the need for you
|
|
16
|
-
to search the internet for a package to use. Almost all the packages it has were built from scratch and are
|
|
17
|
-
available in the framework.
|
|
18
|
-
This was done to ensure that all the features you are using benefit from the latest language features.
|
|
19
|
-
Also, every package can be tuned for performance or updated in no time if needed.
|
|
20
|
-
|
|
21
|
-
##### Features List
|
|
22
|
-
|
|
23
|
-
[typetron.org](https://typetron.org/docs/)
|
|
24
|
-
|
|
25
|
-
##### Performance
|
|
26
|
-
Being built with packages created from scratch using the latest features of the language, Typetron comes with
|
|
27
|
-
excellent performance out of the box compared to other available frameworks.
|
|
28
|
-
|
|
29
|
-
##### Developer experience
|
|
30
|
-
Typetron's source code is built around developer's expectations: it is modern, clean and beautiful.
|
|
31
|
-
Also, the tools Typetron is providing are everything a developer needs to build his next awesome project.
|
|
32
|
-
|
|
33
|
-
##### Code sharing
|
|
34
|
-
A few years ago we wrote websites. Nowadays we write web applications. The web evolved alongside the tools we are
|
|
35
|
-
using. A typical web application is composed of at least two parts: a backend app and a frontend app.
|
|
36
|
-
This separation led to two different camps that have a very distinct line between them. Typetron provides tools to make
|
|
37
|
-
these two camps work together.
|
|
38
|
-
|
|
39
|
-
#### Source code examples
|
|
40
|
-
|
|
41
|
-
##### Entities
|
|
42
|
-
```ts
|
|
43
|
-
export class User extends Entity {
|
|
44
|
-
|
|
45
|
-
@PrimaryColumn()
|
|
46
|
-
id: number;
|
|
47
|
-
|
|
48
|
-
@Column()
|
|
49
|
-
email: string;
|
|
50
|
-
|
|
51
|
-
@Column()
|
|
52
|
-
name: string;
|
|
53
|
-
|
|
54
|
-
@Relation(() => Post, 'author')
|
|
55
|
-
posts: HasMany<Post> = [];
|
|
56
|
-
|
|
57
|
-
@Relation(() => Group, 'users')
|
|
58
|
-
group: BelongsTo<Group>;
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
##### Forms
|
|
62
|
-
```ts
|
|
63
|
-
export class UserForm extends Form {
|
|
64
|
-
@Field()
|
|
65
|
-
@Rules(
|
|
66
|
-
Required,
|
|
67
|
-
)
|
|
68
|
-
email: string;
|
|
69
|
-
|
|
70
|
-
@Field()
|
|
71
|
-
@Rules(
|
|
72
|
-
Required,
|
|
73
|
-
MinLength(5),
|
|
74
|
-
)
|
|
75
|
-
name: string;
|
|
76
|
-
|
|
77
|
-
@Field()
|
|
78
|
-
dateOfBirth: Date;
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
##### Controllers
|
|
83
|
-
|
|
84
|
-
```ts
|
|
85
|
-
@Controller('users')
|
|
86
|
-
export class UserController {
|
|
87
|
-
|
|
88
|
-
@Inject()
|
|
89
|
-
storage: Storage;
|
|
90
|
-
|
|
91
|
-
@AuthUser()
|
|
92
|
-
user: User;
|
|
93
|
-
|
|
94
|
-
@Get('me')
|
|
95
|
-
async me() {
|
|
96
|
-
return this.auth.user;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@Get()
|
|
100
|
-
async browse() {
|
|
101
|
-
return UserModel.from(User.get());
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@Get(':User')
|
|
105
|
-
read(user: User) {
|
|
106
|
-
return user;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@Put(':User')
|
|
110
|
-
update(user: User, userForm: UserForm) {
|
|
111
|
-
return user.fill(userForm).save();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
@Post()
|
|
115
|
-
create(userForm: UserForm) {
|
|
116
|
-
return User.create(userForm);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## License
|
|
123
|
-
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
|
|
1
|
+
# Typetron
|
|
2
|
+
> **Note:** This project is a prototype in heavy development and not ready for production.
|
|
3
|
+
|
|
4
|
+
**[Typetron](https://typetron.org)** is a **modern web framework** built for Node.js, written in **Typescript**, that
|
|
5
|
+
allows you to build fully featured web applications.
|
|
6
|
+
Typetron is best suited for small sized to enterprise level apps.
|
|
7
|
+
Most of the core packages it uses were built from scratch in order to preserve the performance of the framework.
|
|
8
|
+
|
|
9
|
+
_(check [this tutorial](https://typetron.org/tutorials/blog) on how to get started with Typetron)_
|
|
10
|
+
|
|
11
|
+
### Prerequisites
|
|
12
|
+
- [NodeJs >=12 LTS](https://nodejs.org)
|
|
13
|
+
|
|
14
|
+
#### Features
|
|
15
|
+
Typetron aims to have all the features necessary for building any web app without the need for you
|
|
16
|
+
to search the internet for a package to use. Almost all the packages it has were built from scratch and are
|
|
17
|
+
available in the framework.
|
|
18
|
+
This was done to ensure that all the features you are using benefit from the latest language features.
|
|
19
|
+
Also, every package can be tuned for performance or updated in no time if needed.
|
|
20
|
+
|
|
21
|
+
##### Features List
|
|
22
|
+
|
|
23
|
+
[typetron.org](https://typetron.org/docs/)
|
|
24
|
+
|
|
25
|
+
##### Performance
|
|
26
|
+
Being built with packages created from scratch using the latest features of the language, Typetron comes with
|
|
27
|
+
excellent performance out of the box compared to other available frameworks.
|
|
28
|
+
|
|
29
|
+
##### Developer experience
|
|
30
|
+
Typetron's source code is built around developer's expectations: it is modern, clean and beautiful.
|
|
31
|
+
Also, the tools Typetron is providing are everything a developer needs to build his next awesome project.
|
|
32
|
+
|
|
33
|
+
##### Code sharing
|
|
34
|
+
A few years ago we wrote websites. Nowadays we write web applications. The web evolved alongside the tools we are
|
|
35
|
+
using. A typical web application is composed of at least two parts: a backend app and a frontend app.
|
|
36
|
+
This separation led to two different camps that have a very distinct line between them. Typetron provides tools to make
|
|
37
|
+
these two camps work together.
|
|
38
|
+
|
|
39
|
+
#### Source code examples
|
|
40
|
+
|
|
41
|
+
##### Entities
|
|
42
|
+
```ts
|
|
43
|
+
export class User extends Entity {
|
|
44
|
+
|
|
45
|
+
@PrimaryColumn()
|
|
46
|
+
id: number;
|
|
47
|
+
|
|
48
|
+
@Column()
|
|
49
|
+
email: string;
|
|
50
|
+
|
|
51
|
+
@Column()
|
|
52
|
+
name: string;
|
|
53
|
+
|
|
54
|
+
@Relation(() => Post, 'author')
|
|
55
|
+
posts: HasMany<Post> = [];
|
|
56
|
+
|
|
57
|
+
@Relation(() => Group, 'users')
|
|
58
|
+
group: BelongsTo<Group>;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
##### Forms
|
|
62
|
+
```ts
|
|
63
|
+
export class UserForm extends Form {
|
|
64
|
+
@Field()
|
|
65
|
+
@Rules(
|
|
66
|
+
Required,
|
|
67
|
+
)
|
|
68
|
+
email: string;
|
|
69
|
+
|
|
70
|
+
@Field()
|
|
71
|
+
@Rules(
|
|
72
|
+
Required,
|
|
73
|
+
MinLength(5),
|
|
74
|
+
)
|
|
75
|
+
name: string;
|
|
76
|
+
|
|
77
|
+
@Field()
|
|
78
|
+
dateOfBirth: Date;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
##### Controllers
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
@Controller('users')
|
|
86
|
+
export class UserController {
|
|
87
|
+
|
|
88
|
+
@Inject()
|
|
89
|
+
storage: Storage;
|
|
90
|
+
|
|
91
|
+
@AuthUser()
|
|
92
|
+
user: User;
|
|
93
|
+
|
|
94
|
+
@Get('me')
|
|
95
|
+
async me() {
|
|
96
|
+
return this.auth.user;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@Get()
|
|
100
|
+
async browse() {
|
|
101
|
+
return UserModel.from(User.get());
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@Get(':User')
|
|
105
|
+
read(user: User) {
|
|
106
|
+
return user;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@Put(':User')
|
|
110
|
+
update(user: User, userForm: UserForm) {
|
|
111
|
+
return user.fill(userForm).save();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@Post()
|
|
115
|
+
create(userForm: UserForm) {
|
|
116
|
+
return User.create(userForm);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## License
|
|
123
|
+
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
|
package/Support/Array.d.ts
CHANGED
|
@@ -12,15 +12,17 @@ declare global {
|
|
|
12
12
|
first(this: T[], defaultValue?: T): T | undefined;
|
|
13
13
|
last(this: T[], defaultValue?: T): T | undefined;
|
|
14
14
|
remove<T>(this: T[], ...items: T[]): void;
|
|
15
|
-
where<K extends keyof T>(this: T[], property: K, value
|
|
15
|
+
where<K extends keyof T>(this: T[], property: K, value?: T[K]): T[];
|
|
16
|
+
whereNot<K extends keyof T>(this: T[], property: K, value?: T[K]): T[];
|
|
16
17
|
whereIn<K extends keyof T>(this: T[], property: K, value: T[K][]): T[];
|
|
18
|
+
whereNotIn<K extends keyof T>(this: T[], property: K, value: T[K][]): T[];
|
|
17
19
|
groupBy<K extends keyof T>(this: T[], property: K): Record<K, T[]>;
|
|
18
20
|
sortBy<K extends keyof T>(this: T[], key: K, order?: 'ASC' | 'DESC' | 1 | -1): T[];
|
|
19
21
|
groupBy<U extends string | number | symbol>(this: T[], callback: ArrayItemCallback<T, U>): Record<U, T[]>;
|
|
20
22
|
unique<K extends keyof T>(this: T[], key?: K | ((item: T, index: number) => unknown)): T[];
|
|
21
23
|
sum<T extends number>(this: T[]): number;
|
|
22
24
|
sum<K extends keyof T, U extends number>(key: K | ArrayItemCallback<T, U>): U;
|
|
23
|
-
whenNotEmpty(callback: () => void): this;
|
|
25
|
+
whenNotEmpty(this: T[], callback: (values: T[]) => void): this;
|
|
24
26
|
whenEmpty(callback: () => void): this;
|
|
25
27
|
}
|
|
26
28
|
}
|
package/Support/Array.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../Support/Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAA;AAET,aAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAE7E,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,KAAK,CAAC,CAAC;QACb,KAAK,IAAI,OAAO,CAAC;QAEjB,MAAM,IAAI,CAAC,CAAC;QAEZ,WAAW,IAAI,MAAM,CAAC;QAEtB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtF,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAGlF,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAE7G,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAEjD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAE1C,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../Support/Array.ts"],"names":[],"mappings":"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"}
|
package/Support/Array.js
CHANGED
|
@@ -26,11 +26,17 @@ Array.prototype.remove = function (...items) {
|
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
Array.prototype.where = function (property, value) {
|
|
29
|
-
return this.filter(item => item[property] === value);
|
|
29
|
+
return this.filter(item => value ? item[property] === value : item[property]);
|
|
30
|
+
};
|
|
31
|
+
Array.prototype.whereNot = function (property, value) {
|
|
32
|
+
return this.filter(item => value ? item[property] !== value : !item[property]);
|
|
30
33
|
};
|
|
31
34
|
Array.prototype.whereIn = function (property, values) {
|
|
32
35
|
return this.filter(item => values.includes(item[property]));
|
|
33
36
|
};
|
|
37
|
+
Array.prototype.whereNotIn = function (property, values) {
|
|
38
|
+
return this.filter(item => !values.includes(item[property]));
|
|
39
|
+
};
|
|
34
40
|
Array.prototype.first = function (defaultValue = undefined) {
|
|
35
41
|
const [first] = this;
|
|
36
42
|
return first || defaultValue;
|
|
@@ -90,7 +96,7 @@ Array.prototype.sum = function (property) {
|
|
|
90
96
|
};
|
|
91
97
|
Array.prototype.whenNotEmpty = function (callback) {
|
|
92
98
|
if (!this.empty()) {
|
|
93
|
-
callback();
|
|
99
|
+
callback(this);
|
|
94
100
|
}
|
|
95
101
|
return this;
|
|
96
102
|
};
|
package/Support/Array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../../Support/Array.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../../Support/Array.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@typetron/framework",
|
|
3
|
-
"description": "Modern Node.js framework for modern apps written in Typescript",
|
|
4
|
-
"license": "MIT",
|
|
5
|
-
"version": "0.3.
|
|
6
|
-
"keywords": [
|
|
7
|
-
"typetron",
|
|
8
|
-
"framework",
|
|
9
|
-
"web",
|
|
10
|
-
"backend",
|
|
11
|
-
"typescript"
|
|
12
|
-
],
|
|
13
|
-
"author": {
|
|
14
|
-
"email": "ionel@typetron.org",
|
|
15
|
-
"name": "Ionel Lupu"
|
|
16
|
-
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsc",
|
|
19
|
-
"dev": "tsc --watch",
|
|
20
|
-
"test": "mocha",
|
|
21
|
-
"test:watch": "mocha --watch",
|
|
22
|
-
"preversion": "npm test"
|
|
23
|
-
},
|
|
24
|
-
"engines": {
|
|
25
|
-
"node": ">= 12.13.0"
|
|
26
|
-
},
|
|
27
|
-
"dependencies": {
|
|
28
|
-
"bcryptjs": "^2.4.3",
|
|
29
|
-
"busboy": "^
|
|
30
|
-
"jsonwebtoken": "^8.5.1",
|
|
31
|
-
"mysql": "^2.18.1",
|
|
32
|
-
"sqlite3": "^5.0.2",
|
|
33
|
-
"uWebSockets.js": "github:uNetworking/uWebSockets.js#
|
|
34
|
-
},
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"@testdeck/mocha": "^0.1.2",
|
|
37
|
-
"@types/bcryptjs": "^2.4.2",
|
|
38
|
-
"@types/busboy": "^0.2.4",
|
|
39
|
-
"@types/chai": "^4.2.21",
|
|
40
|
-
"@types/jsonwebtoken": "^8.5.5",
|
|
41
|
-
"@types/mocha": "^9.0.0",
|
|
42
|
-
"
|
|
43
|
-
"@types/
|
|
44
|
-
"@types/
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"ts-node": "^10.2.1",
|
|
52
|
-
"tsconfig-paths": "^3.11.0",
|
|
53
|
-
"tslint": "^6.1.3",
|
|
54
|
-
"typescript": "4.1.6"
|
|
55
|
-
},
|
|
56
|
-
"repository": {
|
|
57
|
-
"type": "git",
|
|
58
|
-
"url": "https://github.com/typetron/framework.git"
|
|
59
|
-
},
|
|
60
|
-
"files": [
|
|
61
|
-
"**/*.ts",
|
|
62
|
-
"**/*.js",
|
|
63
|
-
"**/*.ts.map",
|
|
64
|
-
"**/*.js.map"
|
|
65
|
-
]
|
|
66
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@typetron/framework",
|
|
3
|
+
"description": "Modern Node.js framework for modern apps written in Typescript",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"version": "0.3.14",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"typetron",
|
|
8
|
+
"framework",
|
|
9
|
+
"web",
|
|
10
|
+
"backend",
|
|
11
|
+
"typescript"
|
|
12
|
+
],
|
|
13
|
+
"author": {
|
|
14
|
+
"email": "ionel@typetron.org",
|
|
15
|
+
"name": "Ionel Lupu"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"dev": "tsc --watch",
|
|
20
|
+
"test": "mocha",
|
|
21
|
+
"test:watch": "mocha --watch",
|
|
22
|
+
"preversion": "npm test"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">= 12.13.0"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"bcryptjs": "^2.4.3",
|
|
29
|
+
"busboy": "^1.6.0",
|
|
30
|
+
"jsonwebtoken": "^8.5.1",
|
|
31
|
+
"mysql": "^2.18.1",
|
|
32
|
+
"sqlite3": "^5.0.2",
|
|
33
|
+
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.14.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@testdeck/mocha": "^0.1.2",
|
|
37
|
+
"@types/bcryptjs": "^2.4.2",
|
|
38
|
+
"@types/busboy": "^0.2.4",
|
|
39
|
+
"@types/chai": "^4.2.21",
|
|
40
|
+
"@types/jsonwebtoken": "^8.5.5",
|
|
41
|
+
"@types/mocha": "^9.0.0",
|
|
42
|
+
"@types/mysql": "^2.15.19",
|
|
43
|
+
"@types/node": "^16.9.3",
|
|
44
|
+
"@types/sqlite3": "^3.1.7",
|
|
45
|
+
"chai": "^4.3.4",
|
|
46
|
+
"mocha": "^9.1.1",
|
|
47
|
+
"nyc": "^15.1.0",
|
|
48
|
+
"reflect-metadata": "^0.1.13",
|
|
49
|
+
"source-map-support": "^0.5.20",
|
|
50
|
+
"ts-mockito": "^2.6.1",
|
|
51
|
+
"ts-node": "^10.2.1",
|
|
52
|
+
"tsconfig-paths": "^3.11.0",
|
|
53
|
+
"tslint": "^6.1.3",
|
|
54
|
+
"typescript": "4.1.6"
|
|
55
|
+
},
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "https://github.com/typetron/framework.git"
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"**/*.ts",
|
|
62
|
+
"**/*.js",
|
|
63
|
+
"**/*.ts.map",
|
|
64
|
+
"**/*.js.map"
|
|
65
|
+
]
|
|
66
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlterTest.d.ts","sourceRoot":"","sources":["../../../../../tests/Database/Drivers/MySQL/AlterTest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const mocha_1 = require("@testdeck/mocha");
|
|
13
|
+
const utils_1 = require("@Typetron/tests/Database/utils");
|
|
14
|
+
const Alter_1 = require("@Typetron/Database/Drivers/MySQL/Alter");
|
|
15
|
+
let AlterTest = class AlterTest {
|
|
16
|
+
async addColumn() {
|
|
17
|
+
const addAge = new Alter_1.AddColumn({
|
|
18
|
+
name: 'age',
|
|
19
|
+
type: 'integer',
|
|
20
|
+
});
|
|
21
|
+
const statement = new Alter_1.Alter('test', [addAge]);
|
|
22
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test ADD age integer');
|
|
23
|
+
}
|
|
24
|
+
async addPrimaryKeyColumn() {
|
|
25
|
+
const addAge = new Alter_1.AddColumn({
|
|
26
|
+
name: 'age',
|
|
27
|
+
type: 'integer',
|
|
28
|
+
});
|
|
29
|
+
const statement = new Alter_1.Alter('test', [addAge]);
|
|
30
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test ADD age integer');
|
|
31
|
+
}
|
|
32
|
+
async dropColumn() {
|
|
33
|
+
const age = new Alter_1.DropColumn('age');
|
|
34
|
+
const statement = new Alter_1.Alter('test', [age]);
|
|
35
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test DROP COLUMN age');
|
|
36
|
+
}
|
|
37
|
+
async ModifyColumn() {
|
|
38
|
+
const age = new Alter_1.ModifyColumn({
|
|
39
|
+
name: 'age',
|
|
40
|
+
type: 'integer',
|
|
41
|
+
});
|
|
42
|
+
const statement = new Alter_1.Alter('test', [age]);
|
|
43
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test MODIFY age integer');
|
|
44
|
+
}
|
|
45
|
+
async ModifyColumnWithAutoIncrement() {
|
|
46
|
+
const age = new Alter_1.ModifyColumn({
|
|
47
|
+
name: 'age',
|
|
48
|
+
type: 'integer',
|
|
49
|
+
autoIncrement: 1
|
|
50
|
+
});
|
|
51
|
+
const statement = new Alter_1.Alter('test', [age]);
|
|
52
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test MODIFY age integer AUTO_INCREMENT');
|
|
53
|
+
}
|
|
54
|
+
async addPrimaryKeyConstraint() {
|
|
55
|
+
const age = new Alter_1.AddConstraint({
|
|
56
|
+
name: 'age',
|
|
57
|
+
type: 'integer',
|
|
58
|
+
}, Alter_1.Constraints.PrimaryKey);
|
|
59
|
+
const statement = new Alter_1.Alter('test', [age]);
|
|
60
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test ADD CONSTRAINT PRIMARY KEY (age)');
|
|
61
|
+
}
|
|
62
|
+
async addForeignKeyConstraint() {
|
|
63
|
+
const age = new Alter_1.AddConstraint({
|
|
64
|
+
name: 'age',
|
|
65
|
+
type: 'integer',
|
|
66
|
+
}, Alter_1.Constraints.ForeignKey);
|
|
67
|
+
const statement = new Alter_1.Alter('test', [age]);
|
|
68
|
+
utils_1.expectQuery(statement).toEqual('ALTER TABLE test ADD CONSTRAINT FOREIGN KEY (age)');
|
|
69
|
+
}
|
|
70
|
+
async altersMultipleColumns() {
|
|
71
|
+
const addAge = new Alter_1.AddColumn({
|
|
72
|
+
name: 'age',
|
|
73
|
+
type: 'integer',
|
|
74
|
+
});
|
|
75
|
+
const dropName = new Alter_1.DropColumn('age');
|
|
76
|
+
const dropTitle = new Alter_1.DropColumn('title');
|
|
77
|
+
const addAddress = new Alter_1.AddColumn({
|
|
78
|
+
name: 'address',
|
|
79
|
+
type: 'varchar(255)',
|
|
80
|
+
});
|
|
81
|
+
const statement = new Alter_1.Alter('test', [addAge, dropName, dropTitle, addAddress]);
|
|
82
|
+
utils_1.expectQuery(statement).toEqual(`
|
|
83
|
+
ALTER TABLE test
|
|
84
|
+
ADD age integer,
|
|
85
|
+
DROP
|
|
86
|
+
COLUMN age,
|
|
87
|
+
DROP
|
|
88
|
+
COLUMN title,
|
|
89
|
+
ADD address varchar(255)
|
|
90
|
+
`);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
__decorate([
|
|
94
|
+
mocha_1.test,
|
|
95
|
+
__metadata("design:type", Function),
|
|
96
|
+
__metadata("design:paramtypes", []),
|
|
97
|
+
__metadata("design:returntype", Promise)
|
|
98
|
+
], AlterTest.prototype, "addColumn", null);
|
|
99
|
+
__decorate([
|
|
100
|
+
mocha_1.test,
|
|
101
|
+
__metadata("design:type", Function),
|
|
102
|
+
__metadata("design:paramtypes", []),
|
|
103
|
+
__metadata("design:returntype", Promise)
|
|
104
|
+
], AlterTest.prototype, "addPrimaryKeyColumn", null);
|
|
105
|
+
__decorate([
|
|
106
|
+
mocha_1.test,
|
|
107
|
+
__metadata("design:type", Function),
|
|
108
|
+
__metadata("design:paramtypes", []),
|
|
109
|
+
__metadata("design:returntype", Promise)
|
|
110
|
+
], AlterTest.prototype, "dropColumn", null);
|
|
111
|
+
__decorate([
|
|
112
|
+
mocha_1.test,
|
|
113
|
+
__metadata("design:type", Function),
|
|
114
|
+
__metadata("design:paramtypes", []),
|
|
115
|
+
__metadata("design:returntype", Promise)
|
|
116
|
+
], AlterTest.prototype, "ModifyColumn", null);
|
|
117
|
+
__decorate([
|
|
118
|
+
mocha_1.test,
|
|
119
|
+
__metadata("design:type", Function),
|
|
120
|
+
__metadata("design:paramtypes", []),
|
|
121
|
+
__metadata("design:returntype", Promise)
|
|
122
|
+
], AlterTest.prototype, "ModifyColumnWithAutoIncrement", null);
|
|
123
|
+
__decorate([
|
|
124
|
+
mocha_1.test,
|
|
125
|
+
__metadata("design:type", Function),
|
|
126
|
+
__metadata("design:paramtypes", []),
|
|
127
|
+
__metadata("design:returntype", Promise)
|
|
128
|
+
], AlterTest.prototype, "addPrimaryKeyConstraint", null);
|
|
129
|
+
__decorate([
|
|
130
|
+
mocha_1.test,
|
|
131
|
+
__metadata("design:type", Function),
|
|
132
|
+
__metadata("design:paramtypes", []),
|
|
133
|
+
__metadata("design:returntype", Promise)
|
|
134
|
+
], AlterTest.prototype, "addForeignKeyConstraint", null);
|
|
135
|
+
__decorate([
|
|
136
|
+
mocha_1.test,
|
|
137
|
+
__metadata("design:type", Function),
|
|
138
|
+
__metadata("design:paramtypes", []),
|
|
139
|
+
__metadata("design:returntype", Promise)
|
|
140
|
+
], AlterTest.prototype, "altersMultipleColumns", null);
|
|
141
|
+
AlterTest = __decorate([
|
|
142
|
+
mocha_1.suite
|
|
143
|
+
], AlterTest);
|
|
144
|
+
//# sourceMappingURL=AlterTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlterTest.js","sourceRoot":"","sources":["../../../../../tests/Database/Drivers/MySQL/AlterTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateTest.d.ts","sourceRoot":"","sources":["../../../../../tests/Database/Drivers/MySQL/CreateTest.ts"],"names":[],"mappings":""}
|