|
| 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 { |
| 9 | + AuthenticationProvider, |
| 10 | + ParseNodeFactory, |
| 11 | + ParseNodeFactoryRegistry, |
| 12 | + registerDefaultDeserializer, |
| 13 | + registerDefaultSerializer, |
| 14 | + SerializationWriterFactory, |
| 15 | + SerializationWriterFactoryRegistry, |
| 16 | +} from "@microsoft/kiota-abstractions"; |
| 17 | +import { FormParseNodeFactory, FormSerializationWriterFactory } from '@microsoft/kiota-serialization-form'; |
| 18 | +import { JsonParseNodeFactory, JsonSerializationWriterFactory } from '@microsoft/kiota-serialization-json'; |
| 19 | +import { MultipartSerializationWriterFactory } from '@microsoft/kiota-serialization-multipart'; |
| 20 | +import { TextParseNodeFactory, TextSerializationWriterFactory } from '@microsoft/kiota-serialization-text'; |
| 21 | +import { |
| 22 | + FetchRequestAdapter, |
| 23 | + HttpClient, |
| 24 | + type ObservabilityOptions, |
| 25 | + ObservabilityOptionsImpl, |
| 26 | +} from "@microsoft/kiota-http-fetchlibrary"; |
| 27 | + |
| 28 | +/** |
| 29 | + * Default request adapter for graph clients. Bootstraps serialization and other aspects. |
| 30 | + */ |
| 31 | +export class DefaultRequestAdapter extends FetchRequestAdapter { |
| 32 | + /** |
| 33 | + * Instantiates a new request adapter. |
| 34 | + * @param authenticationProvider the authentication provider to use. |
| 35 | + * @param parseNodeFactory the parse node factory to deserialize responses. |
| 36 | + * @param serializationWriterFactory the serialization writer factory to use to serialize request bodies. |
| 37 | + * @param httpClient the http client to use to execute requests. |
| 38 | + * @param observabilityOptions the observability options to use. |
| 39 | + */ |
| 40 | + public constructor( |
| 41 | + authenticationProvider: AuthenticationProvider, |
| 42 | + parseNodeFactory: ParseNodeFactory = ParseNodeFactoryRegistry.defaultInstance, |
| 43 | + serializationWriterFactory: SerializationWriterFactory = SerializationWriterFactoryRegistry.defaultInstance, |
| 44 | + httpClient: HttpClient = new HttpClient(), |
| 45 | + observabilityOptions: ObservabilityOptions = new ObservabilityOptionsImpl(), |
| 46 | + ) { |
| 47 | + super(authenticationProvider, parseNodeFactory, serializationWriterFactory, httpClient, observabilityOptions); |
| 48 | + DefaultRequestAdapter.setupDefaults(); |
| 49 | + } |
| 50 | + |
| 51 | + private static setupDefaults() { |
| 52 | + registerDefaultSerializer(JsonSerializationWriterFactory); |
| 53 | + registerDefaultSerializer(TextSerializationWriterFactory); |
| 54 | + registerDefaultSerializer(FormSerializationWriterFactory); |
| 55 | + registerDefaultSerializer(MultipartSerializationWriterFactory); |
| 56 | + registerDefaultDeserializer(JsonParseNodeFactory); |
| 57 | + registerDefaultDeserializer(TextParseNodeFactory); |
| 58 | + registerDefaultDeserializer(FormParseNodeFactory); |
| 59 | + } |
| 60 | +} |
0 commit comments