@modern-js/plugin 2.69.7 → 3.0.0-alpha.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 (267) hide show
  1. package/dist/cjs/cli/api.js +119 -0
  2. package/dist/cjs/cli/context.js +85 -0
  3. package/dist/cjs/cli/hooks.js +65 -0
  4. package/dist/cjs/cli/index.js +68 -0
  5. package/dist/cjs/cli/run/config/createLoadedConfig.js +87 -0
  6. package/dist/cjs/cli/run/config/createResolvedConfig.js +48 -0
  7. package/dist/cjs/cli/run/config/loadConfig.js +113 -0
  8. package/dist/cjs/cli/run/create.js +187 -0
  9. package/dist/cjs/cli/run/index.js +56 -0
  10. package/dist/cjs/cli/run/run.js +57 -0
  11. package/dist/cjs/cli/run/types.js +18 -0
  12. package/dist/cjs/cli/run/utils/checkIsDuplicationPlugin.js +45 -0
  13. package/dist/cjs/cli/run/utils/commander.js +56 -0
  14. package/dist/cjs/cli/run/utils/createFileWatcher.js +112 -0
  15. package/dist/cjs/cli/run/utils/debug.js +37 -0
  16. package/dist/cjs/cli/run/utils/initAppDir.js +55 -0
  17. package/dist/cjs/cli/run/utils/mergeConfig.js +66 -0
  18. package/dist/cjs/hooks.js +169 -0
  19. package/dist/cjs/index.js +53 -26
  20. package/dist/cjs/manager.js +135 -0
  21. package/dist/cjs/runtime/api.js +95 -0
  22. package/dist/cjs/runtime/context.js +60 -0
  23. package/dist/cjs/runtime/hooks.js +46 -0
  24. package/dist/cjs/runtime/index.js +51 -0
  25. package/dist/cjs/runtime/run/create.js +79 -0
  26. package/dist/cjs/runtime/run/index.js +37 -0
  27. package/dist/cjs/runtime/run/types.js +18 -0
  28. package/dist/cjs/server/api.js +96 -0
  29. package/dist/cjs/server/context.js +75 -0
  30. package/dist/cjs/server/hooks.js +43 -0
  31. package/dist/cjs/server/index.js +54 -0
  32. package/dist/cjs/server/run/create.js +79 -0
  33. package/dist/cjs/server/run/index.js +40 -0
  34. package/dist/cjs/server/run/types.js +18 -0
  35. package/dist/cjs/types/cli/api.js +18 -0
  36. package/dist/cjs/types/cli/context.js +18 -0
  37. package/dist/cjs/types/cli/hooks.js +18 -0
  38. package/dist/cjs/types/cli/index.js +18 -0
  39. package/dist/cjs/types/cli/plugin.js +18 -0
  40. package/dist/cjs/types/hooks.js +18 -0
  41. package/dist/cjs/types/index.js +18 -0
  42. package/dist/cjs/types/plugin.js +18 -0
  43. package/dist/cjs/types/runtime/api.js +18 -0
  44. package/dist/cjs/types/runtime/context.js +18 -0
  45. package/dist/cjs/types/runtime/hooks.js +18 -0
  46. package/dist/cjs/types/runtime/index.js +18 -0
  47. package/dist/cjs/types/runtime/plugin.js +18 -0
  48. package/dist/cjs/types/server/api.js +18 -0
  49. package/dist/cjs/types/server/context.js +18 -0
  50. package/dist/cjs/types/server/hooks.js +18 -0
  51. package/dist/cjs/types/server/index.js +18 -0
  52. package/dist/cjs/types/server/plugin.js +18 -0
  53. package/dist/cjs/types/utils.js +18 -0
  54. package/dist/esm/cli/api.mjs +85 -0
  55. package/dist/esm/cli/context.mjs +38 -0
  56. package/dist/esm/cli/hooks.mjs +31 -0
  57. package/dist/esm/cli/index.mjs +7 -0
  58. package/dist/esm/cli/run/config/createLoadedConfig.mjs +53 -0
  59. package/dist/esm/cli/run/config/createResolvedConfig.mjs +14 -0
  60. package/dist/esm/cli/run/config/loadConfig.mjs +59 -0
  61. package/dist/esm/cli/run/create.mjs +150 -0
  62. package/dist/esm/cli/run/index.mjs +7 -0
  63. package/dist/esm/cli/run/run.mjs +23 -0
  64. package/dist/esm/cli/run/types.mjs +0 -0
  65. package/dist/esm/cli/run/utils/checkIsDuplicationPlugin.mjs +11 -0
  66. package/dist/esm/cli/run/utils/commander.mjs +16 -0
  67. package/dist/esm/cli/run/utils/createFileWatcher.mjs +68 -0
  68. package/dist/esm/cli/run/utils/debug.mjs +3 -0
  69. package/dist/esm/cli/run/utils/initAppDir.mjs +11 -0
  70. package/dist/esm/cli/run/utils/mergeConfig.mjs +32 -0
  71. package/dist/esm/hooks.mjs +120 -0
  72. package/dist/esm/index.mjs +3 -0
  73. package/dist/esm/manager.mjs +101 -0
  74. package/dist/esm/runtime/api.mjs +61 -0
  75. package/dist/esm/runtime/context.mjs +23 -0
  76. package/dist/esm/runtime/hooks.mjs +12 -0
  77. package/dist/esm/runtime/index.mjs +5 -0
  78. package/dist/esm/runtime/run/create.mjs +45 -0
  79. package/dist/esm/runtime/run/index.mjs +3 -0
  80. package/dist/esm/runtime/run/types.mjs +0 -0
  81. package/dist/esm/server/api.mjs +59 -0
  82. package/dist/esm/server/context.mjs +38 -0
  83. package/dist/esm/server/hooks.mjs +9 -0
  84. package/dist/esm/server/index.mjs +5 -0
  85. package/dist/esm/server/run/create.mjs +45 -0
  86. package/dist/esm/server/run/index.mjs +3 -0
  87. package/dist/esm/server/run/types.mjs +0 -0
  88. package/dist/esm/types/cli/api.mjs +0 -0
  89. package/dist/esm/types/cli/context.mjs +0 -0
  90. package/dist/esm/types/cli/hooks.mjs +0 -0
  91. package/dist/esm/types/cli/index.mjs +0 -0
  92. package/dist/esm/types/cli/plugin.mjs +0 -0
  93. package/dist/esm/types/hooks.mjs +0 -0
  94. package/dist/esm/types/index.mjs +0 -0
  95. package/dist/esm/types/plugin.mjs +0 -0
  96. package/dist/esm/types/runtime/api.mjs +0 -0
  97. package/dist/esm/types/runtime/context.mjs +0 -0
  98. package/dist/esm/types/runtime/hooks.mjs +0 -0
  99. package/dist/esm/types/runtime/index.mjs +0 -0
  100. package/dist/esm/types/runtime/plugin.mjs +0 -0
  101. package/dist/esm/types/server/api.mjs +0 -0
  102. package/dist/esm/types/server/context.mjs +0 -0
  103. package/dist/esm/types/server/hooks.mjs +0 -0
  104. package/dist/esm/types/server/index.mjs +0 -0
  105. package/dist/esm/types/server/plugin.mjs +0 -0
  106. package/dist/esm/types/utils.mjs +0 -0
  107. package/dist/esm-node/cli/api.mjs +85 -0
  108. package/dist/esm-node/cli/context.mjs +38 -0
  109. package/dist/esm-node/cli/hooks.mjs +31 -0
  110. package/dist/esm-node/cli/index.mjs +7 -0
  111. package/dist/esm-node/cli/run/config/createLoadedConfig.mjs +53 -0
  112. package/dist/esm-node/cli/run/config/createResolvedConfig.mjs +14 -0
  113. package/dist/esm-node/cli/run/config/loadConfig.mjs +59 -0
  114. package/dist/esm-node/cli/run/create.mjs +150 -0
  115. package/dist/esm-node/cli/run/index.mjs +7 -0
  116. package/dist/esm-node/cli/run/run.mjs +23 -0
  117. package/dist/esm-node/cli/run/utils/checkIsDuplicationPlugin.mjs +11 -0
  118. package/dist/esm-node/cli/run/utils/commander.mjs +16 -0
  119. package/dist/esm-node/cli/run/utils/createFileWatcher.mjs +68 -0
  120. package/dist/esm-node/cli/run/utils/debug.mjs +3 -0
  121. package/dist/esm-node/cli/run/utils/initAppDir.mjs +11 -0
  122. package/dist/esm-node/cli/run/utils/mergeConfig.mjs +32 -0
  123. package/dist/esm-node/hooks.mjs +120 -0
  124. package/dist/esm-node/index.mjs +3 -0
  125. package/dist/esm-node/manager.mjs +101 -0
  126. package/dist/esm-node/runtime/api.mjs +61 -0
  127. package/dist/esm-node/runtime/context.mjs +23 -0
  128. package/dist/esm-node/runtime/hooks.mjs +12 -0
  129. package/dist/esm-node/runtime/index.mjs +5 -0
  130. package/dist/esm-node/runtime/run/create.mjs +45 -0
  131. package/dist/esm-node/runtime/run/index.mjs +3 -0
  132. package/dist/esm-node/runtime/run/types.mjs +0 -0
  133. package/dist/esm-node/server/api.mjs +59 -0
  134. package/dist/esm-node/server/context.mjs +38 -0
  135. package/dist/esm-node/server/hooks.mjs +9 -0
  136. package/dist/esm-node/server/index.mjs +5 -0
  137. package/dist/esm-node/server/run/create.mjs +45 -0
  138. package/dist/esm-node/server/run/index.mjs +3 -0
  139. package/dist/esm-node/server/run/types.mjs +0 -0
  140. package/dist/esm-node/types/cli/api.mjs +0 -0
  141. package/dist/esm-node/types/cli/context.mjs +0 -0
  142. package/dist/esm-node/types/cli/hooks.mjs +0 -0
  143. package/dist/esm-node/types/cli/index.mjs +0 -0
  144. package/dist/esm-node/types/cli/plugin.mjs +0 -0
  145. package/dist/esm-node/types/hooks.mjs +0 -0
  146. package/dist/esm-node/types/index.mjs +0 -0
  147. package/dist/esm-node/types/plugin.mjs +0 -0
  148. package/dist/esm-node/types/runtime/api.mjs +0 -0
  149. package/dist/esm-node/types/runtime/context.mjs +0 -0
  150. package/dist/esm-node/types/runtime/hooks.mjs +0 -0
  151. package/dist/esm-node/types/runtime/index.mjs +0 -0
  152. package/dist/esm-node/types/runtime/plugin.mjs +0 -0
  153. package/dist/esm-node/types/server/api.mjs +0 -0
  154. package/dist/esm-node/types/server/context.mjs +0 -0
  155. package/dist/esm-node/types/server/hooks.mjs +0 -0
  156. package/dist/esm-node/types/server/index.mjs +0 -0
  157. package/dist/esm-node/types/server/plugin.mjs +0 -0
  158. package/dist/esm-node/types/utils.mjs +0 -0
  159. package/dist/types/cli/api.d.ts +8 -0
  160. package/dist/types/cli/context.d.ts +19 -0
  161. package/dist/types/cli/hooks.d.ts +42 -0
  162. package/dist/types/cli/index.d.ts +6 -0
  163. package/dist/types/cli/run/config/createLoadedConfig.d.ts +2 -0
  164. package/dist/types/cli/run/config/createResolvedConfig.d.ts +3 -0
  165. package/dist/types/cli/run/config/loadConfig.d.ts +25 -0
  166. package/dist/types/cli/run/create.d.ts +16 -0
  167. package/dist/types/cli/run/index.d.ts +13 -0
  168. package/dist/types/cli/run/run.d.ts +2 -0
  169. package/dist/types/cli/run/types.d.ts +32 -0
  170. package/dist/types/cli/run/utils/checkIsDuplicationPlugin.d.ts +1 -0
  171. package/dist/types/cli/run/utils/commander.d.ts +5 -0
  172. package/dist/types/cli/run/utils/createFileWatcher.d.ts +3 -0
  173. package/dist/types/cli/run/utils/debug.d.ts +1 -0
  174. package/dist/types/cli/run/utils/initAppDir.d.ts +1 -0
  175. package/dist/types/cli/run/utils/mergeConfig.d.ts +2 -0
  176. package/dist/types/hooks.d.ts +7 -0
  177. package/dist/types/index.d.ts +7 -4
  178. package/dist/types/manager.d.ts +5 -0
  179. package/dist/types/runtime/api.d.ts +9 -0
  180. package/dist/types/runtime/context.d.ts +11 -0
  181. package/dist/types/runtime/hooks.d.ts +2 -0
  182. package/dist/types/runtime/index.d.ts +5 -0
  183. package/dist/types/runtime/run/create.d.ts +7 -0
  184. package/dist/types/runtime/run/index.d.ts +5 -0
  185. package/dist/types/runtime/run/types.d.ts +6 -0
  186. package/dist/types/server/api.d.ts +9 -0
  187. package/dist/types/server/context.d.ts +13 -0
  188. package/dist/types/server/hooks.d.ts +9 -0
  189. package/dist/types/server/index.d.ts +4 -0
  190. package/dist/types/server/run/create.d.ts +7 -0
  191. package/dist/types/server/run/index.d.ts +8 -0
  192. package/dist/types/server/run/types.d.ts +22 -0
  193. package/dist/types/types/cli/api.d.ts +49 -0
  194. package/dist/types/types/cli/context.d.ts +42 -0
  195. package/dist/types/types/cli/hooks.d.ts +72 -0
  196. package/dist/types/types/cli/index.d.ts +4 -0
  197. package/dist/types/types/cli/plugin.d.ts +17 -0
  198. package/dist/types/types/hooks.d.ts +27 -0
  199. package/dist/types/types/index.d.ts +4 -0
  200. package/dist/types/types/plugin.d.ts +46 -0
  201. package/dist/types/types/runtime/api.d.ts +22 -0
  202. package/dist/types/types/runtime/context.d.ts +13 -0
  203. package/dist/types/types/runtime/hooks.d.ts +39 -0
  204. package/dist/types/types/runtime/index.d.ts +4 -0
  205. package/dist/types/types/runtime/plugin.d.ts +14 -0
  206. package/dist/types/types/server/api.d.ts +19 -0
  207. package/dist/types/types/server/context.d.ts +28 -0
  208. package/dist/types/types/server/hooks.d.ts +24 -0
  209. package/dist/types/types/server/index.d.ts +4 -0
  210. package/dist/types/types/server/plugin.d.ts +14 -0
  211. package/dist/types/types/utils.d.ts +7 -0
  212. package/package.json +68 -14
  213. package/rslib.config.mts +4 -0
  214. package/rstest.config.ts +5 -0
  215. package/dist/cjs/farrow-pipeline/context.js +0 -44
  216. package/dist/cjs/farrow-pipeline/counter.js +0 -37
  217. package/dist/cjs/farrow-pipeline/index.js +0 -87
  218. package/dist/cjs/manager/async.js +0 -124
  219. package/dist/cjs/manager/index.js +0 -26
  220. package/dist/cjs/manager/shared.js +0 -60
  221. package/dist/cjs/manager/sync.js +0 -194
  222. package/dist/cjs/manager/types.js +0 -16
  223. package/dist/cjs/waterfall/async.js +0 -68
  224. package/dist/cjs/waterfall/index.js +0 -24
  225. package/dist/cjs/waterfall/sync.js +0 -67
  226. package/dist/cjs/workflow/async.js +0 -60
  227. package/dist/cjs/workflow/index.js +0 -30
  228. package/dist/cjs/workflow/interrupt.js +0 -64
  229. package/dist/cjs/workflow/parallel.js +0 -53
  230. package/dist/cjs/workflow/sync.js +0 -56
  231. package/dist/cjs/workflow/syncParallel.js +0 -55
  232. package/dist/esm/index.js +0 -882
  233. package/dist/esm-node/farrow-pipeline/context.js +0 -20
  234. package/dist/esm-node/farrow-pipeline/counter.js +0 -13
  235. package/dist/esm-node/farrow-pipeline/index.js +0 -60
  236. package/dist/esm-node/index.js +0 -4
  237. package/dist/esm-node/manager/async.js +0 -106
  238. package/dist/esm-node/manager/index.js +0 -3
  239. package/dist/esm-node/manager/shared.js +0 -32
  240. package/dist/esm-node/manager/sync.js +0 -172
  241. package/dist/esm-node/waterfall/async.js +0 -42
  242. package/dist/esm-node/waterfall/index.js +0 -2
  243. package/dist/esm-node/waterfall/sync.js +0 -41
  244. package/dist/esm-node/workflow/async.js +0 -35
  245. package/dist/esm-node/workflow/index.js +0 -5
  246. package/dist/esm-node/workflow/interrupt.js +0 -39
  247. package/dist/esm-node/workflow/parallel.js +0 -28
  248. package/dist/esm-node/workflow/sync.js +0 -31
  249. package/dist/esm-node/workflow/syncParallel.js +0 -30
  250. package/dist/types/farrow-pipeline/context.d.ts +0 -12
  251. package/dist/types/farrow-pipeline/counter.d.ts +0 -11
  252. package/dist/types/farrow-pipeline/index.d.ts +0 -29
  253. package/dist/types/manager/async.d.ts +0 -54
  254. package/dist/types/manager/index.d.ts +0 -3
  255. package/dist/types/manager/shared.d.ts +0 -12
  256. package/dist/types/manager/sync.d.ts +0 -66
  257. package/dist/types/manager/types.d.ts +0 -33
  258. package/dist/types/waterfall/async.d.ts +0 -21
  259. package/dist/types/waterfall/index.d.ts +0 -2
  260. package/dist/types/waterfall/sync.d.ts +0 -20
  261. package/dist/types/workflow/async.d.ts +0 -12
  262. package/dist/types/workflow/index.d.ts +0 -5
  263. package/dist/types/workflow/interrupt.d.ts +0 -12
  264. package/dist/types/workflow/parallel.d.ts +0 -10
  265. package/dist/types/workflow/sync.d.ts +0 -11
  266. package/dist/types/workflow/syncParallel.d.ts +0 -10
  267. /package/dist/esm-node/{manager/types.js → cli/run/types.mjs} +0 -0
