@modern-js/server-core 2.48.5-alpha.0 → 2.48.5-alpha.2

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 (46) hide show
  1. package/dist/cjs/base/adapters/node/bff.js +4 -3
  2. package/dist/cjs/base/index.js +4 -2
  3. package/dist/cjs/{core/hono.js → base/middlewares/frameworkHeader.js} +17 -2
  4. package/dist/cjs/base/middlewares/index.js +3 -1
  5. package/dist/cjs/base/middlewares/renderHandler/render.js +2 -1
  6. package/dist/cjs/base/serverBase.js +11 -11
  7. package/dist/cjs/base/utils/index.js +0 -11
  8. package/dist/cjs/core/plugin.js +0 -39
  9. package/dist/esm/base/adapters/node/bff.js +4 -4
  10. package/dist/esm/base/index.js +3 -2
  11. package/dist/esm/base/middlewares/frameworkHeader.js +27 -0
  12. package/dist/esm/base/middlewares/index.js +1 -0
  13. package/dist/esm/base/middlewares/renderHandler/render.js +2 -1
  14. package/dist/esm/base/serverBase.js +11 -11
  15. package/dist/esm/base/utils/index.js +0 -6
  16. package/dist/esm/core/plugin.js +0 -39
  17. package/dist/esm-node/base/adapters/node/bff.js +4 -3
  18. package/dist/esm-node/base/index.js +3 -2
  19. package/dist/esm-node/base/middlewares/frameworkHeader.js +7 -0
  20. package/dist/esm-node/base/middlewares/index.js +1 -0
  21. package/dist/esm-node/base/middlewares/renderHandler/render.js +2 -1
  22. package/dist/esm-node/base/serverBase.js +11 -11
  23. package/dist/esm-node/base/utils/index.js +0 -6
  24. package/dist/esm-node/core/plugin.js +0 -39
  25. package/dist/types/base/adapters/node/bff.d.ts +1 -2
  26. package/dist/types/base/adapters/node/hono.d.ts +3 -3
  27. package/dist/types/base/adapters/node/loadServer.d.ts +1 -1
  28. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +2 -2
  29. package/dist/types/base/adapters/node/middlewares/templates.d.ts +2 -2
  30. package/dist/types/base/index.d.ts +3 -3
  31. package/dist/types/base/middlewares/customServer/base.d.ts +2 -2
  32. package/dist/types/base/middlewares/customServer/context.d.ts +3 -3
  33. package/dist/types/base/middlewares/frameworkHeader.d.ts +2 -0
  34. package/dist/types/base/middlewares/index.d.ts +1 -0
  35. package/dist/types/base/middlewares/monitor.d.ts +5 -5
  36. package/dist/types/base/middlewares/renderHandler/index.d.ts +1 -2
  37. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +1 -2
  38. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +1 -2
  39. package/dist/types/base/serverBase.d.ts +22 -4
  40. package/dist/types/base/utils/index.d.ts +0 -1
  41. package/dist/types/core/plugin.d.ts +10 -298
  42. package/dist/types/core/server.d.ts +2 -64
  43. package/package.json +5 -5
  44. package/dist/esm/core/hono.js +0 -0
  45. package/dist/esm-node/core/hono.js +0 -0
  46. package/dist/types/core/hono.d.ts +0 -1
