MCPcopy Create free account
hub / github.com/denoland/std / resolveComponentValue

Function resolveComponentValue

http/unstable_message_signatures.ts:348–400  ·  view source on GitHub ↗
(
  id: ComponentIdentifier,
  message: Request | Response,
  parsedUrl: { value?: URL },
  relatedRequest?: Request,
  relatedParsedUrl?: { value?: URL },
)

Source from the content-addressed store, hash-verified

346}
347
348function resolveComponentValue(
349 id: ComponentIdentifier,
350 message: Request | Response,
351 parsedUrl: { value?: URL },
352 relatedRequest?: Request,
353 relatedParsedUrl?: { value?: URL },
354): string {
355 const params = id.parameters ?? {};
356
357 // Validate incompatible parameter combinations
358 if (params.bs && params.sf) {
359 throw new TypeError(
360 `Cannot combine "bs" and "sf" parameters on component "${id.name}"`,
361 );
362 }
363 if (params.bs && params.key !== undefined) {
364 throw new TypeError(
365 `Cannot combine "bs" and "key" parameters on component "${id.name}"`,
366 );
367 }
368
369 if (params.tr) {
370 throw new TypeError(
371 `Trailer field resolution (";tr") is not supported for component "${id.name}"`,
372 );
373 }
374
375 // Handle ;req parameter
376 if (params.req) {
377 if (message instanceof Request) {
378 throw new TypeError(
379 `Cannot use "req" parameter on component "${id.name}" for a request message`,
380 );
381 }
382 if (!relatedRequest) {
383 throw new TypeError(
384 `Cannot resolve "req" parameter on component "${id.name}": no related request provided`,
385 );
386 }
387 const { req: _, ...restParams } = params;
388 return resolveComponentValue(
389 { name: id.name, parameters: restParams },
390 relatedRequest,
391 relatedParsedUrl ?? {},
392 );
393 }
394
395 if (id.name.startsWith("@")) {
396 return resolveDerivedComponent(id.name, message, params, parsedUrl);
397 }
398
399 return resolveFieldComponent(id.name, message, params);
400}
401
402const REQUEST_ONLY_DERIVED: ReadonlySet<string> = new Set<DerivedComponent>([
403 "@method",

Callers 1

createSignatureBaseFunction · 0.85

Calls 3

resolveDerivedComponentFunction · 0.85
resolveFieldComponentFunction · 0.85
startsWithMethod · 0.80

Tested by

no test coverage detected