velocious 1.0.92 → 1.0.94
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/package.json +1 -1
- package/src/application.js +19 -0
- package/src/cli/base-command.js +1 -0
- package/src/cli/commands/db/migrate.js +2 -0
- package/src/cli/commands/generate/base-models.js +7 -0
- package/src/cli/commands/generate/model.js +1 -1
- package/src/configuration-resolver.js +6 -3
- package/src/configuration.js +27 -4
- package/src/database/drivers/base-column.js +69 -0
- package/src/database/drivers/base-columns-index.js +19 -0
- package/src/database/drivers/base-foreign-key.js +12 -0
- package/src/database/drivers/base-table.js +32 -0
- package/src/database/drivers/base.js +125 -3
- package/src/database/drivers/mysql/index.js +89 -11
- package/src/database/migrator.js +17 -2
- package/src/database/query/drop-table-base.js +8 -0
- package/src/database/query/index.js +42 -0
- package/src/database/query-parser/from-parser.js +17 -6
- package/src/database/query-parser/group-parser.js +21 -8
- package/src/database/record/index.js +5 -0
- package/src/database/record/relationships/base.js +18 -3
- package/src/database/table-data/index.js +198 -6
- package/src/environment-handlers/base.js +58 -0
- package/src/environment-handlers/browser.js +0 -24
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +80 -0
- package/src/environment-handlers/node.js +6 -1
- package/src/initializer.js +4 -0
- package/src/logger.js +54 -2
- package/src/routes/base-route.js +25 -4
- package/src/routes/get-route.js +3 -1
- package/src/routes/namespace-route.js +3 -1
- package/src/routes/post-route.js +3 -1
- package/src/routes/resource-route.js +3 -1
- package/src/utils/backtrace-cleaner.js +10 -0
- package/src/database/drivers/mysql/connect-connection.js +0 -12
package/src/logger.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import Configuration from "./configuration.js"
|
|
2
|
+
import restArgsError from "./utils/rest-args-error.js"
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @param {string} message
|
|
6
|
+
* @returns {Promise<void>}
|
|
7
|
+
*/
|
|
3
8
|
function consoleLog(message) {
|
|
4
9
|
return new Promise((resolve) => {
|
|
5
10
|
if (process.stdout) {
|
|
@@ -10,6 +15,10 @@ function consoleLog(message) {
|
|
|
10
15
|
})
|
|
11
16
|
}
|
|
12
17
|
|
|
18
|
+
/**
|
|
19
|
+
* @param {string} message
|
|
20
|
+
* @returns {Promise<void>}
|
|
21
|
+
*/
|
|
13
22
|
function consoleError(message) {
|
|
14
23
|
return new Promise((resolve) => {
|
|
15
24
|
if (process.stderr) {
|
|
@@ -20,6 +29,10 @@ function consoleError(message) {
|
|
|
20
29
|
})
|
|
21
30
|
}
|
|
22
31
|
|
|
32
|
+
/**
|
|
33
|
+
* @param {string} message
|
|
34
|
+
* @returns {Promise<void>}
|
|
35
|
+
*/
|
|
23
36
|
function consoleWarn(message) {
|
|
24
37
|
return new Promise((resolve) => {
|
|
25
38
|
if (process.stderr) {
|
|
@@ -30,6 +43,9 @@ function consoleWarn(message) {
|
|
|
30
43
|
})
|
|
31
44
|
}
|
|
32
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @param {Array} messages
|
|
48
|
+
*/
|
|
33
49
|
function functionOrMessages(messages) {
|
|
34
50
|
if (messages.length === 1 && typeof messages[0] == "function") {
|
|
35
51
|
messages = messages[0]()
|
|
@@ -38,6 +54,11 @@ function functionOrMessages(messages) {
|
|
|
38
54
|
return messages
|
|
39
55
|
}
|
|
40
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Converts multiple message parts into a single string.
|
|
59
|
+
* @param {...any} messages - Parts to combine into a message
|
|
60
|
+
* @returns {string}
|
|
61
|
+
*/
|
|
41
62
|
function messagesToMessage(...messages) {
|
|
42
63
|
let message = ""
|
|
43
64
|
|
|
@@ -59,8 +80,15 @@ function messagesToMessage(...messages) {
|
|
|
59
80
|
}
|
|
60
81
|
|
|
61
82
|
class Logger {
|
|
62
|
-
|
|
63
|
-
|
|
83
|
+
/**
|
|
84
|
+
* @param {any} object
|
|
85
|
+
* @param {object} args
|
|
86
|
+
* @param {boolean} args.debug
|
|
87
|
+
*/
|
|
88
|
+
constructor(object, {debug, ...restArgs} = {}) {
|
|
89
|
+
restArgsError(restArgs)
|
|
90
|
+
|
|
91
|
+
this._debug = debug
|
|
64
92
|
|
|
65
93
|
if (typeof object == "string") {
|
|
66
94
|
this._subject = object
|
|
@@ -85,20 +113,40 @@ class Logger {
|
|
|
85
113
|
return this._configuration
|
|
86
114
|
}
|
|
87
115
|
|
|
116
|
+
/**
|
|
117
|
+
* @param {...Parameters<typeof consoleLog>} messages - forwarded args
|
|
118
|
+
*/
|
|
88
119
|
async debug(...messages) {
|
|
89
120
|
if (this._debug || this.getConfiguration()?.debug) {
|
|
90
121
|
await this.log(...messages)
|
|
91
122
|
}
|
|
92
123
|
}
|
|
93
124
|
|
|
125
|
+
/**
|
|
126
|
+
* @param {...Parameters<typeof functionOrMessages>} messages - forwarded args
|
|
127
|
+
*/
|
|
94
128
|
async log(...messages) {
|
|
95
129
|
await consoleLog(messagesToMessage(this._subject, ...functionOrMessages(messages)))
|
|
96
130
|
}
|
|
97
131
|
|
|
132
|
+
/**
|
|
133
|
+
* @param {...Parameters<typeof functionOrMessages>} messages - forwarded args
|
|
134
|
+
*/
|
|
98
135
|
async error(...messages) {
|
|
99
136
|
await consoleError(messagesToMessage(this._subject, ...functionOrMessages(messages)))
|
|
100
137
|
}
|
|
101
138
|
|
|
139
|
+
/**
|
|
140
|
+
* @param {boolean} newValue
|
|
141
|
+
* @returns {void}
|
|
142
|
+
*/
|
|
143
|
+
setDebug(newValue) {
|
|
144
|
+
this._debug = newValue
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* @param {...Parameters<typeof functionOrMessages>} messages - forwarded args
|
|
149
|
+
*/
|
|
102
150
|
async warn(...messages) {
|
|
103
151
|
await consoleWarn(messagesToMessage(this._subject, ...functionOrMessages(messages)))
|
|
104
152
|
}
|
|
@@ -106,6 +154,10 @@ class Logger {
|
|
|
106
154
|
|
|
107
155
|
export {Logger}
|
|
108
156
|
|
|
157
|
+
/**
|
|
158
|
+
* @param {any} object
|
|
159
|
+
* @param {...Parameters<typeof functionOrMessages>} messages - forwarded args
|
|
160
|
+
*/
|
|
109
161
|
export default async function logger(object, ...messages) {
|
|
110
162
|
const className = object.constructor.name
|
|
111
163
|
const configuration = object.configuration || Configuration.current()
|
package/src/routes/base-route.js
CHANGED
|
@@ -11,16 +11,28 @@ export function initBaseRoute() {
|
|
|
11
11
|
VelociousBaseRoute = class VelociousBaseRoute {
|
|
12
12
|
routes = []
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} name
|
|
16
|
+
*/
|
|
17
|
+
get(name) {
|
|
18
|
+
const route = new GetRoute({name})
|
|
16
19
|
|
|
17
20
|
this.routes.push(route)
|
|
18
21
|
}
|
|
19
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @interface
|
|
25
|
+
* @param {string} _path
|
|
26
|
+
*/
|
|
20
27
|
matchWithPath(_path) { // eslint-disable-line no-unused-vars
|
|
21
28
|
throw new Error(`No 'matchWithPath' implemented on ${this.constructor.name}`)
|
|
22
29
|
}
|
|
23
30
|
|
|
31
|
+
/**
|
|
32
|
+
* @param {string} name
|
|
33
|
+
* @param {function(NamespaceRoute) : void} callback
|
|
34
|
+
* @returns {void}
|
|
35
|
+
*/
|
|
24
36
|
namespace(name, callback) {
|
|
25
37
|
const route = new NamespaceRoute({name})
|
|
26
38
|
|
|
@@ -31,12 +43,21 @@ export function initBaseRoute() {
|
|
|
31
43
|
}
|
|
32
44
|
}
|
|
33
45
|
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
/**
|
|
47
|
+
* @param {string} name
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
post(name) {
|
|
51
|
+
const route = new PostRoute({name})
|
|
36
52
|
|
|
37
53
|
this.routes.push(route)
|
|
38
54
|
}
|
|
39
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @param {string} name
|
|
58
|
+
* @param {function(ResourceRoute) : void} callback
|
|
59
|
+
* @returns {void}
|
|
60
|
+
*/
|
|
40
61
|
resources(name, callback) {
|
|
41
62
|
const route = new ResourceRoute({name})
|
|
42
63
|
|
package/src/routes/get-route.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import BaseRoute, {initBaseRoute} from "./base-route.js"
|
|
2
2
|
import escapeStringRegexp from "escape-string-regexp"
|
|
3
|
+
import restArgsError from "../utils/rest-args-error.js"
|
|
3
4
|
|
|
4
5
|
initBaseRoute()
|
|
5
6
|
|
|
6
7
|
export default class VelociousRouteGetRoute extends BaseRoute {
|
|
7
|
-
constructor({name}) {
|
|
8
|
+
constructor({name, ...restArgs}) {
|
|
8
9
|
super()
|
|
10
|
+
restArgsError(restArgs)
|
|
9
11
|
this.name = name
|
|
10
12
|
this.regExp = new RegExp(`^(${escapeStringRegexp(name)})(.*)$`)
|
|
11
13
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import restArgsError from "../utils/rest-args-error.js"
|
|
1
2
|
import BaseRoute, {initBaseRoute} from "./base-route.js"
|
|
2
3
|
import escapeStringRegexp from "escape-string-regexp"
|
|
3
4
|
|
|
4
5
|
initBaseRoute()
|
|
5
6
|
|
|
6
7
|
export default class VelociousRouteNamespaceRoute extends BaseRoute {
|
|
7
|
-
constructor({name}) {
|
|
8
|
+
constructor({name, ...restArgs}) {
|
|
8
9
|
super()
|
|
10
|
+
restArgsError(restArgs)
|
|
9
11
|
this.name = name
|
|
10
12
|
this.regExp = new RegExp(`^(${escapeStringRegexp(name)})(.*)$`)
|
|
11
13
|
}
|
package/src/routes/post-route.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import BaseRoute, {initBaseRoute} from "./base-route.js"
|
|
2
2
|
import escapeStringRegexp from "escape-string-regexp"
|
|
3
|
+
import restArgsError from "../utils/rest-args-error.js"
|
|
3
4
|
|
|
4
5
|
initBaseRoute()
|
|
5
6
|
|
|
6
7
|
export default class VelociousRoutePostRoute extends BaseRoute {
|
|
7
|
-
constructor({name}) {
|
|
8
|
+
constructor({name, ...restArgs}) {
|
|
8
9
|
super()
|
|
10
|
+
restArgsError(restArgs)
|
|
9
11
|
this.name = name
|
|
10
12
|
this.regExp = new RegExp(`^(${escapeStringRegexp(name)})(.*)$`)
|
|
11
13
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import BaseRoute, {initBaseRoute} from "./base-route.js"
|
|
2
2
|
import escapeStringRegexp from "escape-string-regexp"
|
|
3
|
+
import restArgsError from "../utils/rest-args-error.js"
|
|
3
4
|
|
|
4
5
|
initBaseRoute()
|
|
5
6
|
|
|
6
7
|
export default class VelociousRouteResourceRoute extends BaseRoute {
|
|
7
|
-
constructor({name}) {
|
|
8
|
+
constructor({name, ...restArgs}) {
|
|
8
9
|
super()
|
|
10
|
+
restArgsError(restArgs)
|
|
9
11
|
this.name = name
|
|
10
12
|
this.regExp = new RegExp(`^(${escapeStringRegexp(name)})(.*)$`)
|
|
11
13
|
}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
export default class BacktraceCleaner {
|
|
2
|
+
/**
|
|
3
|
+
* @param {Error} error
|
|
4
|
+
* @returns {string}
|
|
5
|
+
*/
|
|
2
6
|
static getCleanedStack(error) {
|
|
3
7
|
return new BacktraceCleaner(error).getCleanedStack()
|
|
4
8
|
}
|
|
5
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @param {Error} error
|
|
12
|
+
*/
|
|
6
13
|
constructor(error) {
|
|
7
14
|
this.error = error
|
|
8
15
|
}
|
|
9
16
|
|
|
17
|
+
/**
|
|
18
|
+
* @returns {string}
|
|
19
|
+
*/
|
|
10
20
|
getCleanedStack() {
|
|
11
21
|
const backtrace = this.error.stack.split("\n")
|
|
12
22
|
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Async function to connect a MySQL connection
|
|
2
|
-
export default function connectConnection(connection) {
|
|
3
|
-
return new Promise((resolve, reject) => {
|
|
4
|
-
connection.connect((error) => {
|
|
5
|
-
if (error) {
|
|
6
|
-
reject(error)
|
|
7
|
-
} else {
|
|
8
|
-
resolve()
|
|
9
|
-
}
|
|
10
|
-
})
|
|
11
|
-
})
|
|
12
|
-
}
|