Skip to content

Commit

Permalink
[ts-http-runtime] minimal API surface
Browse files Browse the repository at this point in the history
  • Loading branch information
timovv committed Nov 4, 2024
1 parent 8dc3e56 commit 7ba36a1
Show file tree
Hide file tree
Showing 10 changed files with 260 additions and 760 deletions.
348 changes: 195 additions & 153 deletions sdk/core/ts-http-runtime/review/azure-core-comparison.diff

Large diffs are not rendered by default.

457 changes: 11 additions & 446 deletions sdk/core/ts-http-runtime/review/ts-http-runtime.api.md

Large diffs are not rendered by default.

10 changes: 0 additions & 10 deletions sdk/core/ts-http-runtime/src/auth/tokenCredential.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// Licensed under the MIT License.

import type { AbortSignalLike } from "../abort-controller/AbortSignalLike.js";
import type { TracingContext } from "../tracing/interfaces.js";

/**
* Represents a credential capable of providing an authentication token.
Expand Down Expand Up @@ -38,15 +37,6 @@ export interface GetTokenOptions {
*/
timeout?: number;
};
/**
* Options used when tracing is enabled.
*/
tracingOptions?: {
/**
* Tracing Context for the current request.
*/
tracingContext?: TracingContext;
};
/**
* Claim details to perform the Continuous Access Evaluation authentication flow
*/
Expand Down
11 changes: 0 additions & 11 deletions sdk/core/ts-http-runtime/src/client/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import type {
} from "../interfaces.js";
import type { Pipeline, PipelinePolicy } from "../pipeline.js";
import type { AbortSignalLike } from "../abort-controller/AbortSignalLike.js";
import type { OperationTracingOptions } from "../tracing/interfaces.js";
import type { PipelineOptions } from "../createPipelineFromOptions.js";
import type { LogPolicyOptions } from "../policies/logPolicy.js";

