@adonisjs/core 6.19.0 → 7.0.0-next.1

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.
Files changed (177) hide show
  1. package/build/commands/add.d.ts +36 -5
  2. package/build/commands/add.js +24 -60
  3. package/build/commands/build.d.ts +23 -3
  4. package/build/commands/build.js +22 -36
  5. package/build/commands/commands.json +1 -1
  6. package/build/commands/configure.d.ts +35 -12
  7. package/build/commands/configure.js +39 -12
  8. package/build/commands/eject.d.ts +28 -3
  9. package/build/commands/eject.js +24 -5
  10. package/build/commands/env/add.d.ts +41 -4
  11. package/build/commands/env/add.js +32 -5
  12. package/build/commands/generate_key.d.ts +20 -1
  13. package/build/commands/generate_key.js +14 -1
  14. package/build/commands/inspect_rcfile.d.ts +20 -2
  15. package/build/commands/inspect_rcfile.js +20 -2
  16. package/build/commands/list/routes.d.ts +33 -11
  17. package/build/commands/list/routes.js +28 -5
  18. package/build/commands/make/command.d.ts +26 -3
  19. package/build/commands/make/command.js +25 -5
  20. package/build/commands/make/controller.d.ts +35 -2
  21. package/build/commands/make/controller.js +20 -2
  22. package/build/commands/make/event.d.ts +30 -4
  23. package/build/commands/make/event.js +27 -4
  24. package/build/commands/make/exception.d.ts +30 -4
  25. package/build/commands/make/exception.js +27 -4
  26. package/build/commands/make/listener.d.ts +38 -5
  27. package/build/commands/make/listener.js +32 -5
  28. package/build/commands/make/middleware.d.ts +25 -2
  29. package/build/commands/make/middleware.js +21 -4
  30. package/build/commands/make/preload.d.ts +31 -4
  31. package/build/commands/make/preload.js +28 -8
  32. package/build/commands/make/provider.d.ts +32 -3
  33. package/build/commands/make/provider.js +29 -7
  34. package/build/commands/make/service.d.ts +21 -2
  35. package/build/commands/make/service.js +18 -2
  36. package/build/commands/make/test.d.ts +27 -4
  37. package/build/commands/make/test.js +36 -8
  38. package/build/commands/make/transformer.d.ts +43 -0
  39. package/build/commands/make/transformer.js +65 -0
  40. package/build/commands/make/validator.d.ts +36 -5
  41. package/build/commands/make/validator.js +30 -5
  42. package/build/commands/make/view.d.ts +26 -3
  43. package/build/commands/make/view.js +24 -4
  44. package/build/commands/repl.d.ts +24 -4
  45. package/build/commands/repl.js +23 -3
  46. package/build/commands/serve.d.ts +38 -4
  47. package/build/commands/serve.js +34 -43
  48. package/build/commands/test.d.ts +68 -7
  49. package/build/commands/test.js +39 -37
  50. package/build/factories/core/ace.d.ts +31 -4
  51. package/build/factories/core/ace.js +20 -4
  52. package/build/factories/core/ignitor.d.ts +80 -9
  53. package/build/factories/core/ignitor.js +84 -13
  54. package/build/factories/core/main.d.ts +3 -3
  55. package/build/factories/core/main.js +3 -3
  56. package/build/factories/core/test_utils.d.ts +32 -4
  57. package/build/factories/core/test_utils.js +21 -4
  58. package/build/factories/stubs.d.ts +54 -5
  59. package/build/factories/stubs.js +55 -6
  60. package/build/index.d.ts +5 -4
  61. package/build/index.js +13 -9
  62. package/build/modules/ace/codemods.d.ts +71 -11
  63. package/build/modules/ace/codemods.js +90 -22
  64. package/build/modules/ace/commands.d.ts +48 -13
  65. package/build/modules/ace/commands.js +45 -10
  66. package/build/modules/ace/create_kernel.d.ts +19 -8
  67. package/build/modules/ace/create_kernel.js +19 -8
  68. package/build/modules/ace/kernel.d.ts +18 -4
  69. package/build/modules/ace/kernel.js +17 -3
  70. package/build/modules/ace/main.d.ts +3 -3
  71. package/build/modules/ace/main.js +3 -3
  72. package/build/modules/dumper/define_config.d.ts +25 -4
  73. package/build/modules/dumper/define_config.js +23 -2
  74. package/build/modules/dumper/dumper.d.ts +82 -12
  75. package/build/modules/dumper/dumper.js +82 -12
  76. package/build/modules/dumper/errors.d.ts +31 -10
  77. package/build/modules/dumper/errors.js +28 -7
  78. package/build/modules/dumper/main.d.ts +3 -3
  79. package/build/modules/dumper/main.js +3 -3
  80. package/build/modules/dumper/plugins/edge.d.ts +1 -1
  81. package/build/modules/hash/define_config.d.ts +53 -8
  82. package/build/modules/hash/define_config.js +51 -6
  83. package/build/modules/hash/main.d.ts +1 -1
  84. package/build/modules/hash/main.js +1 -1
  85. package/build/modules/http/main.d.ts +1 -1
  86. package/build/modules/http/main.js +1 -1
  87. package/build/modules/http/request_validator.d.ts +36 -9
  88. package/build/modules/http/request_validator.js +32 -5
  89. package/build/modules/transformers/main.d.ts +1 -0
  90. package/build/modules/transformers/main.js +9 -0
  91. package/build/providers/app_provider.d.ts +173 -1
  92. package/build/providers/app_provider.js +204 -8
  93. package/build/providers/edge_provider.d.ts +31 -2
  94. package/build/providers/edge_provider.js +31 -2
  95. package/build/providers/hash_provider.d.ts +38 -1
  96. package/build/providers/hash_provider.js +40 -3
  97. package/build/providers/repl_provider.d.ts +40 -1
  98. package/build/providers/repl_provider.js +52 -2
  99. package/build/providers/vinejs_provider.d.ts +32 -5
  100. package/build/providers/vinejs_provider.js +31 -4
  101. package/build/services/ace.d.ts +1 -1
  102. package/build/services/ace.js +1 -1
  103. package/build/services/app.d.ts +1 -1
  104. package/build/services/config.d.ts +1 -1
  105. package/build/services/config.js +1 -1
  106. package/build/services/dumper.js +1 -1
  107. package/build/services/emitter.d.ts +1 -1
  108. package/build/services/emitter.js +1 -1
  109. package/build/services/encryption.d.ts +1 -1
  110. package/build/services/encryption.js +1 -1
  111. package/build/services/hash.d.ts +1 -1
  112. package/build/services/hash.js +1 -1
  113. package/build/services/logger.d.ts +1 -1
  114. package/build/services/logger.js +1 -1
  115. package/build/services/repl.d.ts +1 -1
  116. package/build/services/repl.js +1 -1
  117. package/build/services/router.d.ts +1 -1
  118. package/build/services/router.js +1 -1
  119. package/build/services/server.d.ts +1 -1
  120. package/build/services/server.js +1 -1
  121. package/build/services/test_utils.d.ts +1 -1
  122. package/build/services/test_utils.js +1 -1
  123. package/build/services/url_builder.d.ts +4 -0
  124. package/build/services/url_builder.js +21 -0
  125. package/build/src/assembler_hooks/index_entities.d.ts +37 -0
  126. package/build/src/assembler_hooks/index_entities.js +106 -0
  127. package/build/src/cli_formatters/routes_list.d.ts +24 -12
  128. package/build/src/cli_formatters/routes_list.js +43 -46
  129. package/build/src/config_provider.d.ts +48 -3
  130. package/build/src/config_provider.js +47 -2
  131. package/build/src/debug.d.ts +15 -0
  132. package/build/src/debug.js +15 -0
  133. package/build/src/exceptions.d.ts +41 -1
  134. package/build/src/exceptions.js +41 -1
  135. package/build/src/helpers/assert.d.ts +47 -1
  136. package/build/src/helpers/assert.js +47 -1
  137. package/build/src/helpers/is.d.ts +21 -0
  138. package/build/src/helpers/is.js +21 -0
  139. package/build/src/helpers/main.d.ts +48 -5
  140. package/build/src/helpers/main.js +48 -5
  141. package/build/src/helpers/string.d.ts +89 -9
  142. package/build/src/helpers/string.js +21 -2
  143. package/build/src/helpers/types.d.ts +97 -2
  144. package/build/src/helpers/types.js +96 -2
  145. package/build/src/helpers/verification_token.d.ts +22 -1
  146. package/build/src/helpers/verification_token.js +24 -2
  147. package/build/src/ignitor/ace.d.ts +23 -3
  148. package/build/src/ignitor/ace.js +21 -1
  149. package/build/src/ignitor/http.d.ts +16 -3
  150. package/build/src/ignitor/http.js +16 -3
  151. package/build/src/ignitor/main.d.ts +29 -6
  152. package/build/src/ignitor/main.js +30 -7
  153. package/build/src/ignitor/test.d.ts +26 -3
  154. package/build/src/ignitor/test.js +24 -1
  155. package/build/src/test_utils/http.d.ts +19 -3
  156. package/build/src/test_utils/http.js +24 -3
  157. package/build/src/test_utils/main.d.ts +22 -4
  158. package/build/src/test_utils/main.js +21 -3
  159. package/build/src/types.d.ts +283 -26
  160. package/build/src/utils.d.ts +60 -0
  161. package/build/src/utils.js +104 -0
  162. package/build/src/vine.d.ts +24 -1
  163. package/build/src/vine.js +27 -1
  164. package/build/stubs/main.js +1 -2
  165. package/build/stubs/make/transformer/main.stub +18 -0
  166. package/build/toolkit/main.js +1 -1
  167. package/build/types/common.d.ts +1 -0
  168. package/build/types/common.js +9 -0
  169. package/build/types/helpers.d.ts +2 -1
  170. package/build/types/http.d.ts +1 -0
  171. package/build/types/transformers.d.ts +1 -0
  172. package/build/types/transformers.js +9 -0
  173. package/package.json +55 -52
  174. package/build/src/helpers/parse_binding_reference.d.ts +0 -45
  175. package/build/src/helpers/parse_binding_reference.js +0 -83
  176. package/build/src/internal_helpers.d.ts +0 -15
  177. package/build/src/internal_helpers.js +0 -63
