@adonisjs/core 6.1.5-2 → 6.1.5-21
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/build/commands/build.d.ts +10 -0
- package/build/commands/build.js +65 -22
- package/build/commands/commands.json +1 -1
- package/build/commands/configure.d.ts +30 -3
- package/build/commands/configure.js +103 -25
- package/build/commands/eject.d.ts +4 -0
- package/build/commands/eject.js +16 -8
- package/build/commands/generate_key.d.ts +4 -0
- package/build/commands/generate_key.js +15 -8
- package/build/commands/inspect_rcfile.d.ts +9 -0
- package/build/commands/inspect_rcfile.js +36 -0
- package/build/commands/list/routes.d.ts +23 -0
- package/build/commands/list/routes.js +29 -13
- package/build/commands/main.d.ts +4 -0
- package/build/commands/make/command.d.ts +7 -1
- package/build/commands/make/command.js +20 -7
- package/build/commands/make/controller.d.ts +10 -1
- package/build/commands/make/controller.js +35 -14
- package/build/commands/make/event.d.ts +7 -1
- package/build/commands/make/event.js +20 -8
- package/build/commands/make/exception.d.ts +14 -0
- package/build/commands/make/exception.js +37 -0
- package/build/commands/make/listener.d.ts +8 -1
- package/build/commands/make/listener.js +28 -12
- package/build/commands/make/middleware.d.ts +8 -1
- package/build/commands/make/middleware.js +21 -8
- package/build/commands/make/preload.d.ts +22 -0
- package/build/commands/make/preload.js +99 -0
- package/build/commands/make/provider.d.ts +7 -1
- package/build/commands/make/provider.js +28 -8
- package/build/commands/make/service.d.ts +14 -0
- package/build/commands/make/service.js +37 -0
- package/build/commands/make/test.d.ts +10 -1
- package/build/commands/make/test.js +46 -10
- package/build/commands/make/validator.d.ts +14 -0
- package/build/commands/make/validator.js +37 -0
- package/build/commands/make/view.d.ts +14 -0
- package/build/commands/make/view.js +37 -0
- package/build/commands/repl.d.ts +14 -0
- package/build/commands/repl.js +30 -0
- package/build/commands/serve.d.ts +12 -0
- package/build/commands/serve.js +78 -27
- package/build/commands/test.d.ts +32 -0
- package/build/commands/test.js +203 -0
- package/build/factories/app.js +8 -0
- package/build/factories/bodyparser.js +8 -0
- package/build/factories/core/ace.d.ts +4 -1
- package/build/factories/core/ace.js +11 -0
- package/build/factories/core/ignitor.d.ts +20 -1
- package/build/factories/core/ignitor.js +35 -1
- package/build/factories/core/main.js +8 -0
- package/build/factories/core/test_utils.d.ts +4 -1
- package/build/factories/core/test_utils.js +11 -0
- package/build/factories/encryption.js +8 -0
- package/build/factories/events.js +8 -0
- package/build/factories/hash.js +8 -0
- package/build/factories/http.js +8 -0
- package/build/factories/logger.js +8 -0
- package/build/factories/stubs.d.ts +10 -0
- package/build/factories/stubs.js +23 -1
- package/build/index.d.ts +6 -2
- package/build/index.js +14 -1
- package/build/modules/ace/codemods.d.ts +54 -0
- package/build/modules/ace/codemods.js +133 -0
- package/build/modules/ace/commands.d.ts +48 -0
- package/build/modules/ace/commands.js +54 -0
- package/build/modules/ace/create_kernel.d.ts +9 -0
- package/build/modules/ace/create_kernel.js +32 -1
- package/build/modules/ace/kernel.d.ts +4 -0
- package/build/modules/ace/kernel.js +12 -0
- package/build/modules/ace/main.js +8 -0
- package/build/modules/ace/shell.d.ts +9 -1
- package/build/modules/ace/shell.js +21 -0
- package/build/modules/app.js +8 -0
- package/build/modules/bodyparser/bodyparser_middleware.d.ts +4 -0
- package/build/modules/bodyparser/bodyparser_middleware.js +12 -0
- package/build/modules/bodyparser/main.js +8 -0
- package/build/modules/config.js +8 -0
- package/build/modules/container.js +8 -0
- package/build/modules/encryption.js +8 -0
- package/build/modules/env.js +8 -0
- package/build/modules/events.js +8 -0
- package/build/modules/hash/define_config.d.ts +4 -0
- package/build/modules/hash/define_config.js +23 -0
- package/build/modules/hash/drivers/argon.d.ts +1 -0
- package/build/modules/hash/drivers/argon.js +9 -0
- package/build/modules/hash/drivers/bcrypt.d.ts +1 -0
- package/build/modules/hash/drivers/bcrypt.js +9 -0
- package/build/modules/hash/drivers/scrypt.d.ts +1 -0
- package/build/modules/hash/drivers/scrypt.js +9 -0
- package/build/modules/hash/drivers_collection.d.ts +16 -4
- package/build/modules/hash/drivers_collection.js +31 -8
- package/build/modules/hash/main.d.ts +1 -0
- package/build/modules/hash/main.js +9 -0
- package/build/modules/http/main.d.ts +2 -0
- package/build/modules/http/main.js +10 -0
- package/build/modules/http/request_validator.d.ts +34 -0
- package/build/modules/http/request_validator.js +66 -0
- package/build/modules/logger.js +8 -0
- package/build/modules/repl.d.ts +1 -0
- package/build/modules/repl.js +9 -0
- package/build/providers/app_provider.d.ts +31 -2
- package/build/providers/app_provider.js +44 -15
- package/build/providers/edge_provider.d.ts +31 -0
- package/build/providers/edge_provider.js +69 -0
- package/build/providers/hash_provider.d.ts +22 -2
- package/build/providers/hash_provider.js +49 -7
- package/build/providers/http_provider.d.ts +17 -0
- package/build/providers/http_provider.js +26 -1
- package/build/providers/repl_provider.d.ts +13 -0
- package/build/providers/repl_provider.js +98 -0
- package/build/providers/vinejs_provider.d.ts +33 -0
- package/build/providers/vinejs_provider.js +84 -0
- package/build/services/ace.js +15 -0
- package/build/services/app.d.ts +8 -0
- package/build/services/app.js +16 -0
- package/build/services/config.js +11 -0
- package/build/services/emitter.js +13 -2
- package/build/services/encryption.js +13 -2
- package/build/services/hash.js +13 -2
- package/build/services/logger.js +13 -2
- package/build/services/repl.d.ts +3 -0
- package/build/services/repl.js +18 -0
- package/build/services/router.js +13 -2
- package/build/services/server.js +13 -2
- package/build/services/test_utils.js +15 -0
- package/build/src/cli_formatters/routes_list.d.ts +24 -1
- package/build/src/cli_formatters/routes_list.js +118 -0
- package/build/src/debug.d.ts +1 -1
- package/build/src/debug.js +8 -0
- package/build/src/exceptions.d.ts +1 -0
- package/build/src/exceptions.js +9 -0
- package/build/src/helpers/is.js +8 -0
- package/build/src/helpers/main.d.ts +1 -1
- package/build/src/helpers/main.js +9 -1
- package/build/src/helpers/parse_binding_reference.d.ts +40 -0
- package/build/src/helpers/parse_binding_reference.js +60 -0
- package/build/src/helpers/string.d.ts +26 -0
- package/build/src/helpers/string.js +15 -0
- package/build/src/helpers/types.d.ts +114 -16
- package/build/src/helpers/types.js +13 -0
- package/build/src/ignitor/ace.d.ts +12 -0
- package/build/src/ignitor/ace.js +50 -1
- package/build/src/ignitor/http.d.ts +9 -2
- package/build/src/ignitor/http.js +67 -0
- package/build/src/ignitor/main.d.ts +29 -1
- package/build/src/ignitor/main.js +56 -0
- package/build/src/ignitor/test.d.ts +10 -0
- package/build/src/ignitor/test.js +25 -0
- package/build/src/internal_helpers.d.ts +12 -5
- package/build/src/internal_helpers.js +35 -7
- package/build/src/test_utils/http.d.ts +10 -2
- package/build/src/test_utils/http.js +19 -0
- package/build/src/test_utils/main.d.ts +21 -3
- package/build/src/test_utils/main.js +27 -1
- package/build/src/types.d.ts +65 -4
- package/build/src/types.js +8 -0
- package/build/stubs/main.js +10 -0
- package/build/stubs/make/exception/main.stub +10 -0
- package/build/stubs/make/preload_file/main.stub +4 -0
- package/build/stubs/make/service/main.stub +4 -0
- package/build/stubs/make/validator/main.stub +5 -0
- package/build/stubs/make/view/main.stub +4 -0
- package/build/toolkit/commands/index_commands.d.ts +4 -0
- package/build/toolkit/commands/index_commands.js +13 -5
- package/build/toolkit/main.js +11 -0
- package/build/types/ace.js +8 -0
- package/build/types/app.js +8 -0
- package/build/types/bodyparser.js +8 -0
- package/build/types/container.js +8 -0
- package/build/types/encryption.js +8 -0
- package/build/types/events.js +8 -0
- package/build/types/hash.js +8 -0
- package/build/types/http.d.ts +7 -0
- package/build/types/http.js +8 -0
- package/build/types/logger.js +8 -0
- package/build/types/repl.d.ts +1 -0
- package/build/types/repl.js +9 -0
- package/package.json +83 -121
- package/build/commands/make/_base.d.ts +0 -6
- package/build/commands/make/_base.js +0 -19
- package/build/legacy/validator.d.ts +0 -1
- package/build/legacy/validator.js +0 -1
- package/build/modules/http.d.ts +0 -1
- package/build/modules/http.js +0 -1
- package/build/src/helpers/string_builder.d.ts +0 -23
- package/build/src/helpers/string_builder.js +0 -86
- package/build/stubs/index.js +0 -2
- /package/build/stubs/{index.d.ts → main.d.ts} +0 -0
package/build/commands/serve.js
CHANGED
|
@@ -1,20 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
1
9
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
10
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
11
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
12
|
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;
|
|
5
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
14
|
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
15
|
import { BaseCommand, flags } from '../modules/ace/main.js';
|
|
11
16
|
import { detectAssetsBundler, importAssembler, importTypeScript } from '../src/internal_helpers.js';
|
|
17
|
+
/**
|
|
18
|
+
* Serve command is used to run the AdonisJS HTTP server during development. The
|
|
19
|
+
* command under the hood runs the "bin/server.ts" file and watches for file
|
|
20
|
+
* system changes
|
|
21
|
+
*/
|
|
12
22
|
export default class Serve extends BaseCommand {
|
|
13
23
|
static commandName = 'serve';
|
|
14
24
|
static description = 'Start the development HTTP server along with the file watcher to perform restarts on file change';
|
|
25
|
+
static help = [
|
|
26
|
+
'Start the development server with file watcher using the following command.',
|
|
27
|
+
'```',
|
|
28
|
+
'{{ binaryName }} serve --watch',
|
|
29
|
+
'```',
|
|
30
|
+
'',
|
|
31
|
+
'The assets bundler dev server runs automatically after detecting vite config or webpack config files',
|
|
32
|
+
'You may pass vite CLI args using the --assets-args command line flag.',
|
|
33
|
+
'```',
|
|
34
|
+
'{{ binaryName }} serve --assets-args="--debug --base=/public"',
|
|
35
|
+
'```',
|
|
36
|
+
];
|
|
15
37
|
static options = {
|
|
16
38
|
staysAlive: true,
|
|
17
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Log a development dependency is missing
|
|
42
|
+
*/
|
|
18
43
|
#logMissingDevelopmentDependency(dependency) {
|
|
19
44
|
this.logger.error([
|
|
20
45
|
`Cannot find package "${dependency}"`,
|
|
@@ -24,6 +49,25 @@ export default class Serve extends BaseCommand {
|
|
|
24
49
|
'If you are running your application in production, then use "node bin/server.js" command to start the HTTP server',
|
|
25
50
|
].join('\n'));
|
|
26
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the assets bundler config
|
|
54
|
+
*/
|
|
55
|
+
async #getAssetsBundlerConfig() {
|
|
56
|
+
const assetsBundler = await detectAssetsBundler(this.app);
|
|
57
|
+
return assetsBundler
|
|
58
|
+
? {
|
|
59
|
+
serve: this.assets === false ? false : true,
|
|
60
|
+
driver: assetsBundler.name,
|
|
61
|
+
cmd: assetsBundler.devServer.command,
|
|
62
|
+
args: (assetsBundler.devServer.args || []).concat(this.assetsArgs || []),
|
|
63
|
+
}
|
|
64
|
+
: {
|
|
65
|
+
serve: false,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Runs the HTTP server
|
|
70
|
+
*/
|
|
27
71
|
async run() {
|
|
28
72
|
const assembler = await importAssembler(this.app);
|
|
29
73
|
if (!assembler) {
|
|
@@ -31,29 +75,35 @@ export default class Serve extends BaseCommand {
|
|
|
31
75
|
this.exitCode = 1;
|
|
32
76
|
return;
|
|
33
77
|
}
|
|
34
|
-
|
|
35
|
-
const devServer = new assembler.DevServer(this.app.appRoot, {
|
|
78
|
+
this.devServer = new assembler.DevServer(this.app.appRoot, {
|
|
36
79
|
clearScreen: this.clear === false ? false : true,
|
|
37
80
|
nodeArgs: this.parsed.nodeArgs,
|
|
38
81
|
scriptArgs: [],
|
|
39
|
-
assets:
|
|
40
|
-
? {
|
|
41
|
-
serve: this.assets === false ? false : true,
|
|
42
|
-
driver: assetsBundler.name,
|
|
43
|
-
cmd: assetsBundler.devServerCommand,
|
|
44
|
-
}
|
|
45
|
-
: {
|
|
46
|
-
serve: false,
|
|
47
|
-
},
|
|
82
|
+
assets: await this.#getAssetsBundlerConfig(),
|
|
48
83
|
metaFiles: this.app.rcFile.metaFiles,
|
|
49
84
|
});
|
|
50
|
-
|
|
51
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Share command logger with assembler, so that CLI flags like --no-ansi has
|
|
87
|
+
* similar impact for assembler logs as well.
|
|
88
|
+
*/
|
|
89
|
+
this.devServer.setLogger(this.logger);
|
|
90
|
+
/**
|
|
91
|
+
* Exit command when the dev server is closed
|
|
92
|
+
*/
|
|
93
|
+
this.devServer.onClose((exitCode) => {
|
|
52
94
|
this.exitCode = exitCode;
|
|
95
|
+
this.terminate();
|
|
53
96
|
});
|
|
54
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Exit command when the dev server crashes
|
|
99
|
+
*/
|
|
100
|
+
this.devServer.onError(() => {
|
|
55
101
|
this.exitCode = 1;
|
|
102
|
+
this.terminate();
|
|
56
103
|
});
|
|
104
|
+
/**
|
|
105
|
+
* Start the development server
|
|
106
|
+
*/
|
|
57
107
|
if (this.watch) {
|
|
58
108
|
const ts = await importTypeScript(this.app);
|
|
59
109
|
if (!ts) {
|
|
@@ -61,34 +111,35 @@ export default class Serve extends BaseCommand {
|
|
|
61
111
|
this.exitCode = 1;
|
|
62
112
|
return;
|
|
63
113
|
}
|
|
64
|
-
await devServer.startAndWatch(ts, { poll: this.poll || false });
|
|
114
|
+
await this.devServer.startAndWatch(ts, { poll: this.poll || false });
|
|
65
115
|
}
|
|
66
116
|
else {
|
|
67
|
-
await devServer.start();
|
|
117
|
+
await this.devServer.start();
|
|
68
118
|
}
|
|
69
119
|
}
|
|
70
120
|
}
|
|
71
121
|
__decorate([
|
|
72
|
-
flags.boolean({ description: 'Watch filesystem and restart the HTTP server on file change' })
|
|
73
|
-
__metadata("design:type", Boolean)
|
|
122
|
+
flags.boolean({ description: 'Watch filesystem and restart the HTTP server on file change' })
|
|
74
123
|
], Serve.prototype, "watch", void 0);
|
|
75
124
|
__decorate([
|
|
76
|
-
flags.boolean({ description: 'Use polling to detect filesystem changes' })
|
|
77
|
-
__metadata("design:type", Boolean)
|
|
125
|
+
flags.boolean({ description: 'Use polling to detect filesystem changes' })
|
|
78
126
|
], Serve.prototype, "poll", void 0);
|
|
79
127
|
__decorate([
|
|
80
128
|
flags.boolean({
|
|
81
129
|
description: 'Clear the terminal for new logs after file change',
|
|
82
130
|
showNegatedVariantInHelp: true,
|
|
83
131
|
default: true,
|
|
84
|
-
})
|
|
85
|
-
__metadata("design:type", Boolean)
|
|
132
|
+
})
|
|
86
133
|
], Serve.prototype, "clear", void 0);
|
|
87
134
|
__decorate([
|
|
88
135
|
flags.boolean({
|
|
89
136
|
description: 'Start assets bundler dev server',
|
|
90
137
|
showNegatedVariantInHelp: true,
|
|
91
138
|
default: true,
|
|
92
|
-
})
|
|
93
|
-
__metadata("design:type", Boolean)
|
|
139
|
+
})
|
|
94
140
|
], Serve.prototype, "assets", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
flags.array({
|
|
143
|
+
description: 'Define CLI arguments to pass to the assets bundler',
|
|
144
|
+
})
|
|
145
|
+
], Serve.prototype, "assetsArgs", void 0);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TestRunner } from '@adonisjs/assembler';
|
|
2
|
+
import type { CommandOptions } from '../types/ace.js';
|
|
3
|
+
import { BaseCommand } from '../modules/ace/main.js';
|
|
4
|
+
/**
|
|
5
|
+
* Test command is used to run tests with optional file watcher. Under the
|
|
6
|
+
* hood, we run "bin/test.js" file.
|
|
7
|
+
*/
|
|
8
|
+
export default class Test extends BaseCommand {
|
|
9
|
+
#private;
|
|
10
|
+
static commandName: string;
|
|
11
|
+
static description: string;
|
|
12
|
+
static options: CommandOptions;
|
|
13
|
+
testsRunner: TestRunner;
|
|
14
|
+
suites?: string[];
|
|
15
|
+
files?: string[];
|
|
16
|
+
tags?: string[];
|
|
17
|
+
groups?: string[];
|
|
18
|
+
tests?: string[];
|
|
19
|
+
reporters?: string[];
|
|
20
|
+
watch?: boolean;
|
|
21
|
+
poll?: boolean;
|
|
22
|
+
timeout?: number;
|
|
23
|
+
retries?: number;
|
|
24
|
+
failed?: boolean;
|
|
25
|
+
clear?: boolean;
|
|
26
|
+
assets?: boolean;
|
|
27
|
+
assetsArgs?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Runs tests
|
|
30
|
+
*/
|
|
31
|
+
run(): Promise<void>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
10
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
+
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;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
};
|
|
15
|
+
import { BaseCommand, flags, args } from '../modules/ace/main.js';
|
|
16
|
+
import { detectAssetsBundler, importAssembler, importTypeScript } from '../src/internal_helpers.js';
|
|
17
|
+
/**
|
|
18
|
+
* Test command is used to run tests with optional file watcher. Under the
|
|
19
|
+
* hood, we run "bin/test.js" file.
|
|
20
|
+
*/
|
|
21
|
+
export default class Test extends BaseCommand {
|
|
22
|
+
static commandName = 'test';
|
|
23
|
+
static description = 'Run tests along with the file watcher to re-run tests on file change';
|
|
24
|
+
static options = {
|
|
25
|
+
allowUnknownFlags: true,
|
|
26
|
+
staysAlive: true,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Log a development dependency is missing
|
|
30
|
+
*/
|
|
31
|
+
#logMissingDevelopmentDependency(dependency) {
|
|
32
|
+
this.logger.error([
|
|
33
|
+
`Cannot find package "${dependency}"`,
|
|
34
|
+
'',
|
|
35
|
+
`The "${dependency}" package is a development dependency and therefore you should run tests with development dependencies installed.`,
|
|
36
|
+
'',
|
|
37
|
+
'If you are run tests inside a CI, make sure the NODE_ENV is set to "development"',
|
|
38
|
+
].join('\n'));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Collection of unknown flags to pass to Japa
|
|
42
|
+
*/
|
|
43
|
+
#getPassthroughFlags() {
|
|
44
|
+
return this.parsed.unknownFlags
|
|
45
|
+
.map((flag) => {
|
|
46
|
+
const value = this.parsed.flags[flag];
|
|
47
|
+
/**
|
|
48
|
+
* Not mentioning value when value is "true"
|
|
49
|
+
*/
|
|
50
|
+
if (value === true) {
|
|
51
|
+
return [`--${flag}`];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Repeating flag multiple times when value is an array
|
|
55
|
+
*/
|
|
56
|
+
if (Array.isArray(value)) {
|
|
57
|
+
return value.map((v) => [`--${flag}`, v]);
|
|
58
|
+
}
|
|
59
|
+
return [`--${flag}`, value];
|
|
60
|
+
})
|
|
61
|
+
.flat(2);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Returns the assets bundler config
|
|
65
|
+
*/
|
|
66
|
+
async #getAssetsBundlerConfig() {
|
|
67
|
+
const assetsBundler = await detectAssetsBundler(this.app);
|
|
68
|
+
return assetsBundler
|
|
69
|
+
? {
|
|
70
|
+
serve: this.assets === false ? false : true,
|
|
71
|
+
driver: assetsBundler.name,
|
|
72
|
+
cmd: assetsBundler.devServer.command,
|
|
73
|
+
args: (assetsBundler.devServer.args || []).concat(this.assetsArgs || []),
|
|
74
|
+
}
|
|
75
|
+
: {
|
|
76
|
+
serve: false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Runs tests
|
|
81
|
+
*/
|
|
82
|
+
async run() {
|
|
83
|
+
const assembler = await importAssembler(this.app);
|
|
84
|
+
if (!assembler) {
|
|
85
|
+
this.#logMissingDevelopmentDependency('@adonisjs/assembler');
|
|
86
|
+
this.exitCode = 1;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.testsRunner = new assembler.TestRunner(this.app.appRoot, {
|
|
90
|
+
clearScreen: this.clear === false ? false : true,
|
|
91
|
+
nodeArgs: this.parsed.nodeArgs,
|
|
92
|
+
scriptArgs: this.#getPassthroughFlags(),
|
|
93
|
+
assets: await this.#getAssetsBundlerConfig(),
|
|
94
|
+
filters: {
|
|
95
|
+
suites: this.suites,
|
|
96
|
+
files: this.files,
|
|
97
|
+
groups: this.groups,
|
|
98
|
+
tags: this.tags,
|
|
99
|
+
tests: this.tests,
|
|
100
|
+
},
|
|
101
|
+
failed: this.failed,
|
|
102
|
+
retries: this.retries,
|
|
103
|
+
timeout: this.timeout,
|
|
104
|
+
reporters: this.reporters,
|
|
105
|
+
suites: this.app.rcFile.tests.suites.map((suite) => {
|
|
106
|
+
return {
|
|
107
|
+
name: suite.name,
|
|
108
|
+
files: suite.files,
|
|
109
|
+
};
|
|
110
|
+
}),
|
|
111
|
+
metaFiles: this.app.rcFile.metaFiles,
|
|
112
|
+
});
|
|
113
|
+
/**
|
|
114
|
+
* Share command logger with assembler, so that CLI flags like --no-ansi has
|
|
115
|
+
* similar impact for assembler logs as well.
|
|
116
|
+
*/
|
|
117
|
+
this.testsRunner.setLogger(this.logger);
|
|
118
|
+
/**
|
|
119
|
+
* Exit command when the test runner is closed
|
|
120
|
+
*/
|
|
121
|
+
this.testsRunner.onClose((exitCode) => {
|
|
122
|
+
this.exitCode = exitCode;
|
|
123
|
+
this.terminate();
|
|
124
|
+
});
|
|
125
|
+
/**
|
|
126
|
+
* Exit command when the dev server crashes
|
|
127
|
+
*/
|
|
128
|
+
this.testsRunner.onError(() => {
|
|
129
|
+
this.exitCode = 1;
|
|
130
|
+
this.terminate();
|
|
131
|
+
});
|
|
132
|
+
/**
|
|
133
|
+
* Start the test runner in watch mode
|
|
134
|
+
*/
|
|
135
|
+
if (this.watch) {
|
|
136
|
+
const ts = await importTypeScript(this.app);
|
|
137
|
+
if (!ts) {
|
|
138
|
+
this.#logMissingDevelopmentDependency('typescript');
|
|
139
|
+
this.exitCode = 1;
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
await this.testsRunner.runAndWatch(ts, { poll: this.poll || false });
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
await this.testsRunner.run();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
__decorate([
|
|
150
|
+
args.spread({
|
|
151
|
+
description: 'Mention suite names to run tests for selected suites',
|
|
152
|
+
required: false,
|
|
153
|
+
})
|
|
154
|
+
], Test.prototype, "suites", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
flags.array({ description: 'Filter tests by the filename' })
|
|
157
|
+
], Test.prototype, "files", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
flags.array({ description: 'Filter tests by tags' })
|
|
160
|
+
], Test.prototype, "tags", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
flags.array({ description: 'Filter tests by parent group title' })
|
|
163
|
+
], Test.prototype, "groups", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
flags.array({ description: 'Filter tests by test title' })
|
|
166
|
+
], Test.prototype, "tests", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
flags.array({ description: 'Activate one or more test reporters' })
|
|
169
|
+
], Test.prototype, "reporters", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
flags.boolean({ description: 'Watch filesystem and re-run tests on file change' })
|
|
172
|
+
], Test.prototype, "watch", void 0);
|
|
173
|
+
__decorate([
|
|
174
|
+
flags.boolean({ description: 'Use polling to detect filesystem changes' })
|
|
175
|
+
], Test.prototype, "poll", void 0);
|
|
176
|
+
__decorate([
|
|
177
|
+
flags.number({ description: 'Define default timeout for all tests' })
|
|
178
|
+
], Test.prototype, "timeout", void 0);
|
|
179
|
+
__decorate([
|
|
180
|
+
flags.number({ description: 'Define default retries for all tests' })
|
|
181
|
+
], Test.prototype, "retries", void 0);
|
|
182
|
+
__decorate([
|
|
183
|
+
flags.boolean({ description: 'Execute tests failed during the last run' })
|
|
184
|
+
], Test.prototype, "failed", void 0);
|
|
185
|
+
__decorate([
|
|
186
|
+
flags.boolean({
|
|
187
|
+
description: 'Clear the terminal for new logs after file change',
|
|
188
|
+
showNegatedVariantInHelp: true,
|
|
189
|
+
default: true,
|
|
190
|
+
})
|
|
191
|
+
], Test.prototype, "clear", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
flags.boolean({
|
|
194
|
+
description: 'Start assets bundler dev server.',
|
|
195
|
+
showNegatedVariantInHelp: true,
|
|
196
|
+
default: true,
|
|
197
|
+
})
|
|
198
|
+
], Test.prototype, "assets", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
flags.array({
|
|
201
|
+
description: 'Define CLI arguments to pass to the assets bundler',
|
|
202
|
+
})
|
|
203
|
+
], Test.prototype, "assetsArgs", void 0);
|
package/build/factories/app.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
2
2
|
import { Ignitor } from '../../src/ignitor/main.js';
|
|
3
3
|
import type { IgnitorOptions } from '../../src/types.js';
|
|
4
4
|
import type { Kernel } from '../../modules/ace/kernel.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates an instance of Ace kernel
|
|
7
|
+
*/
|
|
5
8
|
export declare class AceFactory {
|
|
6
9
|
make(ignitor: Ignitor): Promise<Kernel>;
|
|
7
10
|
make(appRoot: URL, options: IgnitorOptions): Promise<Kernel>;
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
1
9
|
import { IgnitorFactory } from './ignitor.js';
|
|
2
10
|
import { Ignitor } from '../../src/ignitor/main.js';
|
|
3
11
|
import { createAceKernel } from '../../modules/ace/create_kernel.js';
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of Ace kernel
|
|
14
|
+
*/
|
|
4
15
|
export class AceFactory {
|
|
5
16
|
async make(ignitorOrAppRoot, options) {
|
|
6
17
|
if (ignitorOrAppRoot instanceof Ignitor) {
|
|
@@ -1,16 +1,35 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
2
2
|
import { Ignitor } from '../../src/ignitor/main.js';
|
|
3
3
|
import type { ApplicationService, IgnitorOptions } from '../../src/types.js';
|
|
4
4
|
type FactoryParameters = {
|
|
5
5
|
rcFileContents: Record<string, any>;
|
|
6
6
|
config: Record<string, any>;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Ignitor factory creates an instance of the AdonisJS ignitor
|
|
10
|
+
*/
|
|
8
11
|
export declare class IgnitorFactory {
|
|
9
12
|
#private;
|
|
13
|
+
/**
|
|
14
|
+
* Define preload actions to run.
|
|
15
|
+
*/
|
|
10
16
|
preload(action: (app: ApplicationService) => void | Promise<void>): this;
|
|
17
|
+
/**
|
|
18
|
+
* Merge custom factory parameters
|
|
19
|
+
*/
|
|
11
20
|
merge(params: Partial<FactoryParameters>): this;
|
|
21
|
+
/**
|
|
22
|
+
* Load core provider when booting the app
|
|
23
|
+
*/
|
|
12
24
|
withCoreProviders(): this;
|
|
25
|
+
/**
|
|
26
|
+
* Merge default config for the core features. A shallow merge
|
|
27
|
+
* is performed.
|
|
28
|
+
*/
|
|
13
29
|
withCoreConfig(): this;
|
|
30
|
+
/**
|
|
31
|
+
* Create ignitor instance
|
|
32
|
+
*/
|
|
14
33
|
create(appRoot: URL, options: IgnitorOptions): Ignitor;
|
|
15
34
|
}
|
|
16
35
|
export {};
|
|
@@ -1,23 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
1
9
|
import { Ignitor } from '../../src/ignitor/main.js';
|
|
2
|
-
import { defineConfig as defineHttpConfig } from '../../modules/http.js';
|
|
10
|
+
import { defineConfig as defineHttpConfig } from '../../modules/http/main.js';
|
|
3
11
|
import { defineConfig as defineLoggerConfig } from '../../modules/logger.js';
|
|
4
12
|
import { defineConfig as defineHashConfig } from '../../modules/hash/main.js';
|
|
5
13
|
import { defineConfig as defineBodyParserConfig } from '../../modules/bodyparser/main.js';
|
|
14
|
+
/**
|
|
15
|
+
* Ignitor factory creates an instance of the AdonisJS ignitor
|
|
16
|
+
*/
|
|
6
17
|
export class IgnitorFactory {
|
|
7
18
|
#preloadActions = [];
|
|
8
19
|
#parameters = {};
|
|
20
|
+
/**
|
|
21
|
+
* A flag to know if we should load the core providers
|
|
22
|
+
*/
|
|
9
23
|
#loadCoreProviders = false;
|
|
24
|
+
/**
|
|
25
|
+
* Define preload actions to run.
|
|
26
|
+
*/
|
|
10
27
|
preload(action) {
|
|
11
28
|
this.#preloadActions.push(action);
|
|
12
29
|
return this;
|
|
13
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Merge core providers with user defined providers
|
|
33
|
+
*/
|
|
14
34
|
#mergeCoreProviders(providers) {
|
|
15
35
|
return [
|
|
16
36
|
'@adonisjs/core/providers/app_provider',
|
|
17
37
|
'@adonisjs/core/providers/hash_provider',
|
|
18
38
|
'@adonisjs/core/providers/http_provider',
|
|
39
|
+
'@adonisjs/core/providers/repl_provider',
|
|
19
40
|
].concat(providers || []);
|
|
20
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Merge custom factory parameters
|
|
44
|
+
*/
|
|
21
45
|
merge(params) {
|
|
22
46
|
if (params.config) {
|
|
23
47
|
this.#parameters.config = Object.assign(this.#parameters.config || {}, params.config);
|
|
@@ -27,10 +51,17 @@ export class IgnitorFactory {
|
|
|
27
51
|
}
|
|
28
52
|
return this;
|
|
29
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Load core provider when booting the app
|
|
56
|
+
*/
|
|
30
57
|
withCoreProviders() {
|
|
31
58
|
this.#loadCoreProviders = true;
|
|
32
59
|
return this;
|
|
33
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Merge default config for the core features. A shallow merge
|
|
63
|
+
* is performed.
|
|
64
|
+
*/
|
|
34
65
|
withCoreConfig() {
|
|
35
66
|
this.merge({
|
|
36
67
|
config: {
|
|
@@ -58,6 +89,9 @@ export class IgnitorFactory {
|
|
|
58
89
|
});
|
|
59
90
|
return this;
|
|
60
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Create ignitor instance
|
|
94
|
+
*/
|
|
61
95
|
create(appRoot, options) {
|
|
62
96
|
return new Ignitor(appRoot, options).tap((app) => {
|
|
63
97
|
app.booted(async () => {
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
1
9
|
export { AceFactory } from './ace.js';
|
|
2
10
|
export { StubsFactory } from '../stubs.js';
|
|
3
11
|
export { IgnitorFactory } from './ignitor.js';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
2
2
|
import { Ignitor } from '../../index.js';
|
|
3
3
|
import type { IgnitorOptions } from '../../src/types.js';
|
|
4
4
|
import { TestUtils } from '../../src/test_utils/main.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates an instance of TestUtils class
|
|
7
|
+
*/
|
|
5
8
|
export declare class TestUtilsFactory {
|
|
6
9
|
create(ignitor: Ignitor): TestUtils;
|
|
7
10
|
create(appRoot: URL, options: IgnitorOptions): TestUtils;
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adonisjs/core
|
|
3
|
+
*
|
|
4
|
+
* (c) AdonisJS
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
1
9
|
import { Ignitor } from '../../index.js';
|
|
2
10
|
import { IgnitorFactory } from './ignitor.js';
|
|
3
11
|
import { TestUtils } from '../../src/test_utils/main.js';
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of TestUtils class
|
|
14
|
+
*/
|
|
4
15
|
export class TestUtilsFactory {
|
|
5
16
|
create(ignitorOrAppRoot, options) {
|
|
6
17
|
if (ignitorOrAppRoot instanceof Ignitor) {
|
package/build/factories/hash.js
CHANGED
package/build/factories/http.js
CHANGED