@modern-js/server 1.4.1 → 1.4.4
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/CHANGELOG.md +34 -0
- package/dist/js/modern/dev-tools/mock/index.js +1 -1
- package/dist/js/modern/dev-tools/socket-server.js +63 -46
- package/dist/js/modern/index.js +1 -1
- package/dist/js/modern/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
- package/dist/js/modern/server/{dev-server/dev-server.js → dev-server.js} +19 -14
- package/dist/js/modern/server/index.js +15 -138
- package/dist/js/modern/{libs/render/cache/type.js → types.js} +0 -0
- package/dist/js/node/dev-tools/mock/index.js +2 -2
- package/dist/js/node/dev-tools/socket-server.js +63 -47
- package/dist/js/node/index.js +2 -2
- package/dist/js/node/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
- package/dist/js/node/server/{dev-server/dev-server.js → dev-server.js} +22 -24
- package/dist/js/node/server/index.js +17 -152
- package/dist/js/node/{libs/render/cache/type.js → types.js} +0 -0
- package/dist/types/dev-tools/babel/register.d.ts +1 -1
- package/dist/types/dev-tools/dev-server-plugin.d.ts +1 -1
- package/dist/types/dev-tools/launch-editor/index.d.ts +1 -2
- package/dist/types/dev-tools/mock/getMockData.d.ts +1 -2
- package/dist/types/dev-tools/mock/index.d.ts +1 -2
- package/dist/types/dev-tools/socket-server.d.ts +5 -1
- package/dist/types/index.d.ts +4 -5
- package/dist/types/server/{dev-server/dev-server-split.d.ts → dev-server-split.d.ts} +5 -4
- package/dist/types/server/{dev-server/dev-server.d.ts → dev-server.d.ts} +4 -3
- package/dist/types/server/index.d.ts +4 -19
- package/dist/types/types.d.ts +28 -0
- package/modern.config.js +5 -1
- package/package.json +8 -39
- package/tests/dev.test.ts +17 -0
- package/tests/server.test.ts +10 -3
- package/dist/js/modern/constants.js +0 -26
- package/dist/js/modern/libs/context/context.js +0 -180
- package/dist/js/modern/libs/context/index.js +0 -3
- package/dist/js/modern/libs/hook-api/route.js +0 -39
- package/dist/js/modern/libs/hook-api/template.js +0 -61
- package/dist/js/modern/libs/metrics.js +0 -12
- package/dist/js/modern/libs/proxy.js +0 -59
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -70
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -233
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -53
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -35
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -121
- package/dist/js/modern/libs/render/cache/index.js +0 -74
- package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -9
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -35
- package/dist/js/modern/libs/render/cache/spr.js +0 -280
- package/dist/js/modern/libs/render/cache/util.js +0 -79
- package/dist/js/modern/libs/render/index.js +0 -65
- package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
- package/dist/js/modern/libs/render/modern/index.js +0 -42
- package/dist/js/modern/libs/render/reader.js +0 -112
- package/dist/js/modern/libs/render/ssr.js +0 -58
- package/dist/js/modern/libs/render/static.js +0 -46
- package/dist/js/modern/libs/render/type.js +0 -7
- package/dist/js/modern/libs/route/index.js +0 -68
- package/dist/js/modern/libs/route/matcher.js +0 -94
- package/dist/js/modern/libs/route/route.js +0 -24
- package/dist/js/modern/libs/serve-file.js +0 -28
- package/dist/js/modern/server/dev-server/index.js +0 -2
- package/dist/js/modern/server/modern-server-split.js +0 -81
- package/dist/js/modern/server/modern-server.js +0 -584
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +0 -112
- package/dist/js/node/constants.js +0 -36
- package/dist/js/node/libs/context/context.js +0 -194
- package/dist/js/node/libs/context/index.js +0 -18
- package/dist/js/node/libs/hook-api/route.js +0 -48
- package/dist/js/node/libs/hook-api/template.js +0 -69
- package/dist/js/node/libs/metrics.js +0 -18
- package/dist/js/node/libs/proxy.js +0 -69
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -77
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -238
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -60
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -42
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -128
- package/dist/js/node/libs/render/cache/index.js +0 -86
- package/dist/js/node/libs/render/cache/page-caches/index.js +0 -17
- package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -47
- package/dist/js/node/libs/render/cache/spr.js +0 -298
- package/dist/js/node/libs/render/cache/util.js +0 -105
- package/dist/js/node/libs/render/index.js +0 -91
- package/dist/js/node/libs/render/modern/browser-list.js +0 -14
- package/dist/js/node/libs/render/modern/index.js +0 -58
- package/dist/js/node/libs/render/reader.js +0 -139
- package/dist/js/node/libs/render/ssr.js +0 -76
- package/dist/js/node/libs/render/static.js +0 -62
- package/dist/js/node/libs/render/type.js +0 -14
- package/dist/js/node/libs/route/index.js +0 -83
- package/dist/js/node/libs/route/matcher.js +0 -108
- package/dist/js/node/libs/route/route.js +0 -33
- package/dist/js/node/libs/serve-file.js +0 -41
- package/dist/js/node/server/dev-server/index.js +0 -27
- package/dist/js/node/server/modern-server-split.js +0 -97
- package/dist/js/node/server/modern-server.js +0 -622
- package/dist/js/node/type.js +0 -5
- package/dist/js/node/utils.js +0 -143
- package/dist/types/constants.d.ts +0 -20
- package/dist/types/libs/context/context.d.ts +0 -61
- package/dist/types/libs/context/index.d.ts +0 -4
- package/dist/types/libs/hook-api/route.d.ts +0 -14
- package/dist/types/libs/hook-api/template.d.ts +0 -14
- package/dist/types/libs/metrics.d.ts +0 -3
- package/dist/types/libs/proxy.d.ts +0 -16
- package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +0 -1
- package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +0 -1
- package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +0 -62
- package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +0 -28
- package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +0 -124
- package/dist/types/libs/render/cache/index.d.ts +0 -6
- package/dist/types/libs/render/cache/page-caches/index.d.ts +0 -2
- package/dist/types/libs/render/cache/page-caches/lru.d.ts +0 -15
- package/dist/types/libs/render/cache/spr.d.ts +0 -24
- package/dist/types/libs/render/cache/type.d.ts +0 -48
- package/dist/types/libs/render/cache/util.d.ts +0 -17
- package/dist/types/libs/render/index.d.ts +0 -18
- package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
- package/dist/types/libs/render/modern/index.d.ts +0 -3
- package/dist/types/libs/render/reader.d.ts +0 -18
- package/dist/types/libs/render/ssr.d.ts +0 -10
- package/dist/types/libs/render/static.d.ts +0 -3
- package/dist/types/libs/render/type.d.ts +0 -34
- package/dist/types/libs/route/index.d.ts +0 -15
- package/dist/types/libs/route/matcher.d.ts +0 -15
- package/dist/types/libs/route/route.d.ts +0 -14
- package/dist/types/libs/serve-file.d.ts +0 -8
- package/dist/types/server/dev-server/index.d.ts +0 -2
- package/dist/types/server/modern-server-split.d.ts +0 -26
- package/dist/types/server/modern-server.d.ts +0 -72
- package/dist/types/type.d.ts +0 -80
- package/dist/types/utils.d.ts +0 -19
- package/tests/context.test.ts +0 -52
- package/tests/fixtures/hosting-files/static/index.js +0 -1
- package/tests/fixtures/reader/index.ts +0 -3
- package/tests/fixtures/route-spec/dynamic.json +0 -13
- package/tests/fixtures/route-spec/index.json +0 -29
- package/tests/fixtures/ssr/bundle.js +0 -5
- package/tests/fixtures/static-dir/bar.html +0 -11
- package/tests/fixtures/static-dir/baz/index.html +0 -11
- package/tests/fixtures/static-dir/foo/index.html +0 -11
- package/tests/helper.ts +0 -8
- package/tests/hook.test.ts +0 -44
- package/tests/middleware.test.ts +0 -179
- package/tests/render.test.ts +0 -102
- package/tests/route.test.ts +0 -77
- package/tests/utils.test.ts +0 -106
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { BaseSSRServerContext } from '@modern-js/types/server';
|
|
3
|
-
declare type MetaKeyMap = {
|
|
4
|
-
header?: string[];
|
|
5
|
-
query?: string[];
|
|
6
|
-
};
|
|
7
|
-
declare type MetaKeyMatch = {
|
|
8
|
-
header?: MatchMap;
|
|
9
|
-
query?: MatchMap;
|
|
10
|
-
};
|
|
11
|
-
declare type MatchMap = Record<string, Record<string, string>>;
|
|
12
|
-
export declare type CacheConfig = {
|
|
13
|
-
interval: number;
|
|
14
|
-
staleLimit: number | boolean;
|
|
15
|
-
level: number;
|
|
16
|
-
includes?: MetaKeyMap | null;
|
|
17
|
-
excludes?: MetaKeyMap | null;
|
|
18
|
-
matches?: MetaKeyMatch | null;
|
|
19
|
-
};
|
|
20
|
-
export declare enum RenderLevel {
|
|
21
|
-
CLIENT_RENDER = 0,
|
|
22
|
-
SERVER_PREFETCH = 1,
|
|
23
|
-
SERVER_RENDER = 2,
|
|
24
|
-
}
|
|
25
|
-
export declare type SSRServerContext = BaseSSRServerContext & {
|
|
26
|
-
cacheConfig?: CacheConfig;
|
|
27
|
-
staticGenerate?: boolean;
|
|
28
|
-
};
|
|
29
|
-
export declare type ModernSSRReactComponent = React.ComponentType<any> & {
|
|
30
|
-
init: (context: SSRServerContext) => Promise<void>;
|
|
31
|
-
prefetch: (context: SSRServerContext) => Promise<Record<string, any>>;
|
|
32
|
-
};
|
|
33
|
-
export declare type RenderFunction = (context: SSRServerContext) => Promise<string>;
|
|
34
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RouteMatcher } from './matcher';
|
|
2
|
-
import { ModernRoute, ModernRouteInterface } from './route';
|
|
3
|
-
export declare class RouteMatchManager {
|
|
4
|
-
matchers: RouteMatcher[];
|
|
5
|
-
private specs;
|
|
6
|
-
constructor();
|
|
7
|
-
private filter;
|
|
8
|
-
private best;
|
|
9
|
-
reset(specs: ModernRouteInterface[]): void;
|
|
10
|
-
match(pathname: string): RouteMatcher | undefined;
|
|
11
|
-
matchEntry(entryname: string): RouteMatcher | undefined;
|
|
12
|
-
getBundles(): (string | undefined)[];
|
|
13
|
-
}
|
|
14
|
-
export type { ModernRouteInterface, ModernRoute };
|
|
15
|
-
export { RouteMatcher };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { MatchFunction } from 'path-to-regexp';
|
|
2
|
-
import { ModernRoute, ModernRouteInterface } from './route';
|
|
3
|
-
export declare class RouteMatcher {
|
|
4
|
-
spec: ModernRouteInterface;
|
|
5
|
-
urlPath: string;
|
|
6
|
-
urlMatcher?: MatchFunction;
|
|
7
|
-
urlReg?: RegExp;
|
|
8
|
-
constructor(spec: ModernRouteInterface);
|
|
9
|
-
generate(url: string): ModernRoute;
|
|
10
|
-
parseURLParams(pathname: string): Record<string, string>;
|
|
11
|
-
matchLength(pathname: string): number | null;
|
|
12
|
-
matchUrlPath(requestUrl: string): boolean;
|
|
13
|
-
matchEntry(entryName: string): boolean;
|
|
14
|
-
private setupUrlPath;
|
|
15
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ServerRoute as ModernRouteInterface } from '@modern-js/types';
|
|
2
|
-
export type { ModernRouteInterface };
|
|
3
|
-
export declare class ModernRoute implements ModernRouteInterface {
|
|
4
|
-
entryName: string;
|
|
5
|
-
urlPath: string;
|
|
6
|
-
entryPath: string;
|
|
7
|
-
bundle: string;
|
|
8
|
-
isApi: boolean;
|
|
9
|
-
isSSR: boolean;
|
|
10
|
-
isSPA: boolean;
|
|
11
|
-
enableModernMode?: boolean;
|
|
12
|
-
params: Record<string, any>;
|
|
13
|
-
constructor(routeSpec: ModernRouteInterface);
|
|
14
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { NextFunction } from '../type';
|
|
2
|
-
import { ModernServerContext } from './context';
|
|
3
|
-
declare type Rule = {
|
|
4
|
-
path: string | RegExp;
|
|
5
|
-
target: string;
|
|
6
|
-
};
|
|
7
|
-
export declare const createStaticFileHandler: (rules: Rule[]) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
8
|
-
export {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { APIServerStartInput } from '@modern-js/server-core';
|
|
2
|
-
import { mergeExtension } from '../utils';
|
|
3
|
-
import { ModernRoute, ModernRouteInterface, RouteMatcher } from '../libs/route';
|
|
4
|
-
import { ApiServerMode } from '../constants';
|
|
5
|
-
import { ModernServerContext } from '../libs/context';
|
|
6
|
-
import { ModernServer } from './modern-server';
|
|
7
|
-
export declare class ModernSSRServer extends ModernServer {
|
|
8
|
-
protected warmupSSRBundle(): Promise<void>;
|
|
9
|
-
protected verifyMatch(context: ModernServerContext, matched: RouteMatcher): void;
|
|
10
|
-
protected prepareAPIHandler(_m: ApiServerMode, _: APIServerStartInput['config']): any;
|
|
11
|
-
protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<import("@modern-js/server-core").Adapter>;
|
|
12
|
-
protected preServerInit(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export declare class ModernAPIServer extends ModernServer {
|
|
15
|
-
protected emitRouteHook(_: string, _input: any): Promise<void>;
|
|
16
|
-
protected warmupSSRBundle(): Promise<void>;
|
|
17
|
-
protected prepareWebHandler(_: ReturnType<typeof mergeExtension>): any;
|
|
18
|
-
protected prepareAPIHandler(mode: ApiServerMode, extension: APIServerStartInput['config']): Promise<import("@modern-js/server-core").Adapter>;
|
|
19
|
-
protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
|
|
20
|
-
protected preServerInit(): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
export declare class ModernWebServer extends ModernServer {
|
|
23
|
-
protected warmupSSRBundle(): Promise<void>;
|
|
24
|
-
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
25
|
-
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<any>;
|
|
26
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { IncomingMessage, ServerResponse, Server } from 'http';
|
|
3
|
-
import { Adapter, APIServerStartInput } from '@modern-js/server-core';
|
|
4
|
-
import type { NormalizedConfig } from '@modern-js/core';
|
|
5
|
-
import { ModernServerOptions, NextFunction, ServerHookRunner, Metrics, Logger, ReadyOptions } from '../type';
|
|
6
|
-
import { RouteMatchManager, ModernRouteInterface, ModernRoute, RouteMatcher } from '../libs/route';
|
|
7
|
-
import { mergeExtension } from '../utils';
|
|
8
|
-
import { ModernServerContext } from '../libs/context';
|
|
9
|
-
import { ApiServerMode } from '../constants';
|
|
10
|
-
declare type ModernServerHandler = (context: ModernServerContext, next: NextFunction) => Promise<void> | void;
|
|
11
|
-
declare type ModernServerAsyncHandler = (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
12
|
-
export declare class ModernServer {
|
|
13
|
-
protected pwd: string;
|
|
14
|
-
protected distDir: string;
|
|
15
|
-
protected workDir: string;
|
|
16
|
-
protected router: RouteMatchManager;
|
|
17
|
-
protected conf: NormalizedConfig;
|
|
18
|
-
protected handlers: ModernServerAsyncHandler[];
|
|
19
|
-
protected presetRoutes?: ModernRouteInterface[];
|
|
20
|
-
protected runner: ServerHookRunner;
|
|
21
|
-
protected readonly logger: Logger;
|
|
22
|
-
protected readonly metrics: Metrics;
|
|
23
|
-
protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
|
|
24
|
-
private readonly isDev;
|
|
25
|
-
private staticFileHandler;
|
|
26
|
-
private routeRenderHandler;
|
|
27
|
-
private frameWebHandler;
|
|
28
|
-
private frameAPIHandler;
|
|
29
|
-
private proxyHandler;
|
|
30
|
-
private _handler;
|
|
31
|
-
private readonly staticGenerate;
|
|
32
|
-
constructor({
|
|
33
|
-
pwd,
|
|
34
|
-
config,
|
|
35
|
-
dev,
|
|
36
|
-
routes,
|
|
37
|
-
staticGenerate,
|
|
38
|
-
logger,
|
|
39
|
-
metrics,
|
|
40
|
-
proxyTarget
|
|
41
|
-
}: ModernServerOptions);
|
|
42
|
-
getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
|
|
43
|
-
init(runner: ServerHookRunner): Promise<void>;
|
|
44
|
-
ready(_: ReadyOptions): void;
|
|
45
|
-
onListening(_: Server): void;
|
|
46
|
-
close(): void;
|
|
47
|
-
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server>;
|
|
48
|
-
protected readRouteSpec(): ModernRouteInterface[];
|
|
49
|
-
protected addHandler(handler: ModernServerHandler): void;
|
|
50
|
-
protected render404(context: ModernServerContext): void;
|
|
51
|
-
protected prepareFrameHandler(): Promise<void>;
|
|
52
|
-
protected proxy(): Promise<any>;
|
|
53
|
-
protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<Adapter>;
|
|
54
|
-
protected prepareAPIHandler(mode: ApiServerMode, extension: APIServerStartInput['config']): Promise<Adapter>;
|
|
55
|
-
protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
|
|
56
|
-
protected emitRouteHook(eventName: 'beforeMatch' | 'afterMatch' | 'beforeRender' | 'afterRender', input: {
|
|
57
|
-
context: ModernServerContext;
|
|
58
|
-
[propsName: string]: any;
|
|
59
|
-
}): Promise<any>;
|
|
60
|
-
protected warmupSSRBundle(): void;
|
|
61
|
-
protected preServerInit(): Promise<void>;
|
|
62
|
-
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
63
|
-
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<import("../type").RenderResult | null>;
|
|
64
|
-
protected verifyMatch(_c: ModernServerContext, _m: RouteMatcher): void;
|
|
65
|
-
private routeHandler;
|
|
66
|
-
private injectMicroFE;
|
|
67
|
-
private compose;
|
|
68
|
-
private requestHandler;
|
|
69
|
-
private onError;
|
|
70
|
-
private renderErrorPage;
|
|
71
|
-
}
|
|
72
|
-
export {};
|
package/dist/types/type.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import type Webpack from 'webpack';
|
|
3
|
-
import { serverManager } from '@modern-js/server-core';
|
|
4
|
-
import type { NormalizedConfig } from '@modern-js/core';
|
|
5
|
-
import type { Metrics, Logger, NextFunction } from '@modern-js/types/server';
|
|
6
|
-
import { ModernRouteInterface } from './libs/route';
|
|
7
|
-
declare module 'http' {
|
|
8
|
-
interface IncomingMessage {
|
|
9
|
-
logger: Logger;
|
|
10
|
-
metrics: Metrics;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
declare module '@modern-js/core' {
|
|
14
|
-
interface UserConfig {
|
|
15
|
-
bff?: {
|
|
16
|
-
proxy: Record<string, any>;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export declare type DevServerOptions = {
|
|
21
|
-
client: {
|
|
22
|
-
port: string;
|
|
23
|
-
overlay: boolean;
|
|
24
|
-
logging: string;
|
|
25
|
-
path: string;
|
|
26
|
-
host: string;
|
|
27
|
-
progress?: boolean;
|
|
28
|
-
};
|
|
29
|
-
dev: {
|
|
30
|
-
writeToDisk: boolean | ((filename: string) => boolean);
|
|
31
|
-
};
|
|
32
|
-
watch: boolean;
|
|
33
|
-
hot: boolean | string;
|
|
34
|
-
liveReload: boolean;
|
|
35
|
-
https?: boolean | {
|
|
36
|
-
key: string;
|
|
37
|
-
cert: string;
|
|
38
|
-
};
|
|
39
|
-
[propName: string]: any;
|
|
40
|
-
};
|
|
41
|
-
export declare type ModernServerOptions = {
|
|
42
|
-
pwd: string;
|
|
43
|
-
config: NormalizedConfig;
|
|
44
|
-
plugins?: {
|
|
45
|
-
pluginPath: string;
|
|
46
|
-
}[];
|
|
47
|
-
dev?: boolean | Partial<DevServerOptions>;
|
|
48
|
-
compiler?: Webpack.MultiCompiler | Webpack.Compiler | null;
|
|
49
|
-
routes?: ModernRouteInterface[];
|
|
50
|
-
staticGenerate?: boolean;
|
|
51
|
-
customServer?: boolean;
|
|
52
|
-
loggerOptions?: Record<string, string>;
|
|
53
|
-
metricsOptions?: Record<string, string>;
|
|
54
|
-
logger?: Logger;
|
|
55
|
-
metrics?: Metrics;
|
|
56
|
-
apiOnly?: boolean;
|
|
57
|
-
ssrOnly?: boolean;
|
|
58
|
-
webOnly?: boolean;
|
|
59
|
-
proxyTarget?: {
|
|
60
|
-
ssr?: string;
|
|
61
|
-
api?: string;
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
export declare type RenderResult = {
|
|
65
|
-
content: string | Buffer;
|
|
66
|
-
contentType: string;
|
|
67
|
-
statusCode?: number;
|
|
68
|
-
redirect?: boolean;
|
|
69
|
-
};
|
|
70
|
-
export declare type ConfWithBFF = {
|
|
71
|
-
bff?: {
|
|
72
|
-
prefix: string;
|
|
73
|
-
};
|
|
74
|
-
} & NormalizedConfig;
|
|
75
|
-
export declare type Then<T> = T extends PromiseLike<infer U> ? U : T;
|
|
76
|
-
export declare type ServerHookRunner = Then<ReturnType<typeof serverManager.init>>;
|
|
77
|
-
export declare type ReadyOptions = {
|
|
78
|
-
routes?: ModernRouteInterface[];
|
|
79
|
-
};
|
|
80
|
-
export type { Metrics, Logger, NextFunction };
|
package/dist/types/utils.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { NormalizedConfig } from '@modern-js/core';
|
|
2
|
-
export declare const mergeExtension: (users: any[]) => {
|
|
3
|
-
middleware: any[];
|
|
4
|
-
};
|
|
5
|
-
export declare const toMessage: (dig: string, e: Error | string) => string;
|
|
6
|
-
export declare const noop: () => void;
|
|
7
|
-
export declare const createErrorDocument: (status: number, text: string) => string;
|
|
8
|
-
export declare type CollectMiddlewaresResult = {
|
|
9
|
-
web: any[];
|
|
10
|
-
api: any[];
|
|
11
|
-
};
|
|
12
|
-
export declare const createMiddlewareCollecter: () => {
|
|
13
|
-
getMiddlewares: () => CollectMiddlewaresResult;
|
|
14
|
-
addWebMiddleware: (input: any) => void;
|
|
15
|
-
addAPIMiddleware: (input: any) => void;
|
|
16
|
-
};
|
|
17
|
-
export declare const toPath: (reg: string, params: Record<string, any>) => string;
|
|
18
|
-
export declare const getStaticReg: (output?: NormalizedConfig['output']) => RegExp;
|
|
19
|
-
export declare const prepareFavicons: (favicon: string | undefined, faviconByEntries?: Record<string, string | undefined> | undefined) => string[];
|
package/tests/context.test.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'events';
|
|
2
|
-
import { Readable } from 'stream';
|
|
3
|
-
import httpMocks from 'node-mocks-http';
|
|
4
|
-
import { createContext } from '../src/libs/context';
|
|
5
|
-
|
|
6
|
-
describe('test server context', () => {
|
|
7
|
-
test('should route api work correctly', () => {
|
|
8
|
-
const req = httpMocks.createRequest({
|
|
9
|
-
url: '/pathname?foo=baz',
|
|
10
|
-
headers: {
|
|
11
|
-
host: 'modernjs.com',
|
|
12
|
-
},
|
|
13
|
-
eventEmitter: Readable,
|
|
14
|
-
method: 'GET',
|
|
15
|
-
});
|
|
16
|
-
const res = httpMocks.createResponse({ eventEmitter: EventEmitter });
|
|
17
|
-
const context = createContext(req, res);
|
|
18
|
-
const {
|
|
19
|
-
method,
|
|
20
|
-
url,
|
|
21
|
-
origin,
|
|
22
|
-
host,
|
|
23
|
-
path,
|
|
24
|
-
href,
|
|
25
|
-
query,
|
|
26
|
-
querystring,
|
|
27
|
-
protocol,
|
|
28
|
-
params,
|
|
29
|
-
} = context;
|
|
30
|
-
|
|
31
|
-
expect(method).toBe('GET');
|
|
32
|
-
expect(url).toBe('/pathname?foo=baz');
|
|
33
|
-
expect(origin).toBe('http://modernjs.com');
|
|
34
|
-
expect(host).toBe('modernjs.com');
|
|
35
|
-
expect(path).toBe('/pathname');
|
|
36
|
-
expect(href).toBe('http://modernjs.com/pathname?foo=baz');
|
|
37
|
-
expect(query).toEqual({ foo: 'baz' });
|
|
38
|
-
expect(querystring).toBe('foo=baz');
|
|
39
|
-
expect(protocol).toBe('http');
|
|
40
|
-
expect(params).toEqual({});
|
|
41
|
-
|
|
42
|
-
expect(context.serverData).toEqual({});
|
|
43
|
-
context.setServerData('foo', {
|
|
44
|
-
name: 'foo',
|
|
45
|
-
});
|
|
46
|
-
expect(context.serverData).toEqual({
|
|
47
|
-
foo: {
|
|
48
|
-
name: 'foo',
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
console.info('index.js');
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"routes": [
|
|
3
|
-
{
|
|
4
|
-
"urlPath": "/entry",
|
|
5
|
-
"entryName": "entry",
|
|
6
|
-
"entryPath": "html/entry/index.html",
|
|
7
|
-
"isSPA": true,
|
|
8
|
-
"isSSR": true,
|
|
9
|
-
"enableModernMode": false,
|
|
10
|
-
"bundle": "bundles/entry.js"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"urlPath": "/home",
|
|
14
|
-
"entryName": "home",
|
|
15
|
-
"entryPath": "html/home/index.html",
|
|
16
|
-
"isSPA": true,
|
|
17
|
-
"isSSR": true,
|
|
18
|
-
"enableModernMode": false,
|
|
19
|
-
"bundle": "bundles/home.js"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"urlPath": "/api",
|
|
23
|
-
"isApi": true,
|
|
24
|
-
"entryPath": "",
|
|
25
|
-
"isSPA": false,
|
|
26
|
-
"isSSR": false
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
package/tests/helper.ts
DELETED
package/tests/hook.test.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { createRouteAPI } from '../src/libs/hook-api/route';
|
|
2
|
-
import { createTemplateAPI } from '../src/libs/hook-api/template';
|
|
3
|
-
import { RouteMatchManager } from '../src/libs/route';
|
|
4
|
-
import { createDoc } from './helper';
|
|
5
|
-
import spec from './fixtures/route-spec/index.json';
|
|
6
|
-
|
|
7
|
-
describe('test hook api', () => {
|
|
8
|
-
test('should route api work correctly', () => {
|
|
9
|
-
const manager = new RouteMatchManager();
|
|
10
|
-
manager.reset(spec.routes);
|
|
11
|
-
const matcher = manager.match('/home');
|
|
12
|
-
|
|
13
|
-
const routeAPI = createRouteAPI(matcher!, manager, '');
|
|
14
|
-
expect(routeAPI.cur().entryName).toBe('home');
|
|
15
|
-
expect(routeAPI.get('entry')?.entryPath).toBe('html/entry/index.html');
|
|
16
|
-
|
|
17
|
-
expect(routeAPI.use('home')).toBeTruthy();
|
|
18
|
-
expect(routeAPI.cur().entryName).toBe('home');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('should template api work correctly', () => {
|
|
22
|
-
const content = createDoc();
|
|
23
|
-
const templateAPI = createTemplateAPI(content);
|
|
24
|
-
|
|
25
|
-
expect(templateAPI.get()).toMatch(content);
|
|
26
|
-
|
|
27
|
-
templateAPI.replace('mock', 'replace');
|
|
28
|
-
expect(templateAPI.get()).toMatch('replace');
|
|
29
|
-
|
|
30
|
-
templateAPI.appendBody('after body');
|
|
31
|
-
templateAPI.prependBody('before body');
|
|
32
|
-
templateAPI.appendHead('after head');
|
|
33
|
-
templateAPI.prependHead('before head');
|
|
34
|
-
|
|
35
|
-
const newContent = templateAPI.get();
|
|
36
|
-
expect(newContent).toMatch('<head>before head');
|
|
37
|
-
expect(newContent).toMatch('<body>before body');
|
|
38
|
-
expect(newContent).toMatch('after head</head>');
|
|
39
|
-
expect(newContent).toMatch('after body</body>');
|
|
40
|
-
|
|
41
|
-
templateAPI.set('<div>empty</div>');
|
|
42
|
-
expect(templateAPI.get()).toBe('<div>empty</div>');
|
|
43
|
-
});
|
|
44
|
-
});
|