@@ -6,5 +6,4 @@
6
6
  * For the full copyright and license information, please view the LICENSE
7
7
  * file that was distributed with this source code.
8
8
  */
9
- import { getDirname } from '@poppinss/utils';
10
- export const stubsRoot = getDirname(import.meta.url);
9
+ export const stubsRoot = import.meta.dirname;
@@ -0,0 +1,18 @@
1
+ {{#var transformerName = generators.transformerName(entity.name)}}
2
+ {{#var transformerFileName = generators.transformerFileName(entity.name)}}
3
+ {{#var modelName = generators.modelName(model.name)}}
4
+ {{#var modelFileName = generators.modelFileName(model.name)}}
5
+ {{#var modelImportPath = generators.importPath('#models', model.path, modelFileName.replace(/\.ts$/, ''))}}
6
+ {{{
7
+ exports({
8
+ to: app.transformersPath(entity.path, transformerFileName)
9
+ })
10
+ }}}
11
+ import { BaseTransformer } from '@adonisjs/core/transformers'
12
+ import {{ modelName }} from '{{ modelImportPath }}'
13
+
14
+ export default class {{ transformerName }} extends BaseTransformer<{{modelName}}> {
15
+ toObject() {
16
+ return this.pick(this.resource, ['id'])
17
+ }
18
+ }
@@ -7,8 +7,8 @@
7
7
  * For the full copyright and license information, please view the LICENSE
8
8
  * file that was distributed with this source code.
9
9
  */
10
- import IndexCommand from './commands/index_commands.js';
11
10
  import { Kernel, ListLoader, HelpCommand } from '@adonisjs/ace';
11
+ import IndexCommand from "./commands/index_commands.js";
12
12
  const kernel = Kernel.create();
13
13
  kernel.addLoader(new ListLoader([IndexCommand]));
14
14
  kernel.defineFlag('help', {
@@ -0,0 +1 @@
1
+ export * from '@poppinss/utils/types';
@@ -0,0 +1,9 @@
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
+ export * from '@poppinss/utils/types';
@@ -1 +1,2 @@
1
- export type { Opaque, ReadAllFilesOptions, NormalizeConstructor, ImportAllFilesOptions, } from '@poppinss/utils/types';
1
+ export type { Opaque, NormalizeConstructor } from '@poppinss/utils/types';
2
+ export type { ImportAllFilesOptions, ReadAllFilesOptions } from '@poppinss/utils/fs';
@@ -1,5 +1,6 @@
1
1
  export * from '@adonisjs/http-server/types';
2
2
  import type { ValidationOptions } from '@vinejs/vine/types';
3
+ export type { InferRouteParams } from '@poppinss/utils/types';
3
4
  /**
4
5
  * Validation options accepted by the "request.validateUsing" method
5
6
  */
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/http-transformers/types';
@@ -0,0 +1,9 @@
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
+ export * from '@adonisjs/http-transformers/types';
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@adonisjs/core",
3
3
  "description": "Core of AdonisJS",
4
- "version": "6.19.0",
4
+ "version": "7.0.0-next.1",
5
5
  "engines": {
6
- "node": ">=20.6.0"
6
+ "node": ">=24.0.0"
7
7
  },
8
8
  "main": "build/index.js",
9
9
  "type": "module",
@@ -56,6 +56,7 @@
56
56
  "./http": "./build/modules/http/main.js",
57
57
  "./logger": "./build/modules/logger.js",
58
58
  "./repl": "./build/modules/repl.js",
59
+ "./transformers": "./build/modules/transformers/main.js",
59
60
  "./package.json": "./package.json",
60
61
  "./exceptions": "./build/src/exceptions.js",
61
62
  "./test_utils": "./build/src/test_utils/main.js",
@@ -71,89 +72,88 @@
71
72
  "compile": "npm run clean && tsc",
72
73
  "postcompile": "npm run copy:templates && npm run index:commands",
73
74
  "build": "npm run compile",
75
+ "docs": "typedoc",
74
76
  "release": "npx release-it",
75
77
  "version": "npm run build",
76
78
  "prepublishOnly": "npm run build",
77
79
  "lint": "eslint .",
78
80
  "typecheck": "tsc --noEmit",
79
81
  "format": "prettier --write .",
80
- "quick:test": "node --import=ts-node-maintained/register/esm --enable-source-maps --experimental-import-meta-resolve bin/test.ts --force-exit",
81
- "citgm": "cross-env FORCE_COLOR=0 node --import=ts-node-maintained/register/esm --experimental-import-meta-resolve bin/test.ts --force-exit",
82
- "index:commands": "node --import=ts-node-maintained/register/esm toolkit/main.js index build/commands"
82
+ "quick:test": "node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts --force-exit",
83
+ "citgm": "cross-env FORCE_COLOR=0 node --import=@poppinss/ts-exec bin/test.ts --force-exit",
84
+ "index:commands": "node --import=@poppinss/ts-exec toolkit/main.js index build/commands"
83
85
  },
84
86
  "devDependencies": {
85
- "@adonisjs/assembler": "^7.8.2",
86
- "@adonisjs/eslint-config": "^2.1.0",
87
+ "@adonisjs/assembler": "^8.0.0-next.9",
88
+ "@adonisjs/eslint-config": "^3.0.0-next.1",
87
89
  "@adonisjs/prettier-config": "^1.4.5",
88
- "@adonisjs/tsconfig": "^1.4.1",
89
- "@japa/assert": "^4.0.1",
90
+ "@adonisjs/tsconfig": "^2.0.0-next.0",
91
+ "@japa/assert": "^4.1.1",
90
92
  "@japa/expect-type": "^2.0.3",
91
93
  "@japa/file-system": "^2.3.2",
92
- "@japa/runner": "^4.2.0",
93
- "@japa/snapshot": "^2.0.8",
94
+ "@japa/runner": "^4.4.0",
95
+ "@japa/snapshot": "^2.0.9",
96
+ "@poppinss/ts-exec": "^1.4.1",
94
97
  "@release-it/conventional-changelog": "^10.0.1",
95
- "@swc/core": "1.10.7",
96
- "@types/node": "^24.0.3",
98
+ "@types/node": "^24.5.2",
97
99
  "@types/pretty-hrtime": "^1.0.3",
98
100
  "@types/sinon": "^17.0.4",
99
101
  "@types/supertest": "^6.0.3",
100
102
  "@types/test-console": "^2.0.3",
101
103
  "@vinejs/vine": "^3.0.1",
102
- "argon2": "^0.43.0",
104
+ "argon2": "^0.44.0",
103
105
  "bcrypt": "^6.0.0",
104
106
  "c8": "^10.1.3",
105
107
  "copyfiles": "^2.4.1",
106
- "cross-env": "^7.0.3",
107
- "del-cli": "^6.0.0",
108
- "edge.js": "^6.2.1",
109
- "eslint": "^9.29.0",
108
+ "cross-env": "^10.0.0",
109
+ "del-cli": "^7.0.0",
110
+ "edge.js": "^6.3.0",
111
+ "eslint": "^9.35.0",
110
112
  "execa": "^9.6.0",
111
113
  "get-port": "^7.1.0",
112
- "prettier": "^3.5.3",
113
- "release-it": "^19.0.3",
114
+ "prettier": "^3.6.2",
115
+ "release-it": "^19.0.5",
114
116
  "sinon": "^21.0.0",
115
- "supertest": "^7.1.1",
117
+ "supertest": "^7.1.4",
116
118
  "test-console": "^2.0.0",
117
119
  "timekeeper": "^2.3.1",
118
- "ts-node-maintained": "^10.9.5",
119
- "typescript": "^5.8.3"
120
+ "typedoc": "^0.28.13",
121
+ "typescript": "^5.9.2",
122
+ "youch": "^4.1.0-beta.11"
120
123
  },
121
124
  "dependencies": {
122
- "@adonisjs/ace": "^13.3.0",
123
- "@adonisjs/application": "^8.4.1",
124
- "@adonisjs/bodyparser": "^10.1.0",
125
- "@adonisjs/config": "^5.0.3",
126
- "@adonisjs/encryption": "^6.0.2",
127
- "@adonisjs/env": "^6.2.0",
128
- "@adonisjs/events": "^9.0.2",
129
- "@adonisjs/fold": "^10.2.0",
130
- "@adonisjs/hash": "^9.1.1",
131
- "@adonisjs/health": "^2.0.0",
132
- "@adonisjs/http-server": "^7.7.0",
133
- "@adonisjs/logger": "^6.0.6",
134
- "@adonisjs/repl": "^4.1.0",
135
- "@antfu/install-pkg": "^1.1.0",
136
- "@paralleldrive/cuid2": "^2.2.2",
137
- "@poppinss/colors": "^4.1.4",
138
- "@poppinss/dumper": "^0.6.3",
139
- "@poppinss/macroable": "^1.0.4",
140
- "@poppinss/utils": "^6.10.0",
141
- "@sindresorhus/is": "^7.0.2",
125
+ "@adonisjs/ace": "^14.0.1-next.1",
126
+ "@adonisjs/application": "^9.0.0-next.8",
127
+ "@adonisjs/bodyparser": "^11.0.0-next.1",
128
+ "@adonisjs/config": "^6.0.0-next.1",
129
+ "@adonisjs/encryption": "^7.0.0-next.1",
130
+ "@adonisjs/env": "^7.0.0-next.1",
131
+ "@adonisjs/events": "^10.1.0-next.2",
132
+ "@adonisjs/fold": "^11.0.0-next.2",
133
+ "@adonisjs/hash": "^10.0.0-next.1",
134
+ "@adonisjs/health": "^3.0.0-next.0",
135
+ "@adonisjs/http-server": "^8.0.0-next.7",
136
+ "@adonisjs/http-transformers": "^1.4.0",
137
+ "@adonisjs/logger": "^7.1.0-next.0",
138
+ "@adonisjs/repl": "^5.0.0-next.0",
139
+ "@poppinss/colors": "^4.1.5",
140
+ "@poppinss/dumper": "^0.6.4",
141
+ "@poppinss/macroable": "^1.1.0",
142
+ "@poppinss/utils": "^7.0.0-next.3",
143
+ "@sindresorhus/is": "^7.1.0",
142
144
  "@types/he": "^1.2.3",
143
145
  "error-stack-parser-es": "^1.0.5",
144
146
  "he": "^1.2.0",
145
- "parse-imports": "^2.2.1",
146
147
  "pretty-hrtime": "^1.0.3",
147
- "string-width": "^7.2.0",
148
- "youch": "^3.3.4",
149
- "youch-terminal": "^2.2.3"
148
+ "string-width": "^8.1.0"
150
149
  },
151
150
  "peerDependencies": {
152
- "@adonisjs/assembler": "^7.8.0",
153
- "@vinejs/vine": "^2.1.0 || ^3.0.0",
154
- "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0",
155
- "bcrypt": "^5.1.1 || ^6.0.0",
156
- "edge.js": "^6.2.0"
151
+ "@adonisjs/assembler": "^8.0.0-next.6",
152
+ "@vinejs/vine": "^3.0.0",
153
+ "argon2": "^0.43.0",
154
+ "bcrypt": "^6.0.0",
155
+ "edge.js": "^6.2.0",
156
+ "youch": "^4.1.0-beta.11"
157
157
  },
158
158
  "peerDependenciesMeta": {
159
159
  "argon2": {
@@ -170,6 +170,9 @@
170
170
  },
171
171
  "edge.js": {
172
172
  "optional": true
173
+ },
174
+ "youch": {
175
+ "optional": true
173
176
  }
174
177
  },
175
178
  "homepage": "https://github.com/adonisjs/core#readme",
@@ -1,45 +0,0 @@
1
- import { LazyImport, Constructor } from '../../types/http.js';
2
- /**
3
- * The "parseBindingReference" method can be used to parse a binding references
4
- * similar to route controller binding value or event listener binding value.
5
- *
6
- * See the following examples to understand how this function works.
7
- *
8
- * ### Magic strings
9
- * ```ts
10
- * parseBindingReference('#controllers/home_controller')
11
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'handle' }
12
-
13
- * parseBindingReference('#controllers/home_controller.index')
14
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'index' }
15
-
16
- * parseBindingReference('#controllers/home.controller.index')
17
- * // returns { moduleNameOrPath: '#controllers/home.controller', method: 'index' }
18
- * ```
19
- *
20
- * ### Class reference
21
- * ```ts
22
- * class HomeController {}
23
- *
24
- * parseBindingReference([HomeController])
25
- * // returns { moduleNameOrPath: 'HomeController', method: 'handle' }
26
-
27
- * parseBindingReference([HomeController, 'index'])
28
- * // returns { moduleNameOrPath: 'HomeController', method: 'index' }
29
- * ```
30
- *
31
- * ### Lazy import reference
32
- * ```ts
33
- * const HomeController = () => import('#controllers/home_controller')
34
- *
35
- * parseBindingReference([HomeController])
36
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'handle' }
37
-
38
- * parseBindingReference([HomeController, 'index'])
39
- * // returns { moduleNameOrPath: 'controllers/home_controller', method: 'index' }
40
- * ```
41
- */
42
- export declare function parseBindingReference(binding: string | [LazyImport<Constructor<any>> | Constructor<any>, any?]): Promise<{
43
- moduleNameOrPath: string;
44
- method: string;
45
- }>;
@@ -1,83 +0,0 @@
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
- import { parseImports } from 'parse-imports';
10
- /**
11
- * The "parseBindingReference" method can be used to parse a binding references
12
- * similar to route controller binding value or event listener binding value.
13
- *
14
- * See the following examples to understand how this function works.
15
- *
16
- * ### Magic strings
17
- * ```ts
18
- * parseBindingReference('#controllers/home_controller')
19
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'handle' }
20
-
21
- * parseBindingReference('#controllers/home_controller.index')
22
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'index' }
23
-
24
- * parseBindingReference('#controllers/home.controller.index')
25
- * // returns { moduleNameOrPath: '#controllers/home.controller', method: 'index' }
26
- * ```
27
- *
28
- * ### Class reference
29
- * ```ts
30
- * class HomeController {}
31
- *
32
- * parseBindingReference([HomeController])
33
- * // returns { moduleNameOrPath: 'HomeController', method: 'handle' }
34
-
35
- * parseBindingReference([HomeController, 'index'])
36
- * // returns { moduleNameOrPath: 'HomeController', method: 'index' }
37
- * ```
38
- *
39
- * ### Lazy import reference
40
- * ```ts
41
- * const HomeController = () => import('#controllers/home_controller')
42
- *
43
- * parseBindingReference([HomeController])
44
- * // returns { moduleNameOrPath: '#controllers/home_controller', method: 'handle' }
45
-
46
- * parseBindingReference([HomeController, 'index'])
47
- * // returns { moduleNameOrPath: 'controllers/home_controller', method: 'index' }
48
- * ```
49
- */
50
- export async function parseBindingReference(binding) {
51
- /**
52
- * The binding reference is a magic string. It might not have method
53
- * name attached to it. Therefore we split the string and attempt
54
- * to find the method or use the default method name "handle".
55
- */
56
- if (typeof binding === 'string') {
57
- const tokens = binding.split('.');
58
- if (tokens.length === 1) {
59
- return { moduleNameOrPath: binding, method: 'handle' };
60
- }
61
- return { method: tokens.pop(), moduleNameOrPath: tokens.join('.') };
62
- }
63
- const [bindingReference, method] = binding;
64
- /**
65
- * Parsing the binding reference for dynamic imports and using its
66
- * import value.
67
- */
68
- const imports = [...(await parseImports(bindingReference.toString()))];
69
- const importedModule = imports.find(($import) => $import.isDynamicImport && $import.moduleSpecifier.value);
70
- if (importedModule) {
71
- return {
72
- moduleNameOrPath: importedModule.moduleSpecifier.value,
73
- method: method || 'handle',
74
- };
75
- }
76
- /**
77
- * Otherwise using the name of the binding reference.
78
- */
79
- return {
80
- moduleNameOrPath: bindingReference.name,
81
- method: method || 'handle',
82
- };
83
- }
@@ -1,15 +0,0 @@
1
- import { ApplicationService } from './types.js';
2
- import { RcFile } from '@adonisjs/application/types';
3
- /**
4
- * Imports assembler optionally
5
- */
6
- export declare function importAssembler(app: ApplicationService): Promise<typeof import('@adonisjs/assembler') | undefined>;
7
- /**
8
- * Imports typescript optionally
9
- */
10
- export declare function importTypeScript(app: ApplicationService): Promise<typeof import('typescript') | undefined>;
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']>;
@@ -1,63 +0,0 @@
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
- import { existsSync } from 'node:fs';
10
- /**
11
- * Imports assembler optionally
12
- */
13
- export async function importAssembler(app) {
14
- try {
15
- return await app.import('@adonisjs/assembler');
16
- }
17
- catch { }
18
- }
19
- /**
20
- * Imports typescript optionally
21
- */
22
- export async function importTypeScript(app) {
23
- try {
24
- return await app.importDefault('typescript');
25
- }
26
- catch { }
27
- }
28
- /**
29
- * Generates an array of filenames with different JavaScript
30
- * extensions for the given filename
31
- */
32
- function generateJsFilenames(filename) {
33
- const extensions = ['.js', '.ts', '.cjs', '.mjs', '.cts', '.mts'];
34
- return extensions.map((extension) => filename + extension);
35
- }
36
- /**
37
- * Detects the assets bundler in use. The rcFile.assetsBundler is
38
- * used when exists.
39
- */
40
- export async function detectAssetsBundler(app) {
41
- if (app.rcFile.assetsBundler === false) {
42
- return false;
43
- }
44
- if (app.rcFile.assetsBundler) {
45
- return app.rcFile.assetsBundler;
46
- }
47
- const possibleViteConfigFiles = generateJsFilenames('vite.config');
48
- if (possibleViteConfigFiles.some((config) => existsSync(app.makePath(config)))) {
49
- return {
50
- name: 'vite',
51
- devServer: { command: 'vite' },
52
- build: { command: 'vite', args: ['build'] },
53
- };
54
- }
55
- const possibleEncoreConfigFiles = generateJsFilenames('webpack.config');
56
- if (possibleEncoreConfigFiles.some((config) => existsSync(app.makePath(config)))) {
57
- return {
58
- name: 'encore',
59
- devServer: { command: 'encore', args: ['dev-server'] },
60
- build: { command: 'encore', args: ['production'] },
61
- };
62
- }
63
- }