@shuvi/platform-web 1.0.33 → 1.0.35

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.
@@ -1,7 +1,6 @@
1
1
  import { IPageRouteRecord, IAppData, IAppState, Application as _Application } from '@shuvi/platform-shared/shared';
2
2
  import { ApplicationImpl as _ApplicationImpl } from '@shuvi/platform-shared/shuvi-app/application';
3
3
  import type { ShuviRequest } from '@shuvi/service';
4
- import { Span } from '@shuvi/service/lib/trace';
5
4
  export interface AppConfig {
6
5
  ssr: boolean;
7
6
  }
@@ -11,7 +10,6 @@ export interface CreateAppServer {
11
10
  (options: {
12
11
  req: ShuviRequest;
13
12
  ssr: boolean;
14
- serverCreateAppTrace: Span;
15
13
  }): InternalApplication;
16
14
  }
17
15
  export interface CreateAppClient {
@@ -2,7 +2,6 @@ import type { ShuviRequest } from '@shuvi/service';
2
2
  import { Response, IAppData } from '@shuvi/platform-shared/shared';
3
3
  import { IManifest } from '../shared';
4
4
  import { Application } from './appTypes';
5
- import { Span } from '@shuvi/service/lib/trace';
6
5
  export declare type IRenderViewOptions = {
7
6
  app: Application;
8
7
  };
@@ -39,7 +38,6 @@ export interface IClientRendererOptions<ExtraAppData = {}> extends IRenderOption
39
38
  export interface IServerRendererOptions extends IRenderOptions {
40
39
  req: ShuviRequest;
41
40
  manifest: IManifest;
42
- serverRequestTrace: Span;
43
41
  }
44
42
  export interface IViewClient<ExtraAppData = {}> extends IView<IClientRendererOptions<ExtraAppData>> {
45
43
  }
@@ -17,7 +17,7 @@ import logger from '@shuvi/utils/logger';
17
17
  import { serializeServerError } from '../helper/serializeServerError';
18
18
  const { SHUVI_SERVER_RUN_LOADERS } = SERVER_CREATE_APP.events;
19
19
  export const createApp = options => {
20
- const { req, ssr, serverCreateAppTrace } = options;
20
+ const { req, ssr } = options;
21
21
  const history = createMemoryHistory({
22
22
  initialEntries: [(req && req.url) || '/'],
23
23
  initialIndex: 0
@@ -29,7 +29,8 @@ export const createApp = options => {
29
29
  let app;
30
30
  if (ssr) {
31
31
  router.beforeResolve((to, from, next) => __awaiter(void 0, void 0, void 0, function* () {
32
- const runLoadersTrace = serverCreateAppTrace.traceChild(SHUVI_SERVER_RUN_LOADERS.name);
32
+ const { serverCreateAppTrace } = req._traces;
33
+ const runLoadersTrace = serverCreateAppTrace.traceChild(SHUVI_SERVER_RUN_LOADERS.name, { [SHUVI_SERVER_RUN_LOADERS.attrs.requestId.name]: req._requestId });
33
34
  const pageLoaders = yield app.getLoaders();
34
35
  const matches = getRouteMatchesWithInvalidLoader(to, from, pageLoaders);
35
36
  try {
@@ -22,7 +22,7 @@ import isThirdSite from '../../helper/isThirdSite';
22
22
  const { SHUVI_SERVER_RENDER_TO_STRING } = SERVER_REQUEST.events;
23
23
  export class ReactServerView {
24
24
  constructor() {
25
- this.renderApp = ({ req, app, manifest, serverRequestTrace }) => __awaiter(this, void 0, void 0, function* () {
25
+ this.renderApp = ({ req, app, manifest }) => __awaiter(this, void 0, void 0, function* () {
26
26
  yield Loadable.preloadAll();
27
27
  const { router, appComponent: AppComponent, setError: setAppError } = app;
28
28
  yield router.ready;
@@ -54,7 +54,8 @@ export class ReactServerView {
54
54
  </LoadableContext.Provider>
55
55
  </AppContainer>
56
56
  </Router>);
57
- const renderToStringTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RENDER_TO_STRING.name);
57
+ const { serverRequestTrace } = req._traces;
58
+ const renderToStringTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RENDER_TO_STRING.name, { [SHUVI_SERVER_RENDER_TO_STRING.attrs.requestId.name]: req._requestId });
58
59
  try {
59
60
  htmlContent = renderToString(RootApp);
60
61
  renderToStringTrace.setAttribute(SHUVI_SERVER_RENDER_TO_STRING.attrs.error.name, false);
@@ -32,8 +32,10 @@ function middleware(_ctx) {
32
32
  }
33
33
  }
34
34
  if (tempApiModule) {
35
- const { serverRequestTrace } = _ctx.traces;
36
- const runApiMiddlewareTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RUN_API_MIDDLEWARE.name);
35
+ const { serverRequestTrace } = req._traces;
36
+ const runApiMiddlewareTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RUN_API_MIDDLEWARE.name, {
37
+ [SHUVI_SERVER_RUN_API_MIDDLEWARE.attrs.requestId.name]: req._requestId
38
+ });
37
39
  try {
38
40
  const { config, default: resolver } = tempApiModule;
39
41
  yield (0, apiRouteHandler_1.apiRouteHandler)(req, res, resolver, (config === null || config === void 0 ? void 0 : config.api) || { bodyParser: true });
@@ -18,10 +18,12 @@ const resources_1 = __importDefault(require("@shuvi/service/lib/resources"));
18
18
  const trace_1 = require("@shuvi/shared/constants/trace");
19
19
  const { SHUVI_SERVER_RUN_MIDDLEWARE_ROUTES } = trace_1.SERVER_REQUEST.events;
20
20
  function middleware(_api) {
21
- const { serverCreateAppTrace } = _api.traces;
22
21
  return function (req, res, next) {
23
22
  return __awaiter(this, void 0, void 0, function* () {
24
- const middlewareRoutesTrace = serverCreateAppTrace.traceChild(SHUVI_SERVER_RUN_MIDDLEWARE_ROUTES.name);
23
+ const { serverCreateAppTrace } = req._traces;
24
+ const middlewareRoutesTrace = serverCreateAppTrace.traceChild(SHUVI_SERVER_RUN_MIDDLEWARE_ROUTES.name, {
25
+ [SHUVI_SERVER_RUN_MIDDLEWARE_ROUTES.attrs.requestId.name]: req._requestId
26
+ });
25
27
  try {
26
28
  const { middlewareRoutes = [] } = resources_1.default.server;
27
29
  // match path for get middlewares
@@ -16,9 +16,9 @@ const trace_1 = require("@shuvi/shared/constants/trace");
16
16
  const renderToHTML_1 = require("./renderToHTML");
17
17
  const { SHUVI_SERVER_SEND_HTML_ORIGINAL, SHUVI_SERVER_SEND_HTML_HOOK, SHUVI_SERVER_RENDER_TO_HTML, SHUVI_SERVER_RUN_PAGE_MIDDLEWARE } = trace_1.SERVER_REQUEST.events;
18
18
  function createPageHandler(serverPluginContext) {
19
- const { traces: { serverRequestTrace } } = serverPluginContext;
20
19
  const wrappedSendHtml = (html, { req, res }) => __awaiter(this, void 0, void 0, function* () {
21
- const sendHtmlOriginalTrace = serverRequestTrace.traceChild(SHUVI_SERVER_SEND_HTML_ORIGINAL.name);
20
+ const { serverRequestTrace } = req._traces;
21
+ const sendHtmlOriginalTrace = serverRequestTrace.traceChild(SHUVI_SERVER_SEND_HTML_ORIGINAL.name, { [SHUVI_SERVER_SEND_HTML_ORIGINAL.attrs.requestId.name]: req._requestId });
22
22
  (0, utils_1.sendHTML)(req, res, html);
23
23
  sendHtmlOriginalTrace.stop();
24
24
  });
@@ -26,8 +26,11 @@ function createPageHandler(serverPluginContext) {
26
26
  let pendingSendHtml;
27
27
  return function (req, res) {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
+ const { serverRequestTrace } = req._traces;
29
30
  const result = yield serverRequestTrace
30
- .traceChild(SHUVI_SERVER_RENDER_TO_HTML.name)
31
+ .traceChild(SHUVI_SERVER_RENDER_TO_HTML.name, {
32
+ [SHUVI_SERVER_RENDER_TO_HTML.attrs.requestId.name]: req._requestId
33
+ })
31
34
  .traceAsyncFn(() => (0, renderToHTML_1.renderToHTML)({
32
35
  req: req,
33
36
  serverPluginContext
@@ -49,8 +52,7 @@ function createPageHandler(serverPluginContext) {
49
52
  }
50
53
  sendHtml = yield pendingSendHtml;
51
54
  }
52
- const { traces: { serverRequestTrace } } = serverPluginContext;
53
- const sendHtmlHookTrace = serverRequestTrace.traceChild(SHUVI_SERVER_SEND_HTML_HOOK.name);
55
+ const sendHtmlHookTrace = serverRequestTrace.traceChild(SHUVI_SERVER_SEND_HTML_HOOK.name, { [SHUVI_SERVER_SEND_HTML_HOOK.attrs.requestId.name]: req._requestId });
54
56
  yield sendHtml(textResp.data, { req, res });
55
57
  sendHtmlHookTrace.stop();
56
58
  }
@@ -68,8 +70,10 @@ function getPageMiddleware(api) {
68
70
  let pendingPageHandler;
69
71
  return function (req, res, next) {
70
72
  return __awaiter(this, void 0, void 0, function* () {
71
- const { traces: { serverRequestTrace } } = api;
72
- const runPageMiddlewareTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RUN_PAGE_MIDDLEWARE.name);
73
+ const { serverRequestTrace } = req._traces;
74
+ const runPageMiddlewareTrace = serverRequestTrace.traceChild(SHUVI_SERVER_RUN_PAGE_MIDDLEWARE.name, {
75
+ [SHUVI_SERVER_RUN_PAGE_MIDDLEWARE.attrs.requestId.name]: req._requestId
76
+ });
73
77
  if (!pageHandler) {
74
78
  if (!pendingPageHandler) {
75
79
  pendingPageHandler =
@@ -20,18 +20,21 @@ function renderToHTML({ req, serverPluginContext }) {
20
20
  return __awaiter(this, void 0, void 0, function* () {
21
21
  let result;
22
22
  const renderer = new renderer_1.Renderer({ serverPluginContext });
23
- const { traces: { serverCreateAppTrace } } = serverPluginContext;
23
+ const { serverCreateAppTrace } = req._traces;
24
24
  const { application } = resources_1.default.server;
25
25
  const app = serverCreateAppTrace
26
- .traceChild(trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_CREATE_APP.name)
26
+ .traceChild(trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_CREATE_APP.name, {
27
+ [trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_CREATE_APP.attrs.requestId.name]: req._requestId
28
+ })
27
29
  .traceFn(() => application.createApp({
28
30
  req,
29
- ssr: serverPluginContext.config.ssr,
30
- serverCreateAppTrace
31
+ ssr: serverPluginContext.config.ssr
31
32
  }));
32
33
  try {
33
34
  yield serverCreateAppTrace
34
- .traceChild(trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_APP_INIT.name)
35
+ .traceChild(trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_APP_INIT.name, {
36
+ [trace_1.SERVER_CREATE_APP.events.SHUVI_SERVER_APP_INIT.attrs.requestId.name]: req._requestId
37
+ })
35
38
  .traceAsyncFn(() => app.init());
36
39
  result = yield renderer.renderView({
37
40
  req,
@@ -22,7 +22,6 @@ class SsrRenderer extends base_1.BaseRenderer {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
23
  const { store, router, context } = app;
24
24
  const serverPluginContext = this._serverPluginContext;
25
- const { traces: { serverRequestTrace } } = serverPluginContext;
26
25
  const { view } = resources_1.default.server;
27
26
  if (!router) {
28
27
  throw new Error('router is null');
@@ -30,8 +29,7 @@ class SsrRenderer extends base_1.BaseRenderer {
30
29
  const result = yield view.renderApp({
31
30
  app,
32
31
  req,
33
- manifest: resources_1.default.clientManifest,
34
- serverRequestTrace
32
+ manifest: resources_1.default.clientManifest
35
33
  });
36
34
  if ((0, shared_1.isResponse)(result)) {
37
35
  return result;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { IncomingMessage, ServerResponse } from 'http';
2
+ import { ServerResponse } from 'http';
3
3
  import { ShuviRequest } from '@shuvi/service';
4
4
  import { IAppContext } from '@shuvi/platform-shared/shared';
5
5
  import { IHtmlDocument } from '../html-render';
@@ -7,9 +7,9 @@ export interface ModifyHtmlContext {
7
7
  req: ShuviRequest;
8
8
  appContext: IAppContext;
9
9
  }
10
- export declare type IHandlePageRequest = (req: IncomingMessage, res: ServerResponse) => Promise<void>;
10
+ export declare type IHandlePageRequest = (req: ShuviRequest, res: ServerResponse) => Promise<void>;
11
11
  export declare type RequestContext = {
12
- req: IncomingMessage;
12
+ req: ShuviRequest;
13
13
  res: ServerResponse;
14
14
  };
15
15
  export declare type ISendHtml = (html: string, requestContext: RequestContext) => Promise<void>;
@@ -1,7 +1,6 @@
1
1
  import { IPageRouteRecord, IAppData, IAppState, Application as _Application } from '@shuvi/platform-shared/shared';
2
2
  import { ApplicationImpl as _ApplicationImpl } from '@shuvi/platform-shared/shuvi-app/application';
3
3
  import type { ShuviRequest } from '@shuvi/service';
4
- import { Span } from '@shuvi/service/lib/trace';
5
4
  export interface AppConfig {
6
5
  ssr: boolean;
7
6
  }
@@ -11,7 +10,6 @@ export interface CreateAppServer {
11
10
  (options: {
12
11
  req: ShuviRequest;
13
12
  ssr: boolean;
14
- serverCreateAppTrace: Span;
15
13
  }): InternalApplication;
16
14
  }
17
15
  export interface CreateAppClient {
@@ -2,7 +2,6 @@ import type { ShuviRequest } from '@shuvi/service';
2
2
  import { Response, IAppData } from '@shuvi/platform-shared/shared';
3
3
  import { IManifest } from '../shared';
4
4
  import { Application } from './appTypes';
5
- import { Span } from '@shuvi/service/lib/trace';
6
5
  export declare type IRenderViewOptions = {
7
6
  app: Application;
8
7
  };
@@ -39,7 +38,6 @@ export interface IClientRendererOptions<ExtraAppData = {}> extends IRenderOption
39
38
  export interface IServerRendererOptions extends IRenderOptions {
40
39
  req: ShuviRequest;
41
40
  manifest: IManifest;
42
- serverRequestTrace: Span;
43
41
  }
44
42
  export interface IViewClient<ExtraAppData = {}> extends IView<IClientRendererOptions<ExtraAppData>> {
45
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuvi/platform-web",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/shuvijs/shuvi.git",
@@ -72,15 +72,15 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@next/react-refresh-utils": "12.1.6",
75
- "@shuvi/error-overlay": "1.0.33",
76
- "@shuvi/hook": "1.0.33",
77
- "@shuvi/platform-shared": "1.0.33",
78
- "@shuvi/router": "1.0.33",
79
- "@shuvi/router-react": "1.0.33",
80
- "@shuvi/runtime": "1.0.33",
81
- "@shuvi/shared": "1.0.33",
82
- "@shuvi/toolpack": "1.0.33",
83
- "@shuvi/utils": "1.0.33",
75
+ "@shuvi/error-overlay": "1.0.35",
76
+ "@shuvi/hook": "1.0.35",
77
+ "@shuvi/platform-shared": "1.0.35",
78
+ "@shuvi/router": "1.0.35",
79
+ "@shuvi/router-react": "1.0.35",
80
+ "@shuvi/runtime": "1.0.35",
81
+ "@shuvi/shared": "1.0.35",
82
+ "@shuvi/toolpack": "1.0.35",
83
+ "@shuvi/utils": "1.0.35",
84
84
  "content-type": "1.0.4",
85
85
  "core-js": "3.6.5",
86
86
  "doura": "0.0.11",
@@ -98,7 +98,7 @@
98
98
  "whatwg-fetch": "3.0.0"
99
99
  },
100
100
  "peerDependencies": {
101
- "@shuvi/service": "1.0.33"
101
+ "@shuvi/service": "1.0.35"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@shuvi/service": "workspace:*",