@@ -0,0 +1,45 @@
1
+ import { merge } from "@modern-js/runtime-utils/merge";
2
+ import { createPluginManager } from "../../manager.mjs";
3
+ import { initPluginAPI } from "../api.mjs";
4
+ import { createRuntimeContext, initRuntimeContext } from "../context.mjs";
5
+ const createRuntime = ()=>{
6
+ let initOptions;
7
+ const pluginManager = createPluginManager();
8
+ function init(options) {
9
+ pluginManager.clear();
10
+ initOptions = options;
11
+ const { plugins: allPlugins, handleSetupResult } = options;
12
+ pluginManager.addPlugins(allPlugins);
13
+ const plugins = pluginManager.getPlugins();
14
+ const context = createRuntimeContext({
15
+ runtimeContext: initRuntimeContext(),
16
+ config: initOptions.config,
17
+ plugins
18
+ });
19
+ const pluginAPI = initPluginAPI({
20
+ context,
21
+ pluginManager,
22
+ plugins
23
+ });
24
+ context.pluginAPI = pluginAPI;
25
+ for (const plugin of plugins){
26
+ const setupResult = plugin.setup?.(pluginAPI);
27
+ if (handleSetupResult) handleSetupResult(setupResult, pluginAPI);
28
+ }
29
+ return {
30
+ runtimeContext: context
31
+ };
32
+ }
33
+ function run(options) {
34
+ const { runtimeContext } = init(options);
35
+ const configs = runtimeContext.hooks.config.call().filter((config)=>Boolean(config));
36
+ runtimeContext.config = merge({}, ...configs, runtimeContext.config || {});
37
+ return {
38
+ runtimeContext
39
+ };
40
+ }
41
+ return {
42
+ run
43
+ };
44
+ };
45
+ export { createRuntime };
@@ -0,0 +1,3 @@
1
+ import { createRuntime } from "./create.mjs";
2
+ const runtime = createRuntime();
3
+ export { runtime };
File without changes
@@ -0,0 +1,59 @@
1
+ import { createDebugger } from "@modern-js/utils";
2
+ import { assign as lodash_assign } from "@modern-js/utils/lodash";
3
+ const debug = createDebugger('plugin-server-v2');
4
+ function initPluginAPI({ context, pluginManager }) {
5
+ const { hooks, extendsHooks, plugins } = context;
6
+ function getServerContext() {
7
+ if (context) {
8
+ const { hooks, extendsHooks, config, pluginAPI, ...serverContext } = context;
9
+ serverContext._internalContext = context;
10
+ return serverContext;
11
+ }
12
+ throw new Error('Cannot access context');
13
+ }
14
+ function getConfig() {
15
+ if (context.config) return context.config;
16
+ throw new Error('Cannot access config');
17
+ }
18
+ function getHooks() {
19
+ return context.hooks;
20
+ }
21
+ const extendsPluginApi = {};
22
+ plugins.forEach((plugin)=>{
23
+ const { _registryApi } = plugin;
24
+ if (_registryApi) {
25
+ const apis = _registryApi(getServerContext, updateServerContext);
26
+ Object.keys(apis).forEach((apiName)=>{
27
+ extendsPluginApi[apiName] = apis[apiName];
28
+ });
29
+ }
30
+ });
31
+ if (extendsHooks) Object.keys(extendsHooks).forEach((hookName)=>{
32
+ extendsPluginApi[hookName] = extendsHooks[hookName].tap;
33
+ });
34
+ function updateServerContext(updateContext) {
35
+ context = lodash_assign(context, updateContext);
36
+ }
37
+ const pluginAPI = {
38
+ isPluginExists: pluginManager.isPluginExists,
39
+ getServerContext,
40
+ getServerConfig: getConfig,
41
+ getHooks,
42
+ updateServerContext,
43
+ modifyConfig: hooks.modifyConfig.tap,
44
+ onPrepare: hooks.onPrepare.tap,
45
+ onReset: hooks.onReset.tap,
46
+ ...extendsPluginApi
47
+ };
48
+ if ("u" < typeof Proxy) return pluginAPI;
49
+ return new Proxy(pluginAPI, {
50
+ get (target, prop) {
51
+ if ('then' === prop) return;
52
+ if (prop in target) return target[prop];
53
+ return ()=>{
54
+ debug(`api.${prop.toString()} not exist`);
55
+ };
56
+ }
57
+ });
58
+ }
59
+ export { debug, initPluginAPI };
@@ -0,0 +1,38 @@
1
+ import { initHooks } from "./hooks.mjs";
2
+ function initServerContext(params) {
3
+ const { options, plugins } = params;
4
+ return {
5
+ routes: options.routes || [],
6
+ appDirectory: options.appContext.appDirectory || '',
7
+ apiDirectory: options.appContext.apiDirectory,
8
+ lambdaDirectory: options.appContext.lambdaDirectory,
9
+ internalDirectory: options.appContext.internalDirectory || '',
10
+ sharedDirectory: options.appContext.sharedDirectory || '',
11
+ distDirectory: options.pwd,
12
+ metaName: options.metaName || 'modern-js',
13
+ plugins: plugins,
14
+ middlewares: [],
15
+ bffRuntimeFramework: options.appContext.bffRuntimeFramework,
16
+ renderMiddlewares: []
17
+ };
18
+ }
19
+ function createServerContext({ serverContext, config }) {
20
+ const { plugins } = serverContext;
21
+ const extendsHooks = {};
22
+ plugins.forEach((plugin)=>{
23
+ const { registryHooks = {} } = plugin;
24
+ Object.keys(registryHooks).forEach((hookName)=>{
25
+ extendsHooks[hookName] = registryHooks[hookName];
26
+ });
27
+ });
28
+ return {
29
+ ...serverContext,
30
+ hooks: {
31
+ ...initHooks(),
32
+ ...extendsHooks
33
+ },
34
+ extendsHooks,
35
+ config
36
+ };
37
+ }
38
+ export { createServerContext, initServerContext };
@@ -0,0 +1,9 @@
1
+ import { createAsyncHook } from "../hooks.mjs";
2
+ function initHooks() {
3
+ return {
4
+ modifyConfig: createAsyncHook(),
5
+ onPrepare: createAsyncHook(),
6
+ onReset: createAsyncHook()
7
+ };
8
+ }
9
+ export { initHooks };
@@ -0,0 +1,5 @@
1
+ import { initPluginAPI } from "./api.mjs";
2
+ import { createServerContext, initServerContext } from "./context.mjs";
3
+ import { initHooks } from "./hooks.mjs";
4
+ import { createServer, server } from "./run/index.mjs";
5
+ export { createServer, createServerContext, initHooks, initPluginAPI, initServerContext, server };
@@ -0,0 +1,45 @@
1
+ import { createPluginManager } from "../../manager.mjs";
2
+ import { initPluginAPI } from "../api.mjs";
3
+ import { createServerContext, initServerContext } from "../context.mjs";
4
+ const createServer = ()=>{
5
+ let initOptions;
6
+ const pluginManager = createPluginManager();
7
+ function init(options) {
8
+ pluginManager.clear();
9
+ initOptions = options;
10
+ const { plugins: allPlugins, options: runOptions, handleSetupResult } = initOptions;
11
+ pluginManager.addPlugins(allPlugins);
12
+ const plugins = pluginManager.getPlugins();
13
+ const context = createServerContext({
14
+ serverContext: initServerContext({
15
+ plugins,
16
+ options: runOptions
17
+ }),
18
+ config: initOptions.config
19
+ });
20
+ const pluginAPI = initPluginAPI({
21
+ context,
22
+ pluginManager
23
+ });
24
+ context.pluginAPI = pluginAPI;
25
+ for (const plugin of plugins){
26
+ const setupResult = plugin.setup?.(pluginAPI);
27
+ if (handleSetupResult) handleSetupResult(setupResult, pluginAPI);
28
+ }
29
+ return {
30
+ serverContext: context
31
+ };
32
+ }
33
+ async function run(options) {
34
+ const { serverContext } = init(options);
35
+ const config = await serverContext.hooks.modifyConfig.call(serverContext.config);
36
+ serverContext.config = config;
37
+ return {
38
+ serverContext
39
+ };
40
+ }
41
+ return {
42
+ run
43
+ };
44
+ };
45
+ export { createServer };
@@ -0,0 +1,3 @@
1
+ import { createServer } from "./create.mjs";
2
+ const server = createServer();
3
+ export { createServer, server };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,8 @@
1
+ import type { CLIPluginAPI } from '../types/cli/api';
2
+ import type { InternalContext } from '../types/cli/context';
3
+ import type { CLIPluginExtends } from '../types/cli/plugin';
4
+ import type { PluginManager } from '../types/plugin';
5
+ export declare function initPluginAPI<Extends extends CLIPluginExtends>({ context, pluginManager, }: {
6
+ context: InternalContext<Extends>;
7
+ pluginManager: PluginManager;
8
+ }): CLIPluginAPI<Extends>;
@@ -0,0 +1,19 @@
1
+ import type { AppContext, InternalContext } from '../types/cli/context';
2
+ import type { CLIPlugin, CLIPluginExtends } from '../types/cli/plugin';
3
+ interface ContextParams<Extends extends CLIPluginExtends> {
4
+ appContext: AppContext<Extends>;
5
+ config: Extends['config'];
6
+ normalizedConfig: Extends['normalizedConfig'];
7
+ }
8
+ export declare function initAppContext<Extends extends CLIPluginExtends>(params: {
9
+ packageName: string;
10
+ configFile: string;
11
+ command: string;
12
+ appDirectory: string;
13
+ metaName: string;
14
+ plugins: CLIPlugin<Extends>[];
15
+ srcDir?: string;
16
+ distDir?: string;
17
+ }): AppContext<Extends>;
18
+ export declare function createContext<Extends extends CLIPluginExtends>({ appContext, config, normalizedConfig, }: ContextParams<Extends>): Promise<InternalContext<Extends>>;
19
+ export {};
@@ -0,0 +1,42 @@
1
+ import type { OnAfterBuildFn, OnAfterCreateCompilerFn, OnBeforeBuildFn, OnBeforeCreateCompilerFn, OnDevCompileDoneFn } from '@rsbuild/core';
2
+ import type { AddCommandFn, AddWatchFilesFn, ConfigFn, InternalRuntimePluginsFn, InternalServerPluginsFn, ModifyBundlerChainFn, ModifyConfigFn, ModifyHtmlPartialsFn, ModifyResolvedConfigFn, ModifyRsbuildConfigFn, ModifyRspackConfigFn, ModifyServerRoutesFn, OnAfterDeployFn, OnAfterDevFn, OnBeforeDeployFn, OnBeforeDevFn, OnBeforeExitFn, OnBeforeRestartFn, OnFileChangedFn, OnPrepareFn, RuntimePluginConfig, ServerPluginConfig } from '../types/cli/hooks';
3
+ import type { DeepPartial } from '../types/utils';
4
+ export type { OnAfterBuildFn, OnAfterCreateCompilerFn, OnBeforeBuildFn, OnBeforeCreateCompilerFn, OnDevCompileDoneFn, AddCommandFn, AddWatchFilesFn, ConfigFn, ModifyBundlerChainFn, ModifyConfigFn, ModifyHtmlPartialsFn, ModifyResolvedConfigFn, ModifyRsbuildConfigFn, ModifyRspackConfigFn, OnAfterDeployFn, OnBeforeDeployFn, OnBeforeDevFn, OnAfterDevFn, OnBeforeExitFn, OnBeforeRestartFn, OnFileChangedFn, OnPrepareFn, InternalRuntimePluginsFn, InternalServerPluginsFn, ModifyServerRoutesFn, RuntimePluginConfig, ServerPluginConfig, };
5
+ export declare function initHooks<Config, NormalizedConfig, ExtendBuildUtils, ExtendConfigUtils>(): {
6
+ /**
7
+ * add config for this cli plugin
8
+ */
9
+ config: import("..").CollectAsyncHook<ConfigFn<DeepPartial<Config>>>;
10
+ /**
11
+ * @private
12
+ * modify config for this cli plugin
13
+ */
14
+ modifyConfig: import("..").AsyncHook<ModifyConfigFn<Config, ExtendConfigUtils>>;
15
+ /**
16
+ * modify final config
17
+ */
18
+ modifyResolvedConfig: import("..").AsyncHook<ModifyResolvedConfigFn<NormalizedConfig, ExtendConfigUtils>>;
19
+ modifyRsbuildConfig: import("..").AsyncHook<ModifyRsbuildConfigFn<ExtendBuildUtils>>;
20
+ modifyBundlerChain: import("..").AsyncHook<ModifyBundlerChainFn<ExtendBuildUtils>>;
21
+ modifyRspackConfig: import("..").AsyncHook<ModifyRspackConfigFn<ExtendBuildUtils>>;
22
+ modifyHtmlPartials: import("..").AsyncHook<ModifyHtmlPartialsFn>;
23
+ addCommand: import("..").AsyncHook<AddCommandFn>;
24
+ addWatchFiles: import("..").CollectAsyncHook<AddWatchFilesFn>;
25
+ onPrepare: import("..").AsyncHook<OnPrepareFn>;
26
+ onFileChanged: import("..").AsyncHook<OnFileChangedFn>;
27
+ onBeforeRestart: import("..").AsyncHook<OnBeforeRestartFn>;
28
+ onBeforeCreateCompiler: import("..").AsyncHook<OnBeforeCreateCompilerFn>;
29
+ onAfterCreateCompiler: import("..").AsyncHook<OnAfterCreateCompilerFn>;
30
+ onDevCompileDone: import("..").AsyncHook<import("@rsbuild/core").OnAfterDevCompileFn>;
31
+ onBeforeBuild: import("..").AsyncHook<OnBeforeBuildFn>;
32
+ onAfterBuild: import("..").AsyncHook<OnAfterBuildFn>;
33
+ onBeforeDev: import("..").AsyncHook<OnBeforeDevFn>;
34
+ onAfterDev: import("..").AsyncHook<OnAfterDevFn>;
35
+ onBeforeDeploy: import("..").AsyncHook<OnBeforeDeployFn>;
36
+ onAfterDeploy: import("..").AsyncHook<OnAfterDeployFn>;
37
+ onBeforeExit: import("..").AsyncHook<OnBeforeExitFn>;
38
+ _internalRuntimePlugins: import("..").AsyncHook<InternalRuntimePluginsFn>;
39
+ _internalServerPlugins: import("..").AsyncHook<InternalServerPluginsFn>;
40
+ modifyServerRoutes: import("..").AsyncHook<ModifyServerRoutesFn>;
41
+ };
42
+ export type Hooks<Config, NormalizedConfig, ExtendBuildUtils, ExtendConfigUtils> = ReturnType<typeof initHooks<Config, NormalizedConfig, ExtendBuildUtils, ExtendConfigUtils>>;
@@ -0,0 +1,6 @@
1
+ export { initPluginAPI } from './api';
2
+ export { initAppContext, createContext } from './context';
3
+ export { initHooks, type Hooks, type OnAfterBuildFn, type OnAfterCreateCompilerFn, type OnBeforeBuildFn, type OnBeforeCreateCompilerFn, type OnDevCompileDoneFn, type AddCommandFn, type AddWatchFilesFn, type ConfigFn, type ModifyBundlerChainFn, type ModifyConfigFn, type ModifyHtmlPartialsFn, type ModifyResolvedConfigFn, type ModifyRsbuildConfigFn, type ModifyRspackConfigFn, type OnAfterDeployFn, type OnBeforeDeployFn, type OnBeforeDevFn, type OnAfterDevFn, type OnBeforeExitFn, type OnBeforeRestartFn, type OnFileChangedFn, type OnPrepareFn, type InternalRuntimePluginsFn, type InternalServerPluginsFn, type ModifyServerRoutesFn, type RuntimePluginConfig, type ServerPluginConfig, } from './hooks';
4
+ export { cli, createLoadedConfig, initAppDir, createCli } from './run';
5
+ export { createStorybookOptions } from './run/create';
6
+ export { mergeConfig } from './run/utils/mergeConfig';
@@ -0,0 +1,2 @@
1
+ import type { LoadedConfig } from '../types';
2
+ export declare function createLoadedConfig<T>(appDirectory: string, configFilePath: string, otherConfig?: T): Promise<LoadedConfig<T>>;
@@ -0,0 +1,3 @@
1
+ import type { DeepPartial } from '../../../types/utils';
2
+ import type { LoadedConfig } from '../types';
3
+ export declare const createResolveConfig: <Config, NormalizedConfig>(loaded: LoadedConfig<Config>, configs: DeepPartial<Config>[]) => Promise<NormalizedConfig>;
@@ -0,0 +1,25 @@
1
+ export declare const getConfigFilePath: (appDirectory: string, configFilePath: string) => string;
2
+ /**
3
+ *
4
+ * @param targetDir target dir
5
+ * @param overtime Unit of second
6
+ */
7
+ export declare const clearFilesOverTime: (targetDir: string, overtime: number) => Promise<void>;
8
+ /**
9
+ * Parse and load user config file, support extensions like .ts, mjs, js, ejs.
10
+ * @param appDirectory - App root directory, from which start search user config file.
11
+ * @param configFile - Specific absolute config file path.
12
+ * @returns Object contain config file path, user config object and dependency files used by config file.
13
+ */
14
+ /**
15
+ * Load a TypeScript file dynamically using jiti
16
+ * @param {string} filePath - Path to the TypeScript file (absolute or relative)
17
+ * @returns {any} - The loaded module object
18
+ */
19
+ export declare const loadTypeScriptFile: (filePath: string) => any;
20
+ export declare const loadConfig: <T>(appDirectory: string, configFile: string) => Promise<{
21
+ packageName: string;
22
+ configFile: string;
23
+ config?: T;
24
+ pkgConfig?: T;
25
+ }>;
@@ -0,0 +1,16 @@
1
+ import type { InternalContext } from '../../types/cli/context';
2
+ import type { CLIPluginExtends } from '../../types/cli/plugin';
3
+ import type { CLIRunOptions } from './types';
4
+ export declare const createCli: <Extends extends CLIPluginExtends>() => {
5
+ init: (options: CLIRunOptions<Extends>) => Promise<{
6
+ appContext: InternalContext<Extends>;
7
+ }>;
8
+ run: (options: CLIRunOptions<Extends>) => Promise<void>;
9
+ getPrevInitOptions: () => CLIRunOptions<Extends>;
10
+ };
11
+ type UselessOptions = 'handleSetupResult' | 'command' | 'internalPlugins';
12
+ export declare const createStorybookOptions: <Extends extends CLIPluginExtends>(options: Omit<CLIRunOptions<Extends>, UselessOptions>) => Promise<{
13
+ config: Awaited<Extends["normalizedConfig"]> | NonNullable<Awaited<import("../../types/utils").UnwrapPromise<Extends["normalizedConfig"]>>>;
14
+ getAppContext: () => Readonly<import("../../types/cli/context").AppContext<Extends> & Extends["extendContext"]>;
15
+ }>;
16
+ export {};
@@ -0,0 +1,13 @@
1
+ import { createCli } from './create';
2
+ export { createLoadedConfig } from './config/createLoadedConfig';
3
+ export { initAppDir } from './utils/initAppDir';
4
+ export { loadTypeScriptFile } from './config/loadConfig';
5
+ export { createCli };
6
+ export { run } from './run';
7
+ export declare const cli: {
8
+ init: (options: import("./types").CLIRunOptions<import("../..").CLIPluginExtends<{}, {}, {}, {}, {}, {}, {}>>) => Promise<{
9
+ appContext: import("../..").InternalContext<import("../..").CLIPluginExtends<{}, {}, {}, {}, {}, {}, {}>>;
10
+ }>;
11
+ run: (options: import("./types").CLIRunOptions<import("../..").CLIPluginExtends<{}, {}, {}, {}, {}, {}, {}>>) => Promise<void>;
12
+ getPrevInitOptions: () => import("./types").CLIRunOptions<import("../..").CLIPluginExtends<{}, {}, {}, {}, {}, {}, {}>>;
13
+ };
@@ -0,0 +1,2 @@
1
+ import type { CLIOptions } from './types';
2
+ export declare const run: (options: CLIOptions) => Promise<void>;
@@ -0,0 +1,32 @@
1
+ import type { CLIPluginExtends } from '../../types/cli';
2
+ import type { Plugin } from '../../types/plugin';
3
+ export interface CLIOptions<Extends extends CLIPluginExtends = {
4
+ config: {};
5
+ }> {
6
+ cwd?: string;
7
+ version?: string;
8
+ metaName?: string;
9
+ /**
10
+ * The initial log message when CLI started
11
+ */
12
+ initialLog?: string;
13
+ /**
14
+ * other config, overrides config file content
15
+ */
16
+ config?: Extends['config'];
17
+ configFile: string;
18
+ internalPlugins?: Plugin[];
19
+ handleSetupResult?: (params: any, api: Record<string, any>) => Promise<void> | void;
20
+ }
21
+ export type LoadedConfig<T> = {
22
+ packageName: string;
23
+ configFile: string;
24
+ config: T;
25
+ pkgConfig?: T;
26
+ jsConfig?: T;
27
+ };
28
+ export interface CLIRunOptions<Extends extends CLIPluginExtends = {
29
+ config: {};
30
+ }> extends CLIOptions<Extends> {
31
+ command: string;
32
+ }
@@ -0,0 +1 @@
1
+ export declare function checkIsDuplicationPlugin(plugins: (string | undefined)[]): void;
@@ -0,0 +1,5 @@
1
+ import { type Command, program } from '@modern-js/utils';
2
+ export declare const setProgramVersion: (version?: string) => void;
3
+ export declare function initCommandsMap(): void;
4
+ export type { Command };
5
+ export { program };
@@ -0,0 +1,3 @@
1
+ import type { InternalContext } from '../../../types';
2
+ import type { CLIPluginExtends } from '../../../types/cli/plugin';
3
+ export declare const createFileWatcher: <Extends extends CLIPluginExtends>(appContext: InternalContext<Extends>) => Promise<import("@modern-js/utils").FSWatcher | undefined>;
@@ -0,0 +1 @@
1
+ export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
@@ -0,0 +1 @@
1
+ export declare const initAppDir: (currentDir?: string) => Promise<string>;
@@ -0,0 +1,2 @@
1
+ import type { DeepPartial } from '../../../types/utils';
2
+ export declare const mergeConfig: <Config, NormalizedConfig>(configs: Array<DeepPartial<Config>>) => NormalizedConfig;
@@ -0,0 +1,7 @@
1
+ import type { AsyncHook, AsyncInterruptHook, AsyncPipelineHook, CollectAsyncHook, CollectSyncHook, SyncHook } from './types/hooks';
2
+ export declare function createAsyncInterruptHook<Callback extends (...args: any[]) => any>(): AsyncInterruptHook<Callback>;
3
+ export declare function createSyncHook<Callback extends (...args: any[]) => any>(): SyncHook<Callback>;
4
+ export declare function createAsyncHook<Callback extends (...args: any[]) => any>(): AsyncHook<Callback>;
5
+ export declare function createCollectAsyncHook<Callback extends (...params: any[]) => any>(): CollectAsyncHook<Callback>;
6
+ export declare function createCollectSyncHook<Callback extends (...params: any[]) => any>(): CollectSyncHook<Callback>;
7
+ export declare function createAsyncPipelineHook<Callback extends (...args: any[]) => any>(): AsyncPipelineHook<Callback>;
@@ -1,4 +1,7 @@
1
- export * from './farrow-pipeline';
2
- export * from './waterfall';
3
- export * from './workflow';
4
- export * from './manager';
1
+ export { createPluginManager } from './manager';
2
+ export { createSyncHook, createAsyncHook, createCollectSyncHook, createCollectAsyncHook, createAsyncInterruptHook, createAsyncPipelineHook, } from './hooks';
3
+ export type { Plugin, PluginManager, TransformFunction, } from './types/plugin';
4
+ export type { CLIPluginAPI, AppContext, InternalContext, Entrypoint, CLIPlugin, CLIPluginExtends, RuntimePluginConfig, ServerPluginConfig, } from './types/cli';
5
+ export type { RuntimePluginAPI, RuntimeContext, InternalRuntimeContext, RuntimePlugin, RuntimePluginExtends, } from './types/runtime';
6
+ export type { ServerPluginAPI, ServerContext, InternalServerContext, ServerPlugin, ServerPluginExtends, ResetEvent, FileChangeEvent, } from './types/server';
7
+ export type { SyncHook, AsyncHook, AsyncInterruptHook, CollectAsyncHook, CollectSyncHook, PluginHook, PluginHookTap, AsyncPipelineHook, } from './types/hooks';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * NOTE: This file will be used in both Node.js and runtime environments. Please avoid importing Node.js-specific APIs.
3
+ */
4
+ import type { PluginManager } from './types/plugin';
5
+ export declare function createPluginManager(): PluginManager;
@@ -0,0 +1,9 @@
1
+ import type { PluginManager } from '../types/plugin';
2
+ import type { RuntimePluginAPI } from '../types/runtime/api';
3
+ import type { InternalRuntimeContext } from '../types/runtime/context';
4
+ import type { RuntimePlugin, RuntimePluginExtends } from '../types/runtime/plugin';
5
+ export declare function initPluginAPI<Extends extends RuntimePluginExtends>({ context, plugins, }: {
6
+ context: InternalRuntimeContext<Extends>;
7
+ pluginManager: PluginManager;
8
+ plugins: RuntimePlugin<Extends>[];
9
+ }): RuntimePluginAPI<Extends>;
@@ -0,0 +1,11 @@
1
+ import type { InternalRuntimeContext, RuntimeContext } from '../types/runtime/context';
2
+ import type { RuntimePlugin, RuntimePluginExtends } from '../types/runtime/plugin';
3
+ export interface RuntimeConfig<Extends extends RuntimePluginExtends> {
4
+ plugins?: RuntimePlugin<Extends>[];
5
+ }
6
+ export declare function initRuntimeContext(): RuntimeContext;
7
+ export declare function createRuntimeContext<Extends extends RuntimePluginExtends>({ runtimeContext, config, plugins, }: {
8
+ runtimeContext: RuntimeContext & Extends['extendContext'];
9
+ config: Extends['config'];
10
+ plugins: RuntimePlugin<Extends>[];
11
+ }): InternalRuntimeContext<Extends>;
@@ -0,0 +1,2 @@
1
+ import type { Hooks } from '../types/runtime/hooks';
2
+ export declare function initHooks<RuntimeConfig, RuntimeContext>(): Hooks<RuntimeConfig, RuntimeContext>;
@@ -0,0 +1,5 @@
1
+ export { initPluginAPI } from './api';
2
+ export { initRuntimeContext, createRuntimeContext } from './context';
3
+ export { initHooks } from './hooks';
4
+ export { runtime } from './run';
5
+ export type { RuntimePluginAPI, RuntimeContext, InternalRuntimeContext, RuntimePlugin, RuntimePluginExtends, Hooks, } from '../types/runtime';
@@ -0,0 +1,7 @@
1
+ import type { RuntimePluginExtends } from '../../types/runtime/plugin';
2
+ import type { RuntimeRunOptions } from './types';
3
+ export declare const createRuntime: <Extends extends RuntimePluginExtends>() => {
4
+ run: (options: RuntimeRunOptions) => {
5
+ runtimeContext: import("..").InternalRuntimeContext<Extends>;
6
+ };
7
+ };
@@ -0,0 +1,5 @@
1
+ export declare const runtime: {
2
+ run: (options: import("./types").RuntimeRunOptions) => {
3
+ runtimeContext: import("..").InternalRuntimeContext<import("..").RuntimePluginExtends<{}, {}, {}, {}>>;
4
+ };
5
+ };
@@ -0,0 +1,6 @@
1
+ import type { Plugin } from '../../types/plugin';
2
+ export type RuntimeRunOptions = {
3
+ config: Record<string, any>;
4
+ plugins: Plugin[];
5
+ handleSetupResult?: (params: any, api: Record<string, any>) => Promise<void> | void;
6
+ };
@@ -0,0 +1,9 @@
1
+ import type { PluginManager } from '../types/plugin';
2
+ import type { ServerPluginAPI } from '../types/server/api';
3
+ import type { InternalServerContext } from '../types/server/context';
4
+ import type { ServerPluginExtends } from '../types/server/plugin';
5
+ export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
6
+ export declare function initPluginAPI<Extends extends ServerPluginExtends>({ context, pluginManager, }: {
7
+ context: InternalServerContext<Extends>;
8
+ pluginManager: PluginManager;
9
+ }): ServerPluginAPI<Extends>;
@@ -0,0 +1,13 @@
1
+ import type { InternalServerContext, ServerContext } from '../types/server/context';
2
+ import type { ServerPlugin, ServerPluginExtends } from '../types/server/plugin';
3
+ import type { ServerCreateOptions } from './run/types';
4
+ interface ContextParams<Extends extends ServerPluginExtends> {
5
+ serverContext: ServerContext<Extends>;
6
+ config: Extends['config'];
7
+ }
8
+ export declare function initServerContext<Extends extends ServerPluginExtends>(params: {
9
+ options: ServerCreateOptions;
10
+ plugins: ServerPlugin<Extends>[];
11
+ }): ServerContext<Extends> & Extends['extendContext'];
12
+ export declare function createServerContext<Extends extends ServerPluginExtends>({ serverContext, config, }: ContextParams<Extends>): InternalServerContext<Extends>;
13
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { ModifyConfigFn, OnPrepareFn, OnResetFn } from '../types/server/hooks';
2
+ import type { DeepPartial } from '../types/utils';
3
+ export type { OnResetFn, OnPrepareFn, ModifyConfigFn };
4
+ export declare function initHooks<Config>(): {
5
+ modifyConfig: import("..").AsyncHook<ModifyConfigFn<DeepPartial<Config>>>;
6
+ onPrepare: import("..").AsyncHook<OnPrepareFn>;
7
+ onReset: import("..").AsyncHook<OnResetFn>;
8
+ };
9
+ export type Hooks<Config> = ReturnType<typeof initHooks<Config>>;
@@ -0,0 +1,4 @@
1
+ export { initPluginAPI } from './api';
2
+ export { initServerContext, createServerContext } from './context';
3
+ export { initHooks, type Hooks, type OnPrepareFn, type ModifyConfigFn, type OnResetFn, } from './hooks';
4
+ export { server, createServer, type ServerCreateOptions } from './run';
@@ -0,0 +1,7 @@
1
+ import type { ServerPluginExtends } from '../../types/server/plugin';
2
+ import type { ServerRunOptions } from './types';
3
+ export declare const createServer: <Extends extends ServerPluginExtends>() => {
4
+ run: (options: ServerRunOptions) => Promise<{
5
+ serverContext: import("../..").InternalServerContext<Extends>;
6
+ }>;
7
+ };