@@ -2,33 +2,14 @@ import { createContext, createAsyncManager, createAsyncPipeline, createAsyncWate
2
2
  const gather = createParallelWorkflow();
3
3
  const config = createWaterfall();
4
4
  const prepare = createWaterfall();
5
- const prepareLoaderHandler = createAsyncPipeline();
6
5
  const prepareWebServer = createAsyncPipeline();
7
6
  const prepareApiServer = createAsyncPipeline();
8
7
  const onApiChange = createAsyncWaterfall();
9
8
  const repack = createWaterfall();
10
9
  const beforeServerInit = createAsyncWaterfall();
11
- const setupCompiler = createParallelWorkflow();
12
- const beforeRouteSet = createAsyncPipeline();
13
- const afterRouteSet = createAsyncPipeline();
14
- const beforeProdServer = createParallelWorkflow();
15
- const afterProdServer = createParallelWorkflow();
16
- const listen = createParallelWorkflow();
17
- const beforeServerReset = createParallelWorkflow();
18
- const afterServerReset = createParallelWorkflow();
19
- const extendSSRContext = createAsyncWaterfall();
20
- const extendContext = createAsyncPipeline();
21
- const handleError = createParallelWorkflow();
22
- const handleSSRFallback = createParallelWorkflow();
23
- const beforeMatch = createAsyncPipeline();
24
10
  const afterMatch = createAsyncPipeline();
25
- const prefetch = createParallelWorkflow();
26
- const renderToString = createAsyncPipeline();
27
- const beforeRender = createAsyncPipeline();
28
11
  const afterRender = createAsyncPipeline();
29
12
  const afterStreamingRender = createAsyncPipeline();
30
- const beforeSend = createAsyncPipeline();
31
- const afterSend = createParallelWorkflow();
32
13
  const reset = createParallelWorkflow();
33
14
  const AppContext = createContext({});
34
15
  const setAppContext = (value) => AppContext.set(value);
@@ -45,34 +26,14 @@ const serverHooks = {
45
26
  gather,
46
27
  config,
47
28
  prepare,
48
- prepareLoaderHandler,
49
29
  prepareWebServer,
50
30
  prepareApiServer,
51
31
  repack,
52
32
  onApiChange,
53
33
  beforeServerInit,
54
- setupCompiler,
55
- beforeRouteSet,
56
- afterRouteSet,
57
- beforeProdServer,
58
- afterProdServer,
59
- listen,
60
- beforeServerReset,
61
- afterServerReset,
62
- // request hook
63
- extendSSRContext,
64
- extendContext,
65
- handleError,
66
- handleSSRFallback,
67
- beforeMatch,
68
34
  afterMatch,
69
- prefetch,
70
- renderToString,
71
- beforeRender,
72
35
  afterRender,
73
36
  afterStreamingRender,
74
- beforeSend,
75
- afterSend,
76
37
  reset
77
38
  };
78
39
  const createServerManager = () => createAsyncManager(serverHooks, pluginAPI);
@@ -1,4 +1,3 @@
1
- import type { ServerBaseOptions } from '../../../core/server';
2
1
  import { BindRenderHandleOptions } from '../../../base/middlewares';
3
- import { ServerBase } from '../../serverBase';
2
+ import { ServerBase, type ServerBaseOptions } from '../../serverBase';
4
3
  export declare const bindBFFHandler: (server: ServerBase, options: ServerBaseOptions & BindRenderHandleOptions) => Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import { NodeRequest, NodeResponse } from '../../../core/plugin';
2
- import { HonoContext, HonoRequest, ServerEnv, Middleware, Next, ServerManifest } from '../../../core/server';
2
+ import { Context, HonoRequest, ServerEnv, Middleware, Next, ServerManifest } from '../../../core/server';
3
3
  type NodeBindings = {
4
4
  node: {
5
5
  req: NodeRequest & {
@@ -14,9 +14,9 @@ export type ServerNodeEnv = {
14
14
  Bindings: NodeBindings;
15
15
  };
16
16
  export type ServerNodeMiddleware = Middleware<ServerNodeEnv>;
17
- export type ServerNodeContext = HonoContext<ServerNodeEnv>;
17
+ export type ServerNodeContext = Context<ServerNodeEnv>;
18
18
  type Handler = (req: NodeRequest, res: NodeResponse) => void | Promise<void>;
19
- export declare const httpCallBack2HonoMid: (handler: Handler) => (context: HonoContext<ServerNodeEnv & ServerEnv>, next: Next) => Promise<void>;
19
+ export declare const httpCallBack2HonoMid: (handler: Handler) => (context: Context<ServerNodeEnv & ServerEnv>, next: Next) => Promise<void>;
20
20
  type ConnectMiddleware = ((req: NodeRequest, res: NodeResponse, callback: (...args: unknown[]) => void) => void) | ((req: NodeRequest, res: NodeResponse) => void);
21
21
  export declare const connectMid2HonoMid: (handler: ConnectMiddleware) => Middleware;
22
22
  export {};
@@ -1,3 +1,3 @@
1
- import { ServerBaseOptions } from '../../../core/server';
1
+ import type { ServerBaseOptions } from '../../serverBase';
2
2
  /** 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量 */
3
3
  export declare function loadServerEnv(options: ServerBaseOptions): Promise<void>;
@@ -1,3 +1,3 @@
1
1
  import type { ServerRoute } from '@modern-js/types';
2
- import { HonoMiddleware, ServerEnv } from '../../../../core/server';
3
- export declare function injectServerManifest(pwd: string, routes?: ServerRoute[]): HonoMiddleware<ServerEnv>;
2
+ import { Middleware, ServerEnv } from '../../../../core/server';
3
+ export declare function injectServerManifest(pwd: string, routes?: ServerRoute[]): Middleware<ServerEnv>;
@@ -1,4 +1,4 @@
1
1
  import { ServerRoute } from '@modern-js/types';
2
- import { HonoMiddleware, ServerEnv } from '../../../../core/server';
2
+ import { Middleware, ServerEnv } from '../../../../core/server';
3
3
  export declare function getHtmlTemplates(pwd: string, routes: ServerRoute[]): Promise<Record<string, string>>;
4
- export declare function injectTemplates(pwd: string, routes?: ServerRoute[]): HonoMiddleware<ServerEnv>;
4
+ export declare function injectTemplates(pwd: string, routes?: ServerRoute[]): Middleware<ServerEnv>;
@@ -1,7 +1,7 @@
1
1
  export { createErrorHtml } from './utils';
2
2
  export { AGGRED_DIR } from './constants';
3
- export { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, } from './middlewares';
3
+ export { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, processedBy, } from './middlewares';
4
4
  export type { BindRenderHandleOptions } from './middlewares';
5
- export type { ServerBase } from './serverBase';
5
+ export type { ServerBase, ServerBaseOptions } from './serverBase';
6
6
  export { createServerBase } from './serverBase';
7
- export type { ServerBaseOptions, Next, Middleware, ServerEnv, ServerManifest, HonoContext, HonoEnv, HonoMiddleware, HonoRequest, } from '../core/server';
7
+ export type { Middleware, Context, Next, HonoRequest, ServerEnv, ServerManifest, } from '../core/server';
@@ -1,3 +1,3 @@
1
1
  import { HookContext } from '@modern-js/types';
2
- import type { HonoContext, ServerEnv } from '../../../core/server';
3
- export declare function createBaseHookContext(c: HonoContext<ServerEnv>): HookContext;
2
+ import type { Context, ServerEnv } from '../../../core/server';
3
+ export declare function createBaseHookContext(c: Context<ServerEnv>): HookContext;
@@ -1,7 +1,7 @@
1
1
  import { AfterMatchContext, AfterRenderContext, MiddlewareContext, AfterStreamingRenderContext, ServerRoute, HookContext } from '@modern-js/types';
2
- import { HonoContext, ServerEnv } from '../../../core/server';
2
+ import { Context, ServerEnv } from '../../../core/server';
3
3
  import type { ServerNodeEnv } from '../../adapters/node/hono';
4
4
  export declare function getAfterMatchCtx(entryName: string, baseHookCtx: HookContext): AfterMatchContext;
5
- export declare function getAfterRenderCtx(c: HonoContext, baseHookCtx: HookContext, route: Partial<ServerRoute>): Promise<AfterRenderContext>;
6
- export declare function createCustomMiddlewaresCtx(c: HonoContext<ServerNodeEnv & ServerEnv>, locals: Record<string, any>): MiddlewareContext;
5
+ export declare function getAfterRenderCtx(c: Context, baseHookCtx: HookContext, route: Partial<ServerRoute>): Promise<AfterRenderContext>;
6
+ export declare function createCustomMiddlewaresCtx(c: Context<ServerNodeEnv & ServerEnv>, locals: Record<string, any>): MiddlewareContext;
7
7
  export declare function createAfterStreamingRenderContext(baseHookCtx: HookContext, route: Partial<ServerRoute>): (chunk: string) => AfterStreamingRenderContext;
@@ -0,0 +1,2 @@
1
+ import { Middleware } from '../../core/server';
2
+ export declare const processedBy: Middleware;
@@ -2,3 +2,4 @@ export * from './faviconFallback';
2
2
  export * from './monitor';
3
3
  export * from './renderHandler';
4
4
  export * from './logger';
5
+ export * from './frameworkHeader';
@@ -1,6 +1,6 @@
1
1
  import type { Logger, Metrics } from '@modern-js/types';
2
- import type { HonoContext, Next, ServerEnv } from '../../core/server';
3
- export declare function injectReporter(): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
4
- export declare function initReporter(entryName: string): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
5
- export declare function injectLogger(inputLogger: Logger): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
6
- export declare function injectMetrics(inputMetrics: Metrics): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
2
+ import type { Context, Next, ServerEnv } from '../../core/server';
3
+ export declare function injectReporter(): (c: Context<ServerEnv>, next: Next) => Promise<void>;
4
+ export declare function initReporter(entryName: string): (c: Context<ServerEnv>, next: Next) => Promise<void>;
5
+ export declare function injectLogger(inputLogger: Logger): (c: Context<ServerEnv>, next: Next) => Promise<void>;
6
+ export declare function injectMetrics(inputMetrics: Metrics): (c: Context<ServerEnv>, next: Next) => Promise<void>;
@@ -1,6 +1,5 @@
1
1
  import { Render } from '../../../core/render';
2
- import { ServerBaseOptions } from '../../../core/server';
3
- import { ServerBase } from '../../serverBase';
2
+ import { ServerBase, type ServerBaseOptions } from '../../serverBase';
4
3
  export type BindRenderHandleOptions = {
5
4
  metaName?: string;
6
5
  staticGenerate?: boolean;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="node/http" />
3
- /// <reference types="dist/types/core/server" />
2
+ /// <reference types="node" />
4
3
  import type { IncomingMessage } from 'http';
5
4
  import { Readable } from 'stream';
6
5
  import type { CacheControl, CacheOption, Container } from '@modern-js/types';
@@ -1,5 +1,4 @@
1
- /// <reference types="node/http" />
2
- /// <reference types="dist/types/core/server" />
1
+ /// <reference types="node" />
3
2
  import type { IncomingMessage } from 'http';
4
3
  import type { Logger, Reporter, ServerRoute } from '@modern-js/types';
5
4
  import { ServerManifest } from '../../../core/server';
@@ -1,12 +1,30 @@
1
+ import { InternalPlugins, ServerRoute } from '@modern-js/types';
1
2
  import { Hono } from 'hono';
2
- import { ServerHookRunner } from '../core';
3
- import type { HonoEnv, ServerBaseOptions } from '../core/server';
3
+ import { ServerHookRunner, ServerPlugin } from '../core';
4
+ import type { Env } from '../core/server';
5
+ import type { ServerOptions } from '../types/config';
4
6
  declare module '@modern-js/types' {
5
7
  interface ISAppContext {
6
8
  serverBase?: ServerBase;
7
9
  }
8
10
  }
9
- export declare class ServerBase<E extends HonoEnv = any> {
11
+ export type ServerBaseOptions = {
12
+ /** server working directory, and then also dist directory */
13
+ pwd: string;
14
+ config: ServerOptions;
15
+ serverConfigFile?: string;
16
+ routes?: ServerRoute[];
17
+ plugins?: ServerPlugin[];
18
+ internalPlugins?: InternalPlugins;
19
+ appContext: {
20
+ appDirectory?: string;
21
+ sharedDirectory?: string;
22
+ apiDirectory?: string;
23
+ lambdaDirectory?: string;
24
+ };
25
+ runMode?: 'apiOnly' | 'ssrOnly' | 'webOnly';
26
+ };
27
+ export declare class ServerBase<E extends Env = any> {
10
28
  options: ServerBaseOptions;
11
29
  runner: ServerHookRunner;
12
30
  private app;
@@ -49,4 +67,4 @@ export declare class ServerBase<E extends HonoEnv = any> {
49
67
  get notFound(): (handler: import("hono").NotFoundHandler<E>) => Hono<E, {}, "/">;
50
68
  get onError(): (handler: import("hono").ErrorHandler<E>) => Hono<E, {}, "/">;
51
69
  }
52
- export declare function createServerBase<E extends HonoEnv>(options: ServerBaseOptions): ServerBase<E>;
70
+ export declare function createServerBase<E extends Env>(options: ServerBaseOptions): ServerBase<E>;
@@ -5,4 +5,3 @@ export * from './middlewareCollector';
5
5
  export * from './error';
6
6
  export * from './warmup';
7
7
  export * from './entry';
8
- export declare const cutNameByHyphen: (s: string) => string;