MCPcopy
hub / github.com/alpic-ai/skybridge / registerViewResource

Method registerViewResource

packages/core/src/server/server.ts:1053–1114  ·  view source on GitHub ↗
({
    name,
    viewResource,
    view,
  }: {
    name: string;
    viewResource: ViewResourceConfig;
    view: ViewConfig;
  })

Source from the content-addressed store, hash-verified

1051 }
1052
1053 private registerViewResource({
1054 name,
1055 viewResource,
1056 view,
1057 }: {
1058 name: string;
1059 viewResource: ViewResourceConfig;
1060 view: ViewConfig;
1061 }): void {
1062 const { hostType, uri: viewUri, mimeType, buildContentMeta } = viewResource;
1063
1064 const buildMeta = (extra: McpExtra | undefined): ResourceMeta => {
1065 const { serverUrl, connectDomains, contentMetaOverrides } =
1066 this.resolveViewRequestContext(extra);
1067 return buildContentMeta(
1068 {
1069 resourceDomains: [serverUrl],
1070 connectDomains,
1071 domain: serverUrl,
1072 baseUriDomains: [serverUrl],
1073 },
1074 contentMetaOverrides,
1075 );
1076 };
1077 this.viewMetaBuilders.set(viewUri, buildMeta);
1078 this.viewUriByPath.set(stripQuery(viewUri), viewUri);
1079 this.serveLegacyAppsSdkUrl(view.component, viewUri);
1080
1081 this.registerResource(
1082 name,
1083 viewUri,
1084 { description: view.description },
1085 async (uri, extra) => {
1086 const isProduction = process.env.NODE_ENV === "production";
1087 const { serverUrl, assetsBasePath } =
1088 this.resolveViewRequestContext(extra);
1089 // The view resolves all assets (template imports + runtime lazy chunks
1090 // via `window.skybridge.serverUrl`) against this base, so it carries the
1091 // proxy path prefix. CSP domains in `buildMeta` stay the bare origin.
1092 const viewBase = `${serverUrl}${assetsBasePath}`;
1093
1094 const html = isProduction
1095 ? templateHelper.renderProduction({
1096 hostType,
1097 serverUrl: viewBase,
1098 viewFile: this.lookupViewFile(view.component),
1099 styleFile: this.lookupDistFile("style.css") ?? "",
1100 })
1101 : templateHelper.renderDevelopment({
1102 hostType,
1103 serverUrl: viewBase,
1104 viewName: view.component,
1105 });
1106
1107 return {
1108 contents: [
1109 { uri: uri.href, mimeType, text: html, _meta: buildMeta(extra) },
1110 ],

Callers 1

registerViewResourcesMethod · 0.95

Calls 7

serveLegacyAppsSdkUrlMethod · 0.95
lookupViewFileMethod · 0.95
lookupDistFileMethod · 0.95
stripQueryFunction · 0.85
renderProductionMethod · 0.80
renderDevelopmentMethod · 0.80

Tested by

no test coverage detected