@adonisjs/core 6.1.5-2 → 6.1.5-20
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.js +9 -0
- package/build/modules/http/request_validator.d.ts +44 -0
- package/build/modules/http/request_validator.js +74 -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 +10 -0
- package/build/providers/edge_provider.js +22 -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 +35 -0
- package/build/providers/vinejs_provider.d.ts +5 -0
- package/build/providers/vinejs_provider.js +13 -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/bindings/edge/main.d.ts +7 -0
- package/build/src/bindings/edge/main.js +58 -0
- package/build/src/bindings/edge/types.d.ts +18 -0
- package/build/src/bindings/edge/types.js +9 -0
- package/build/src/bindings/repl.d.ts +6 -0
- package/build/src/bindings/repl.js +78 -0
- package/build/src/bindings/vinejs/main.d.ts +13 -0
- package/build/src/bindings/vinejs/main.js +76 -0
- package/build/src/bindings/vinejs/types.d.ts +12 -0
- package/build/src/bindings/vinejs/types.js +9 -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.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.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/modules/{http.d.ts → http/main.d.ts} +0 -0
- /package/build/stubs/{index.d.ts → main.d.ts} +0 -0
|
@@ -1,11 +1,26 @@
|
|
|
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 he from 'he';
|
|
2
10
|
import prettyHrTime from 'pretty-hrtime';
|
|
3
11
|
import string from '@poppinss/utils/string';
|
|
12
|
+
import StringBuilder from '@poppinss/utils/string_builder';
|
|
13
|
+
/**
|
|
14
|
+
* Collection of string helpers to transform a string value.
|
|
15
|
+
*/
|
|
4
16
|
const stringHelpers = {
|
|
5
17
|
...string,
|
|
6
18
|
toSentence: string.sentence,
|
|
7
19
|
ordinalize: string.ordinal,
|
|
8
20
|
generateRandom: string.random,
|
|
21
|
+
create(value) {
|
|
22
|
+
return new StringBuilder(value);
|
|
23
|
+
},
|
|
9
24
|
prettyHrTime(time, options) {
|
|
10
25
|
return prettyHrTime(time, options);
|
|
11
26
|
},
|
|
@@ -1,21 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated
|
|
3
|
+
* Use "is" helpers instead. The types helpers exists
|
|
4
|
+
* for backward compatibility
|
|
5
|
+
*/
|
|
3
6
|
declare const types: {
|
|
4
|
-
lookup:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
lookup: ((value: unknown) => import("@sindresorhus/is").TypeName) & {
|
|
8
|
+
all: typeof import("@sindresorhus/is").isAll;
|
|
9
|
+
any: typeof import("@sindresorhus/is").isAny;
|
|
10
|
+
array: typeof import("@sindresorhus/is").isArray;
|
|
11
|
+
arrayBuffer: typeof import("@sindresorhus/is").isArrayBuffer;
|
|
12
|
+
arrayLike: typeof import("@sindresorhus/is").isArrayLike;
|
|
13
|
+
asyncFunction: typeof import("@sindresorhus/is").isAsyncFunction;
|
|
14
|
+
asyncGenerator: typeof import("@sindresorhus/is").isAsyncGenerator;
|
|
15
|
+
asyncGeneratorFunction: typeof import("@sindresorhus/is").isAsyncGeneratorFunction;
|
|
16
|
+
asyncIterable: typeof import("@sindresorhus/is").isAsyncIterable;
|
|
17
|
+
bigint: typeof import("@sindresorhus/is").isBigint;
|
|
18
|
+
bigInt64Array: typeof import("@sindresorhus/is").isBigInt64Array;
|
|
19
|
+
bigUint64Array: typeof import("@sindresorhus/is").isBigUint64Array;
|
|
20
|
+
blob: typeof import("@sindresorhus/is").isBlob;
|
|
21
|
+
boolean: typeof import("@sindresorhus/is").isBoolean;
|
|
22
|
+
boundFunction: typeof import("@sindresorhus/is").isBoundFunction;
|
|
23
|
+
buffer: typeof import("@sindresorhus/is").isBuffer;
|
|
24
|
+
class: typeof import("@sindresorhus/is").isClass;
|
|
25
|
+
class_: typeof import("@sindresorhus/is").isClass;
|
|
26
|
+
dataView: typeof import("@sindresorhus/is").isDataView;
|
|
27
|
+
date: typeof import("@sindresorhus/is").isDate;
|
|
28
|
+
detect: (value: unknown) => import("@sindresorhus/is").TypeName;
|
|
29
|
+
directInstanceOf: typeof import("@sindresorhus/is").isDirectInstanceOf;
|
|
30
|
+
domElement: typeof import("@sindresorhus/is").isHtmlElement;
|
|
31
|
+
emptyArray: typeof import("@sindresorhus/is").isEmptyArray;
|
|
32
|
+
emptyMap: typeof import("@sindresorhus/is").isEmptyMap;
|
|
33
|
+
emptyObject: typeof import("@sindresorhus/is").isEmptyObject;
|
|
34
|
+
emptySet: typeof import("@sindresorhus/is").isEmptySet;
|
|
35
|
+
emptyString: typeof import("@sindresorhus/is").isEmptyString;
|
|
36
|
+
emptyStringOrWhitespace: typeof import("@sindresorhus/is").isEmptyStringOrWhitespace;
|
|
37
|
+
enumCase: typeof import("@sindresorhus/is").isEnumCase;
|
|
38
|
+
error: typeof import("@sindresorhus/is").isError;
|
|
39
|
+
evenInteger: typeof import("@sindresorhus/is").isEvenInteger;
|
|
40
|
+
falsy: typeof import("@sindresorhus/is").isFalsy;
|
|
41
|
+
float32Array: typeof import("@sindresorhus/is").isFloat32Array;
|
|
42
|
+
float64Array: typeof import("@sindresorhus/is").isFloat64Array;
|
|
43
|
+
formData: typeof import("@sindresorhus/is").isFormData;
|
|
44
|
+
function: typeof import("@sindresorhus/is").isFunction;
|
|
45
|
+
function_: typeof import("@sindresorhus/is").isFunction;
|
|
46
|
+
generator: typeof import("@sindresorhus/is").isGenerator;
|
|
47
|
+
generatorFunction: typeof import("@sindresorhus/is").isGeneratorFunction;
|
|
48
|
+
htmlElement: typeof import("@sindresorhus/is").isHtmlElement;
|
|
49
|
+
infinite: typeof import("@sindresorhus/is").isInfinite;
|
|
50
|
+
inRange: typeof import("@sindresorhus/is").isInRange;
|
|
51
|
+
int16Array: typeof import("@sindresorhus/is").isInt16Array;
|
|
52
|
+
int32Array: typeof import("@sindresorhus/is").isInt32Array;
|
|
53
|
+
int8Array: typeof import("@sindresorhus/is").isInt8Array;
|
|
54
|
+
integer: typeof import("@sindresorhus/is").isInteger;
|
|
55
|
+
iterable: typeof import("@sindresorhus/is").isIterable;
|
|
56
|
+
map: typeof import("@sindresorhus/is").isMap;
|
|
57
|
+
nan: typeof import("@sindresorhus/is").isNan;
|
|
58
|
+
nativePromise: typeof import("@sindresorhus/is").isNativePromise;
|
|
59
|
+
negativeNumber: typeof import("@sindresorhus/is").isNegativeNumber;
|
|
60
|
+
nodeStream: typeof import("@sindresorhus/is").isNodeStream;
|
|
61
|
+
nonEmptyArray: typeof import("@sindresorhus/is").isNonEmptyArray;
|
|
62
|
+
nonEmptyMap: typeof import("@sindresorhus/is").isNonEmptyMap;
|
|
63
|
+
nonEmptyObject: typeof import("@sindresorhus/is").isNonEmptyObject;
|
|
64
|
+
nonEmptySet: typeof import("@sindresorhus/is").isNonEmptySet;
|
|
65
|
+
nonEmptyString: typeof import("@sindresorhus/is").isNonEmptyString;
|
|
66
|
+
nonEmptyStringAndNotWhitespace: typeof import("@sindresorhus/is").isNonEmptyStringAndNotWhitespace;
|
|
67
|
+
null: typeof import("@sindresorhus/is").isNull;
|
|
68
|
+
null_: typeof import("@sindresorhus/is").isNull;
|
|
69
|
+
nullOrUndefined: typeof import("@sindresorhus/is").isNullOrUndefined;
|
|
70
|
+
number: typeof import("@sindresorhus/is").isNumber;
|
|
71
|
+
numericString: typeof import("@sindresorhus/is").isNumericString;
|
|
72
|
+
object: typeof import("@sindresorhus/is").isObject;
|
|
73
|
+
observable: typeof import("@sindresorhus/is").isObservable;
|
|
74
|
+
oddInteger: typeof import("@sindresorhus/is").isOddInteger;
|
|
75
|
+
plainObject: typeof import("@sindresorhus/is").isPlainObject;
|
|
76
|
+
positiveNumber: typeof import("@sindresorhus/is").isPositiveNumber;
|
|
77
|
+
primitive: typeof import("@sindresorhus/is").isPrimitive;
|
|
78
|
+
promise: typeof import("@sindresorhus/is").isPromise;
|
|
79
|
+
propertyKey: typeof import("@sindresorhus/is").isPropertyKey;
|
|
80
|
+
regExp: typeof import("@sindresorhus/is").isRegExp;
|
|
81
|
+
safeInteger: typeof import("@sindresorhus/is").isSafeInteger;
|
|
82
|
+
set: typeof import("@sindresorhus/is").isSet;
|
|
83
|
+
sharedArrayBuffer: typeof import("@sindresorhus/is").isSharedArrayBuffer;
|
|
84
|
+
string: typeof import("@sindresorhus/is").isString;
|
|
85
|
+
symbol: typeof import("@sindresorhus/is").isSymbol;
|
|
86
|
+
truthy: typeof import("@sindresorhus/is").isTruthy;
|
|
87
|
+
tupleLike: typeof import("@sindresorhus/is").isTupleLike;
|
|
88
|
+
typedArray: typeof import("@sindresorhus/is").isTypedArray;
|
|
89
|
+
uint16Array: typeof import("@sindresorhus/is").isUint16Array;
|
|
90
|
+
uint32Array: typeof import("@sindresorhus/is").isUint32Array;
|
|
91
|
+
uint8Array: typeof import("@sindresorhus/is").isUint8Array;
|
|
92
|
+
uint8ClampedArray: typeof import("@sindresorhus/is").isUint8ClampedArray;
|
|
93
|
+
undefined: typeof import("@sindresorhus/is").isUndefined;
|
|
94
|
+
urlInstance: typeof import("@sindresorhus/is").isUrlInstance;
|
|
95
|
+
urlSearchParams: typeof import("@sindresorhus/is").isUrlSearchParams;
|
|
96
|
+
urlString: typeof import("@sindresorhus/is").isUrlString;
|
|
97
|
+
validLength: typeof import("@sindresorhus/is").isValidLength;
|
|
98
|
+
weakMap: typeof import("@sindresorhus/is").isWeakMap;
|
|
99
|
+
weakRef: typeof import("@sindresorhus/is").isWeakRef;
|
|
100
|
+
weakSet: typeof import("@sindresorhus/is").isWeakSet;
|
|
101
|
+
whitespaceString: typeof import("@sindresorhus/is").isWhitespaceString;
|
|
102
|
+
};
|
|
103
|
+
isNull: typeof import("@sindresorhus/is").isNull;
|
|
104
|
+
isBoolean: typeof import("@sindresorhus/is").isBoolean;
|
|
105
|
+
isBuffer: typeof import("@sindresorhus/is").isBuffer;
|
|
106
|
+
isNumber: typeof import("@sindresorhus/is").isNumber;
|
|
107
|
+
isString: typeof import("@sindresorhus/is").isString;
|
|
10
108
|
isArguments: any;
|
|
11
|
-
isObject: (
|
|
12
|
-
isDate: (
|
|
13
|
-
isArray:
|
|
14
|
-
isRegexp: (
|
|
15
|
-
isError: (
|
|
16
|
-
isFunction: (
|
|
17
|
-
isClass:
|
|
18
|
-
isInteger: (
|
|
109
|
+
isObject: typeof import("@sindresorhus/is").isObject;
|
|
110
|
+
isDate: typeof import("@sindresorhus/is").isDate;
|
|
111
|
+
isArray: typeof import("@sindresorhus/is").isArray;
|
|
112
|
+
isRegexp: typeof import("@sindresorhus/is").isRegExp;
|
|
113
|
+
isError: typeof import("@sindresorhus/is").isError;
|
|
114
|
+
isFunction: typeof import("@sindresorhus/is").isFunction;
|
|
115
|
+
isClass: typeof import("@sindresorhus/is").isClass;
|
|
116
|
+
isInteger: typeof import("@sindresorhus/is").isInteger;
|
|
19
117
|
isFloat(value: number): value is number;
|
|
20
118
|
isDecimal(value: string | number, options?: {
|
|
21
119
|
decimalPlaces?: string;
|
|
@@ -1,4 +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 is from '@sindresorhus/is';
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated
|
|
12
|
+
* Use "is" helpers instead. The types helpers exists
|
|
13
|
+
* for backward compatibility
|
|
14
|
+
*/
|
|
2
15
|
const types = {
|
|
3
16
|
lookup: is,
|
|
4
17
|
isNull: is.null_,
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { Ignitor } from './main.js';
|
|
2
2
|
import type { ApplicationService } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The Ace process is used to start the application in the
|
|
5
|
+
* console environment.
|
|
6
|
+
*/
|
|
3
7
|
export declare class AceProcess {
|
|
4
8
|
#private;
|
|
5
9
|
constructor(ignitor: Ignitor);
|
|
10
|
+
/**
|
|
11
|
+
* Register a callback that can be used to configure the ace
|
|
12
|
+
* kernel before the handle method is called
|
|
13
|
+
*/
|
|
6
14
|
configure(callback: (app: ApplicationService) => Promise<void> | void): this;
|
|
15
|
+
/**
|
|
16
|
+
* Handles the command line arguments and executes
|
|
17
|
+
* the matching ace commands
|
|
18
|
+
*/
|
|
7
19
|
handle(argv: string[]): Promise<void>;
|
|
8
20
|
}
|
package/build/src/ignitor/ace.js
CHANGED
|
@@ -1,31 +1,80 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* The Ace process is used to start the application in the
|
|
11
|
+
* console environment.
|
|
12
|
+
*/
|
|
1
13
|
export class AceProcess {
|
|
14
|
+
/**
|
|
15
|
+
* Ignitor reference
|
|
16
|
+
*/
|
|
2
17
|
#ignitor;
|
|
18
|
+
/**
|
|
19
|
+
* The callback that configures the ace instance before the
|
|
20
|
+
* handle method is called
|
|
21
|
+
*/
|
|
3
22
|
#configureCallback = () => { };
|
|
4
23
|
constructor(ignitor) {
|
|
5
24
|
this.#ignitor = ignitor;
|
|
6
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Register a callback that can be used to configure the ace
|
|
28
|
+
* kernel before the handle method is called
|
|
29
|
+
*/
|
|
7
30
|
configure(callback) {
|
|
8
31
|
this.#configureCallback = callback;
|
|
9
32
|
return this;
|
|
10
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Handles the command line arguments and executes
|
|
36
|
+
* the matching ace commands
|
|
37
|
+
*/
|
|
11
38
|
async handle(argv) {
|
|
12
39
|
const app = this.#ignitor.createApp('console');
|
|
13
40
|
await app.init();
|
|
14
41
|
const { createAceKernel } = await import('../../modules/ace/create_kernel.js');
|
|
15
42
|
const kernel = createAceKernel(app);
|
|
16
43
|
app.container.bindValue('ace', kernel);
|
|
44
|
+
/**
|
|
45
|
+
* Hook into kernel and start the app when the
|
|
46
|
+
* command needs the app.
|
|
47
|
+
*
|
|
48
|
+
* Since multiple commands can be executed in a single process,
|
|
49
|
+
* we add a check to only start the app only once.
|
|
50
|
+
*/
|
|
17
51
|
kernel.loading(async (metaData) => {
|
|
18
52
|
if (metaData.options.startApp && !app.isReady) {
|
|
53
|
+
if (metaData.commandName === 'repl') {
|
|
54
|
+
app.setEnvironment('repl');
|
|
55
|
+
}
|
|
19
56
|
await app.boot();
|
|
20
57
|
await app.start(() => { });
|
|
21
58
|
}
|
|
22
59
|
});
|
|
23
60
|
await this.#configureCallback(app);
|
|
61
|
+
/**
|
|
62
|
+
* Handle command line args
|
|
63
|
+
*/
|
|
24
64
|
await kernel.handle(argv);
|
|
25
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Terminate the app when the command does not want to
|
|
67
|
+
* hold a long running process
|
|
68
|
+
*/
|
|
26
69
|
const mainCommand = kernel.getMainCommand();
|
|
27
70
|
if (!mainCommand || !mainCommand.staysAlive) {
|
|
71
|
+
process.exitCode = kernel.exitCode;
|
|
28
72
|
await app.terminate();
|
|
29
73
|
}
|
|
74
|
+
else {
|
|
75
|
+
app.terminating(() => {
|
|
76
|
+
process.exitCode = mainCommand.exitCode;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
30
79
|
}
|
|
31
80
|
}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
3
3
|
import type { Server as NodeHttpsServer } from 'node:https';
|
|
4
4
|
import { IncomingMessage, ServerResponse, Server as NodeHttpServer } from 'node:http';
|
|
5
5
|
import { Ignitor } from './main.js';
|
|
6
|
+
/**
|
|
7
|
+
* The HTTP server process is used to start the application in the
|
|
8
|
+
* web environment.
|
|
9
|
+
*/
|
|
6
10
|
export declare class HttpServerProcess {
|
|
7
11
|
#private;
|
|
8
12
|
constructor(ignitor: Ignitor);
|
|
13
|
+
/**
|
|
14
|
+
* Start the HTTP server by wiring up the application
|
|
15
|
+
*/
|
|
9
16
|
start(serverCallback?: (handler: (req: IncomingMessage, res: ServerResponse) => any) => NodeHttpsServer | NodeHttpServer): Promise<void>;
|
|
10
17
|
}
|
|
@@ -1,21 +1,50 @@
|
|
|
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 { createServer } from 'node:http';
|
|
2
10
|
import debug from '../debug.js';
|
|
11
|
+
/**
|
|
12
|
+
* The HTTP server process is used to start the application in the
|
|
13
|
+
* web environment.
|
|
14
|
+
*/
|
|
3
15
|
export class HttpServerProcess {
|
|
16
|
+
/**
|
|
17
|
+
* Ignitor reference
|
|
18
|
+
*/
|
|
4
19
|
#ignitor;
|
|
5
20
|
constructor(ignitor) {
|
|
6
21
|
this.#ignitor = ignitor;
|
|
7
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Calling this method closes the underlying HTTP server
|
|
25
|
+
*/
|
|
8
26
|
#close(nodeHttpServer) {
|
|
9
27
|
return new Promise((resolve) => {
|
|
10
28
|
debug('closing http server process');
|
|
11
29
|
nodeHttpServer.close(() => resolve());
|
|
12
30
|
});
|
|
13
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Monitors the app and the server to close the HTTP server when
|
|
34
|
+
* either one of them goes down
|
|
35
|
+
*/
|
|
14
36
|
#monitorAppAndServer(nodeHttpServer, app, logger) {
|
|
37
|
+
/**
|
|
38
|
+
* Close the HTTP server when the application begins to
|
|
39
|
+
* terminate
|
|
40
|
+
*/
|
|
15
41
|
app.terminating(async () => {
|
|
16
42
|
debug('terminating signal received');
|
|
17
43
|
await this.#close(nodeHttpServer);
|
|
18
44
|
});
|
|
45
|
+
/**
|
|
46
|
+
* Terminate the app when the HTTP server crashes
|
|
47
|
+
*/
|
|
19
48
|
nodeHttpServer.once('error', (error) => {
|
|
20
49
|
debug('http server crashed with error "%O"', error);
|
|
21
50
|
logger.fatal({ err: error }, error.message);
|
|
@@ -23,6 +52,9 @@ export class HttpServerProcess {
|
|
|
23
52
|
app.terminate();
|
|
24
53
|
});
|
|
25
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Starts the http server a given host and port
|
|
57
|
+
*/
|
|
26
58
|
#listen(nodeHttpServer) {
|
|
27
59
|
return new Promise((resolve, reject) => {
|
|
28
60
|
const host = process.env.HOST || '0.0.0.0';
|
|
@@ -37,25 +69,60 @@ export class HttpServerProcess {
|
|
|
37
69
|
});
|
|
38
70
|
});
|
|
39
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Notifies the app and the parent process that the
|
|
74
|
+
* HTTP server is ready
|
|
75
|
+
*/
|
|
40
76
|
#notifyServerHasStarted(app, logger, emitter, payload) {
|
|
77
|
+
/**
|
|
78
|
+
* Notify parent process
|
|
79
|
+
*/
|
|
41
80
|
app.notify({ isAdonisJS: true, environment: 'web', ...payload });
|
|
81
|
+
/**
|
|
82
|
+
* Visual notification
|
|
83
|
+
*/
|
|
42
84
|
logger.info('started HTTP server on %s:%s', payload.host, payload.port);
|
|
85
|
+
/**
|
|
86
|
+
* Notify app
|
|
87
|
+
*/
|
|
43
88
|
emitter.emit('http:server_ready', payload);
|
|
44
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Start the HTTP server by wiring up the application
|
|
92
|
+
*/
|
|
45
93
|
async start(serverCallback) {
|
|
94
|
+
/**
|
|
95
|
+
* Method to create the HTTP server
|
|
96
|
+
*/
|
|
46
97
|
const createHTTPServer = serverCallback || createServer;
|
|
47
98
|
const app = this.#ignitor.createApp('web');
|
|
48
99
|
await app.init();
|
|
49
100
|
await app.boot();
|
|
50
101
|
await app.start(async () => {
|
|
102
|
+
/**
|
|
103
|
+
* Resolve and boot the AdonisJS HTTP server
|
|
104
|
+
*/
|
|
51
105
|
const server = await app.container.make('server');
|
|
52
106
|
await server.boot();
|
|
107
|
+
/**
|
|
108
|
+
* Create Node.js HTTP server instance and share it with the
|
|
109
|
+
* AdonisJS HTTP server
|
|
110
|
+
*/
|
|
53
111
|
const httpServer = createHTTPServer(server.handle.bind(server));
|
|
54
112
|
server.setNodeServer(httpServer);
|
|
55
113
|
const logger = await app.container.make('logger');
|
|
56
114
|
const emitter = await app.container.make('emitter');
|
|
115
|
+
/**
|
|
116
|
+
* Start the server by listening on a port of host
|
|
117
|
+
*/
|
|
57
118
|
const payload = await this.#listen(httpServer);
|
|
119
|
+
/**
|
|
120
|
+
* Notify
|
|
121
|
+
*/
|
|
58
122
|
this.#notifyServerHasStarted(app, logger, emitter, payload);
|
|
123
|
+
/**
|
|
124
|
+
* Monitor app and the server (after the server is listening)
|
|
125
|
+
*/
|
|
59
126
|
this.#monitorAppAndServer(httpServer, app, logger);
|
|
60
127
|
});
|
|
61
128
|
}
|
|
@@ -1,17 +1,45 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
/// <reference types="@types/node" resolution-mode="require"/>
|
|
2
2
|
import { AceProcess } from './ace.js';
|
|
3
3
|
import { TestRunnerProcess } from './test.js';
|
|
4
4
|
import { HttpServerProcess } from './http.js';
|
|
5
5
|
import type { AppEnvironments } from '../../types/app.js';
|
|
6
6
|
import type { ApplicationService, IgnitorOptions } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Ignitor is used to instantiate an AdonisJS application in different
|
|
9
|
+
* known environments.
|
|
10
|
+
*/
|
|
7
11
|
export declare class Ignitor {
|
|
8
12
|
#private;
|
|
9
13
|
constructor(appRoot: URL, options: IgnitorOptions);
|
|
14
|
+
/**
|
|
15
|
+
* Get access to the application instance created
|
|
16
|
+
* by either the http server process or the ace
|
|
17
|
+
* process
|
|
18
|
+
*/
|
|
10
19
|
getApp(): ApplicationService | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Create an instance of AdonisJS application
|
|
22
|
+
*/
|
|
11
23
|
createApp(environment: AppEnvironments): ApplicationService;
|
|
24
|
+
/**
|
|
25
|
+
* Tap to access the application class instance.
|
|
26
|
+
*/
|
|
12
27
|
tap(callback: (app: ApplicationService) => void): this;
|
|
28
|
+
/**
|
|
29
|
+
* Get instance of the HTTPServerProcess
|
|
30
|
+
*/
|
|
13
31
|
httpServer(): HttpServerProcess;
|
|
32
|
+
/**
|
|
33
|
+
* Get an instance of the AceProcess class
|
|
34
|
+
*/
|
|
14
35
|
ace(): AceProcess;
|
|
36
|
+
/**
|
|
37
|
+
* Get an instance of the TestRunnerProcess class
|
|
38
|
+
*/
|
|
15
39
|
testRunner(): TestRunnerProcess;
|
|
40
|
+
/**
|
|
41
|
+
* Terminates the app by calling the "app.terminate"
|
|
42
|
+
* method
|
|
43
|
+
*/
|
|
16
44
|
terminate(): Promise<void>;
|
|
17
45
|
}
|
|
@@ -1,24 +1,64 @@
|
|
|
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 debug from '../debug.js';
|
|
2
10
|
import { AceProcess } from './ace.js';
|
|
3
11
|
import { TestRunnerProcess } from './test.js';
|
|
4
12
|
import { HttpServerProcess } from './http.js';
|
|
5
13
|
import { setApp } from '../../services/app.js';
|
|
6
14
|
import { Application } from '../../modules/app.js';
|
|
15
|
+
/**
|
|
16
|
+
* Ignitor is used to instantiate an AdonisJS application in different
|
|
17
|
+
* known environments.
|
|
18
|
+
*/
|
|
7
19
|
export class Ignitor {
|
|
20
|
+
/**
|
|
21
|
+
* Ignitor options
|
|
22
|
+
*/
|
|
8
23
|
#options;
|
|
24
|
+
/**
|
|
25
|
+
* Application root URL
|
|
26
|
+
*/
|
|
9
27
|
#appRoot;
|
|
28
|
+
/**
|
|
29
|
+
* Reference to the application instance created using
|
|
30
|
+
* the "createApp" method.
|
|
31
|
+
*
|
|
32
|
+
* We store the output of the last call made to "createApp" method
|
|
33
|
+
* and assume that in one process only one entrypoint will
|
|
34
|
+
* call this method.
|
|
35
|
+
*/
|
|
10
36
|
#app;
|
|
37
|
+
/**
|
|
38
|
+
* Reference to the created application
|
|
39
|
+
*/
|
|
11
40
|
#tapCallbacks = new Set();
|
|
12
41
|
constructor(appRoot, options) {
|
|
13
42
|
this.#appRoot = appRoot;
|
|
14
43
|
this.#options = options;
|
|
15
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Runs all the tap callbacks
|
|
47
|
+
*/
|
|
16
48
|
#runTapCallbacks(app) {
|
|
17
49
|
this.#tapCallbacks.forEach((tapCallback) => tapCallback(app));
|
|
18
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Get access to the application instance created
|
|
53
|
+
* by either the http server process or the ace
|
|
54
|
+
* process
|
|
55
|
+
*/
|
|
19
56
|
getApp() {
|
|
20
57
|
return this.#app;
|
|
21
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Create an instance of AdonisJS application
|
|
61
|
+
*/
|
|
22
62
|
createApp(environment) {
|
|
23
63
|
debug('creating application instance');
|
|
24
64
|
this.#app = new Application(this.#appRoot, { environment, importer: this.#options.importer });
|
|
@@ -26,19 +66,35 @@ export class Ignitor {
|
|
|
26
66
|
this.#runTapCallbacks(this.#app);
|
|
27
67
|
return this.#app;
|
|
28
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Tap to access the application class instance.
|
|
71
|
+
*/
|
|
29
72
|
tap(callback) {
|
|
30
73
|
this.#tapCallbacks.add(callback);
|
|
31
74
|
return this;
|
|
32
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Get instance of the HTTPServerProcess
|
|
78
|
+
*/
|
|
33
79
|
httpServer() {
|
|
34
80
|
return new HttpServerProcess(this);
|
|
35
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Get an instance of the AceProcess class
|
|
84
|
+
*/
|
|
36
85
|
ace() {
|
|
37
86
|
return new AceProcess(this);
|
|
38
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Get an instance of the TestRunnerProcess class
|
|
90
|
+
*/
|
|
39
91
|
testRunner() {
|
|
40
92
|
return new TestRunnerProcess(this);
|
|
41
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Terminates the app by calling the "app.terminate"
|
|
96
|
+
* method
|
|
97
|
+
*/
|
|
42
98
|
async terminate() {
|
|
43
99
|
await this.#app?.terminate();
|
|
44
100
|
}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { Ignitor } from './main.js';
|
|
2
2
|
import type { ApplicationService } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The Test runner process is used to start the tests runner process
|
|
5
|
+
*/
|
|
3
6
|
export declare class TestRunnerProcess {
|
|
4
7
|
#private;
|
|
5
8
|
constructor(ignitor: Ignitor);
|
|
9
|
+
/**
|
|
10
|
+
* Register a callback that runs after booting the AdonisJS app
|
|
11
|
+
* and just before the provider's ready hook
|
|
12
|
+
*/
|
|
6
13
|
configure(callback: (app: ApplicationService) => Promise<void> | void): this;
|
|
14
|
+
/**
|
|
15
|
+
* Runs a callback after starting the app
|
|
16
|
+
*/
|
|
7
17
|
run(callback: (app: ApplicationService) => Promise<void> | void): Promise<void>;
|
|
8
18
|
}
|
|
@@ -1,13 +1,38 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* The Test runner process is used to start the tests runner process
|
|
11
|
+
*/
|
|
1
12
|
export class TestRunnerProcess {
|
|
13
|
+
/**
|
|
14
|
+
* Ignitor reference
|
|
15
|
+
*/
|
|
2
16
|
#ignitor;
|
|
17
|
+
/**
|
|
18
|
+
* The callback that configures the tests runner. This callback
|
|
19
|
+
* runs at the time of starting the app.
|
|
20
|
+
*/
|
|
3
21
|
#configureCallback = () => { };
|
|
4
22
|
constructor(ignitor) {
|
|
5
23
|
this.#ignitor = ignitor;
|
|
6
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Register a callback that runs after booting the AdonisJS app
|
|
27
|
+
* and just before the provider's ready hook
|
|
28
|
+
*/
|
|
7
29
|
configure(callback) {
|
|
8
30
|
this.#configureCallback = callback;
|
|
9
31
|
return this;
|
|
10
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Runs a callback after starting the app
|
|
35
|
+
*/
|
|
11
36
|
async run(callback) {
|
|
12
37
|
const app = this.#ignitor.createApp('test');
|
|
13
38
|
await app.init();
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { ApplicationService } from './types.js';
|
|
2
|
+
import { RcFile } from '@adonisjs/application/types';
|
|
3
|
+
/**
|
|
4
|
+
* Imports assembler optionally
|
|
5
|
+
*/
|
|
2
6
|
export declare function importAssembler(app: ApplicationService): Promise<typeof import('@adonisjs/assembler') | undefined>;
|
|
7
|
+
/**
|
|
8
|
+
* Imports typescript optionally
|
|
9
|
+
*/
|
|
3
10
|
export declare function importTypeScript(app: ApplicationService): Promise<typeof import('typescript') | undefined>;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Detects the assets bundler in use. The rcFile.assetsBundler is
|
|
13
|
+
* used when exists.
|
|
14
|
+
*/
|
|
15
|
+
export declare function detectAssetsBundler(app: ApplicationService): Promise<RcFile['assetsBundler']>;
|