RuntimeHttpContract는 슬롯 네 개를 명시한 주입 지점인데, 그 슬롯이 비어 있다는 사실과 비운 채 되돌리면 모든 요청이 실패한다는 사실이 코드 어디에도 없었다. V3는 설치된 feature 계약에서 오퍼레이션을 받으므로 이 슬롯과 무관하다는 것도 함께 적는다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
/**
|
|
* §7–§8. 권장 경로는 V3 계약 실행기(`createContractHttpExecutor`)다. 설치된
|
|
* 계약과 타입 입력을 받아 상한·전체 데드라인·재시도 권한·효과 확실성 판정을
|
|
* 런타임이 소유한다.
|
|
*/
|
|
export {
|
|
createContractHttpExecutor,
|
|
type AuthIntegrationFailureReason,
|
|
type AuthOperationContext,
|
|
type CancellationOwner,
|
|
type ContractHttpExecutor,
|
|
type ContractHttpExecutorDependencies,
|
|
type HttpContractViolation,
|
|
type HttpContractViolationKind,
|
|
type HttpEffectCertainty,
|
|
type HttpExecutionContext,
|
|
type HttpExecutionObservation,
|
|
type HttpExecutionOutcome,
|
|
type HttpTransportFailure,
|
|
type SafeResponseMetadata,
|
|
} from "./http-execution-v3.ts";
|
|
/** V3 `attachCredentials` 콜백이 반환해야 하는 결과 타입. */
|
|
export type { CredentialPatchOutcome } from "./http-contract-bridge.ts";
|
|
/**
|
|
* V2 legacy. operationId + `LegacyHttpInput`으로 호출하는 범용 클라이언트다.
|
|
* 새 코드는 위의 V3 실행기를 쓴다.
|
|
*
|
|
* 이 템플릿은 V2의 오퍼레이션 레지스트리와 payload 매퍼를 비워서 출하한다.
|
|
* 제품이 `RuntimeHttpContract`(`src/bootstrap/runtime-adapters.ts`)의 네
|
|
* 슬롯을 주입해야 동작한다 — 주입 없이 V3에서 되돌리면 모든 요청이 실패한다.
|
|
*/
|
|
export {
|
|
createHttpClient,
|
|
type HttpClient,
|
|
type HttpClientDependencies,
|
|
type HttpFailure,
|
|
type HttpResult,
|
|
type LegacyHttpInput,
|
|
type Scheduler,
|
|
} from "./client.ts";
|
|
/** V2 `HttpClient.execute`의 첫 인자 타입. */
|
|
export type { OperationRequestInput } from "./request-builder.ts";
|