|
| 1 | +/** |
| 2 | + * ------------------------------------------------------------------------------------------- |
| 3 | + * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. |
| 4 | + * See License in the project root for license information. |
| 5 | + * ------------------------------------------------------------------------------------------- |
| 6 | + */ |
| 7 | + |
| 8 | +import { AuthenticationProvider, ParseNodeFactory, ParseNodeFactoryRegistry, registerDefaultDeserializer, registerDefaultSerializer, SerializationWriterFactory, SerializationWriterFactoryRegistry } from "@microsoft/kiota-abstractions"; |
| 9 | +import { FormParseNodeFactory, FormSerializationWriterFactory } from "@microsoft/kiota-serialization-form"; |
| 10 | +import { JsonParseNodeFactory, JsonSerializationWriterFactory } from "@microsoft/kiota-serialization-json"; |
| 11 | +import { MultipartSerializationWriterFactory } from "@microsoft/kiota-serialization-multipart"; |
| 12 | +import { TextParseNodeFactory, TextSerializationWriterFactory } from "@microsoft/kiota-serialization-text"; |
| 13 | +import { FetchRequestAdapter, HttpClient, type ObservabilityOptions, ObservabilityOptionsImpl } from "@microsoft/kiota-http-fetchlibrary"; |
| 14 | + |
| 15 | +/** |
| 16 | + * Default request adapter for graph clients. Bootstraps serialization and other aspects. |
| 17 | + */ |
| 18 | +export class DefaultRequestAdapter extends FetchRequestAdapter { |
| 19 | + /** |
| 20 | + * Instantiates a new request adapter. |
| 21 | + * @param authenticationProvider the authentication provider to use. |
| 22 | + * @param parseNodeFactory the parse node factory to deserialize responses. |
| 23 | + * @param serializationWriterFactory the serialization writer factory to use to serialize request bodies. |
| 24 | + * @param httpClient the http client to use to execute requests. |
| 25 | + * @param observabilityOptions the observability options to use. |
| 26 | + */ |
| 27 | + public constructor(authenticationProvider: AuthenticationProvider, parseNodeFactory: ParseNodeFactory = ParseNodeFactoryRegistry.defaultInstance, serializationWriterFactory: SerializationWriterFactory = SerializationWriterFactoryRegistry.defaultInstance, httpClient: HttpClient = new HttpClient(), observabilityOptions: ObservabilityOptions = new ObservabilityOptionsImpl()) { |
| 28 | + super(authenticationProvider, parseNodeFactory, serializationWriterFactory, httpClient, observabilityOptions); |
| 29 | + DefaultRequestAdapter.setupDefaults(); |
| 30 | + } |
| 31 | + |
| 32 | + private static setupDefaults() { |
| 33 | + registerDefaultSerializer(JsonSerializationWriterFactory); |
| 34 | + registerDefaultSerializer(TextSerializationWriterFactory); |
| 35 | + registerDefaultSerializer(FormSerializationWriterFactory); |
| 36 | + registerDefaultSerializer(MultipartSerializationWriterFactory); |
| 37 | + registerDefaultDeserializer(JsonParseNodeFactory); |
| 38 | + registerDefaultDeserializer(TextParseNodeFactory); |
| 39 | + registerDefaultDeserializer(FormParseNodeFactory); |
| 40 | + } |
| 41 | +} |
0 commit comments