Expand Down Expand Up @@ -73,11 +72,6 @@ export type RequestParameters = {
*/
abortSignal?: AbortSignalLike;

/**
* Options used when tracing is enabled.
*/
tracingOptions?: OperationTracingOptions;

/**
* A function to be called each time a response is received from the server
* while performing the requested operation.
Expand Down Expand Up @@ -127,11 +121,6 @@ export interface OperationOptions {
* Options used when creating and sending HTTP requests for this operation.
*/
requestOptions?: OperationRequestOptions;
/**
* Options used when tracing is enabled.
*/
tracingOptions?: OperationTracingOptions;

/**
* A function to be called each time a response is received from the server
* while performing the requested operation.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ export function operationOptionsToRequestParameters(options: OperationOptions):
abortSignal: options.abortSignal,
onUploadProgress: options.requestOptions?.onUploadProgress,
onDownloadProgress: options.requestOptions?.onDownloadProgress,
tracingOptions: options.tracingOptions,
headers: { ...options.requestOptions?.headers },
onResponse: options.onResponse,
};
Expand Down
1 change: 0 additions & 1 deletion sdk/core/ts-http-runtime/src/client/sendRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ function buildPipelineRequest(
multipartBody,
headers,
allowInsecureConnection: options.allowInsecureConnection,
tracingOptions: options.tracingOptions,
abortSignal: options.abortSignal,
onUploadProgress: options.onUploadProgress,
onDownloadProgress: options.onDownloadProgress,
Expand Down
3 changes: 1 addition & 2 deletions sdk/core/ts-http-runtime/src/createPipelineFromOptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@

import { type LogPolicyOptions, logPolicy } from "./policies/logPolicy.js";
import { type Pipeline, createEmptyPipeline } from "./pipeline.js";
import type { PipelineRetryOptions, TlsSettings } from "./interfaces.js";
import type { PipelineRetryOptions, ProxySettings, TlsSettings } from "./interfaces.js";
import { type RedirectPolicyOptions, redirectPolicy } from "./policies/redirectPolicy.js";
import { type UserAgentPolicyOptions, userAgentPolicy } from "./policies/userAgentPolicy.js";
import type { ProxySettings } from "./index.js";
import { decompressResponsePolicy } from "./policies/decompressResponsePolicy.js";
import { defaultRetryPolicy } from "./policies/defaultRetryPolicy.js";
import { formDataPolicy } from "./policies/formDataPolicy.js";
Expand Down
186 changes: 52 additions & 134 deletions sdk/core/ts-http-runtime/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,148 +11,66 @@ declare global {
}
/* eslint-enable @typescript-eslint/no-unused-vars */

export { AbortSignalLike } from "./abort-controller/AbortSignalLike.js";
export {
Agent,
createClientLogger,
TypeSpecRuntimeLogger,
type TypeSpecRuntimeClientLogger,
type Debugger,
} from "./logger/logger.js";
export type {
BodyPart,
FormDataMap,
FormDataValue,
HttpClient,
HttpHeaders,
HttpMethods,
RawHttpHeaders,
KeyObject,
MultipartRequestBody,
PxfObject,
HttpClient,
PipelineRequest,
PipelineResponse,
PipelineRetryOptions,
ProxySettings,
PxfObject,
RawHttpHeaders,
RawHttpHeadersInput,
RequestBodyType,
SendRequest,
TlsSettings,
Agent,
RequestBodyType,
FormDataMap,
HttpHeaders,
HttpMethods,
MultipartRequestBody,
TransferProgressEvent,
ProxySettings,
RawHttpHeadersInput,
PipelineRetryOptions,
} from "./interfaces.js";
export { isKeyCredential, type KeyCredential } from "./auth/keyCredential.js";
export {
AddPolicyOptions as AddPipelineOptions,
PipelinePhase,
PipelinePolicy,
Pipeline,
createEmptyPipeline,
} from "./pipeline.js";
export {
createPipelineFromOptions,
TelemetryOptions,
InternalPipelineOptions,
PipelineOptions,
} from "./createPipelineFromOptions.js";
export { createDefaultHttpClient } from "./defaultHttpClient.js";
export { createHttpHeaders } from "./httpHeaders.js";
export { createPipelineRequest, PipelineRequestOptions } from "./pipelineRequest.js";
export { RestError, RestErrorOptions, isRestError } from "./restError.js";
export {
decompressResponsePolicy,
decompressResponsePolicyName,
} from "./policies/decompressResponsePolicy.js";
export { logPolicy, logPolicyName, LogPolicyOptions } from "./policies/logPolicy.js";
export { multipartPolicy, multipartPolicyName } from "./policies/multipartPolicy.js";
export { proxyPolicy, proxyPolicyName, getDefaultProxySettings } from "./policies/proxyPolicy.js";
export {
redirectPolicy,
redirectPolicyName,
RedirectPolicyOptions,
} from "./policies/redirectPolicy.js";
export {
tracingPolicy,
tracingPolicyName,
TracingPolicyOptions,
} from "./policies/tracingPolicy.js";
export { defaultRetryPolicy, DefaultRetryPolicyOptions } from "./policies/defaultRetryPolicy.js";
export {
userAgentPolicy,
userAgentPolicyName,
UserAgentPolicyOptions,
} from "./policies/userAgentPolicy.js";
export { tlsPolicy, tlsPolicyName } from "./policies/tlsPolicy.js";
export { formDataPolicy, formDataPolicyName } from "./policies/formDataPolicy.js";
export {
bearerTokenAuthenticationPolicy,
BearerTokenAuthenticationPolicyOptions,
bearerTokenAuthenticationPolicyName,
ChallengeCallbacks,
AuthorizeRequestOptions,
AuthorizeRequestOnChallengeOptions,
} from "./policies/bearerTokenAuthenticationPolicy.js";
export { AbortSignalLike } from "./abort-controller/AbortSignalLike.js";
export { AbortError } from "./abort-controller/AbortError.js";
export { AccessToken, GetTokenOptions, TokenCredential } from "./auth/tokenCredential.js";
export { KeyCredential, isKeyCredential } from "./auth/keyCredential.js";
export {
AddEventOptions,
Instrumenter,
InstrumenterSpanOptions,
OperationTracingOptions,
OptionsWithTracingContext,
Resolved,
SpanStatus,
SpanStatusError,
SpanStatusSuccess,
TracingClient,
TracingClientOptions,
TracingContext,
TracingSpan,
TracingSpanKind,
TracingSpanLink,
TracingSpanOptions,
} from "./tracing/interfaces.js";
export { useInstrumenter } from "./tracing/instrumenter.js";
export { createTracingClient } from "./tracing/tracingClient.js";
// from core-util
export { delay, DelayOptions, calculateRetryDelay } from "./util/delay.js";
export {
AbortOptions,
cancelablePromiseRace,
AbortablePromiseBuilder,
} from "./util/aborterUtils.js";
export {
createAbortablePromise,
CreateAbortablePromiseOptions,
} from "./util/createAbortablePromise.js";
export { getRandomIntegerInclusive } from "./util/random.js";
export { isObject, UnknownObject } from "./util/object.js";
export { isError, getErrorMessage } from "./util/error.js";
export {
createFile,
createFileFromStream,
CreateFileOptions,
CreateFileFromStreamOptions,
} from "./util/file.js";
export { computeSha256Hash, computeSha256Hmac } from "./util/sha256.js";
export { isDefined, isObjectWithProperties, objectHasProperty } from "./util/typeGuards.js";
export { randomUUID } from "./util/uuidUtils.js";
export {
isBrowser,
isBun,
isNode,
isNodeLike,
isNodeRuntime,
isDeno,
isReactNative,
isWebWorker,
} from "./util/checkEnvironment.js";
export { uint8ArrayToString, stringToUint8Array, EncodingType } from "./util/bytesEncoding.js";
export {
Debugger,
TypeSpecRuntimeLogger,
TypeSpecRuntimeLogLevel,
TypeSpecRuntimeClientLogger,
} from "./logger/logger.js";
// client
export { createRestError } from "./client/restError.js";
export {
addCredentialPipelinePolicy,
AddCredentialPipelinePolicyOptions,
} from "./client/clientHelpers.js";
export { operationOptionsToRequestParameters } from "./client/operationOptionHelpers.js";
export * from "./client/getClient.js";
export * from "./client/common.js";
isTokenCredential,
type TokenCredential,
type GetTokenOptions,
type AccessToken,
} from "./auth/tokenCredential.js";
export type { Pipeline, PipelinePolicy, AddPolicyOptions, PipelinePhase } from "./pipeline.js";
export { RestError, isRestError, type RestErrorOptions } from "./restError.js";
export { stringToUint8Array, uint8ArrayToString, type EncodingType } from "./util/bytesEncoding.js";
export { getClient } from "./client/getClient.js";
export type {
Client,
ClientOptions,
OperationOptions,
AdditionalPolicyConfig,
PathUnchecked,
PathUncheckedResponse,
HttpResponse,
RawResponseCallback,
OperationRequestOptions,
PathParameters,
ResourceMethods,
PathParameterWithOptions,
StreamableMethod,
RequestParameters,
HttpNodeStreamResponse,
HttpBrowserStreamResponse,
FullOperationResponse,
} from "./client/common.js";
export type { PipelineOptions, TelemetryOptions } from "./createPipelineFromOptions.js";
export type { LogPolicyOptions as LogOptions } from "./policies/logPolicy.js";
export type { RedirectPolicyOptions as RedirectOptions } from "./policies/redirectPolicy.js";
export type { UserAgentPolicyOptions as UserAgentOptions } from "./policies/userAgentPolicy.js";
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ async function defaultAuthorizeRequest(options: AuthorizeRequestOptions): Promis
const { scopes, getAccessToken, request } = options;
const getTokenOptions: GetTokenOptions = {
abortSignal: request.abortSignal,
tracingOptions: request.tracingOptions,
};
const accessToken = await getAccessToken(scopes, getTokenOptions);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

import type { PipelineResponse } from "../index.js";
import type { PipelineResponse } from "../interfaces.js";
import { parseHeaderValueAsNumber } from "../util/helpers.js";
import type { RetryStrategy } from "./retryStrategy.js";

Expand Down

0 comments on commit 7ba36a1

Please sign in to comment.