Skip to content

Commit c7e0e5b

Browse files
committed
Test Build
1 parent 4c00e2c commit c7e0e5b

File tree

8 files changed

+50
-47
lines changed

8 files changed

+50
-47
lines changed

packages/abstractions/src/apiClientBuilder.ts

-28
This file was deleted.

packages/abstractions/src/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
* See License in the project root for license information.
55
* -------------------------------------------------------------------------------------------
66
*/
7-
export * from "./apiClientBuilder";
87
export * from "./apiClientProxifier";
98
export * from "./apiError";
109
export * from "./authentication";

packages/abstractions/src/serialization/parseNodeProxyFactory.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export abstract class ParseNodeProxyFactory implements ParseNodeFactory {
1919
* @param _onBefore the callback to invoke before the deserialization of any model object.
2020
* @param _onAfter the callback to invoke after the deserialization of any model object.
2121
*/
22-
protected constructor(
22+
constructor(
2323
private readonly _concrete: ParseNodeFactory,
2424
private readonly _onBefore: (value: Parsable) => void,
2525
private readonly _onAfter: (value: Parsable) => void,

packages/abstractions/src/serialization/serializationWriterFactoryRegistry.ts

+20
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type { SerializationWriterFactory } from "./serializationWriterFactory";
99
import type { Parsable } from "./parsable";
1010
import type { ModelSerializerFunction } from "./serializationFunctionTypes";
1111
import { BackingStoreSerializationWriterProxyFactory } from "../store";
12+
import { ParseNodeFactoryRegistry } from "./parseNodeFactoryRegistry";
1213

1314
/** This factory holds a list of all the registered factories for the various types of nodes. */
1415
export class SerializationWriterFactoryRegistry implements SerializationWriterFactory {
@@ -177,4 +178,23 @@ export class SerializationWriterFactoryRegistry implements SerializationWriterFa
177178
const decoder = new TextDecoder();
178179
return decoder.decode(buffer);
179180
}
181+
182+
/**
183+
* Enables the backing store on default serialization writers and the given serialization writer.
184+
* @param parseNodeFactoryRegistry The parse node factory registry to enable the backing store on.
185+
* @param original The serialization writer to enable the backing store on.
186+
* @returns A new serialization writer with the backing store enabled.
187+
*/
188+
public enableBackingStoreForSerializationWriterFactory = (parseNodeFactoryRegistry: ParseNodeFactoryRegistry, original: SerializationWriterFactory): SerializationWriterFactory => {
189+
if (!original) throw new Error("Original must be specified");
190+
let result = original;
191+
if (original instanceof SerializationWriterFactoryRegistry) {
192+
original.enableBackingStoreForSerializationRegistry();
193+
} else {
194+
result = new BackingStoreSerializationWriterProxyFactory(original);
195+
}
196+
this.enableBackingStoreForSerializationRegistry();
197+
parseNodeFactoryRegistry.enableBackingStoreForParseNodeRegistry();
198+
return result;
199+
};
180200
}

packages/abstractions/src/store/backingStoreParseNodeFactory.ts

-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ export class BackingStoreParseNodeFactory extends ParseNodeProxyFactory {
1414
* @param concrete the concrete implementation of the ParseNodeFactory
1515
*/
1616
public constructor(concrete: ParseNodeFactory) {
17-
if (!concrete) {
18-
throw new Error("Concrete ParseNodeFactory implementation is required");
19-
}
2017
super(
2118
concrete,
2219
(value) => {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
import { BackingStoreParseNodeFactory } from "../../../src/store";
8+
import { assert, describe, it } from "vitest";
9+
import { ParseNodeFactory } from "../../../src";
10+
11+
describe("BackingStoreParseNodeFactory", () => {
12+
describe("constructor", () => {
13+
it("Should create an instance of backing store factory", async () => {
14+
const fakeParseNodeFactory: ParseNodeFactory = {} as ParseNodeFactory;
15+
const backingStoreParseNodeFactory: BackingStoreParseNodeFactory = new BackingStoreParseNodeFactory(fakeParseNodeFactory);
16+
assert.isDefined(backingStoreParseNodeFactory);
17+
});
18+
});
19+
});

packages/http/fetch/src/fetchRequestAdapter.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* -------------------------------------------------------------------------------------------
66
*/
77

8-
import { type ApiError, type AuthenticationProvider, type BackingStoreFactory, BackingStoreFactorySingleton, type DateOnly, DefaultApiError, type Duration, enableBackingStoreForSerializationWriterFactory, type ErrorMappings, type Parsable, type ParsableFactory, type ParseNode, type ParseNodeFactory, ParseNodeFactoryRegistry, type PrimitiveTypesForDeserialization, type PrimitiveTypesForDeserializationType, type RequestAdapter, type RequestInformation, type ResponseHandler, type ResponseHandlerOption, ResponseHandlerOptionKey, type SerializationWriterFactory, SerializationWriterFactoryRegistry, type TimeOnly } from "@microsoft/kiota-abstractions";
8+
import { type ApiError, type AuthenticationProvider, type BackingStoreFactory, BackingStoreFactorySingleton, type DateOnly, DefaultApiError, type Duration, type ErrorMappings, type Parsable, type ParsableFactory, type ParseNode, type ParseNodeFactory, ParseNodeFactoryRegistry, type PrimitiveTypesForDeserialization, type PrimitiveTypesForDeserializationType, type RequestAdapter, type RequestInformation, type ResponseHandler, type ResponseHandlerOption, ResponseHandlerOptionKey, type SerializationWriterFactory, SerializationWriterFactoryRegistry, type TimeOnly } from "@microsoft/kiota-abstractions";
99
import { type Span, SpanStatusCode, trace } from "@opentelemetry/api";
1010

1111
import { HttpClient } from "./httpClient";
@@ -365,7 +365,7 @@ export class FetchRequestAdapter implements RequestAdapter {
365365
throw new Error("parseNodeFactory is not a ParseNodeFactoryRegistry");
366366
}
367367
if (this.serializationWriterFactory instanceof SerializationWriterFactoryRegistry && this.parseNodeFactory instanceof ParseNodeFactoryRegistry) {
368-
this.serializationWriterFactory = enableBackingStoreForSerializationWriterFactory(this.serializationWriterFactory, this.parseNodeFactory, this.serializationWriterFactory);
368+
this.serializationWriterFactory = this.serializationWriterFactory.enableBackingStoreForSerializationWriterFactory(this.parseNodeFactory, this.serializationWriterFactory);
369369
} else {
370370
throw new Error("serializationWriterFactory is not a SerializationWriterFactoryRegistry or parseNodeFactory is not a ParseNodeFactoryRegistry");
371371
}

packages/test/generatedCode/apiClient.ts

+8-12
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// @ts-ignore
55
import { type UsersRequestBuilder, UsersRequestBuilderNavigationMetadata } from './users/index.js';
66
// @ts-ignore
7-
import { apiClientProxifier, registerDefaultDeserializer, registerDefaultSerializer, type BaseRequestBuilder, type KeysToExcludeForNavigationMetadata, type NavigationMetadata, type RequestAdapter } from '@microsoft/kiota-abstractions';
7+
import { apiClientProxifier, type BaseRequestBuilder, type KeysToExcludeForNavigationMetadata, type NavigationMetadata, type RequestAdapter, ParseNodeFactoryRegistry, SerializationWriterFactoryRegistry } from '@microsoft/kiota-abstractions';
88
// @ts-ignore
99
import { FormParseNodeFactory, FormSerializationWriterFactory } from '@microsoft/kiota-serialization-form';
1010
// @ts-ignore
@@ -13,10 +13,6 @@ import { JsonParseNodeFactory, JsonSerializationWriterFactory } from '@microsoft
1313
import { MultipartSerializationWriterFactory } from '@microsoft/kiota-serialization-multipart';
1414
// @ts-ignore
1515
import { TextParseNodeFactory, TextSerializationWriterFactory } from '@microsoft/kiota-serialization-text';
16-
import {
17-
ParseNodeFactoryRegistry,
18-
SerializationWriterFactoryRegistry
19-
} from "@microsoft/kiota-abstractions/src";
2016

2117
/**
2218
* The main entry point of the SDK, exposes the configuration and the fluent API.
@@ -50,13 +46,13 @@ export function createApiClient(requestAdapter: RequestAdapter) {
5046
throw new Error("serializationWriterFactory is not an instance of SerializationWriterFactory");
5147
}
5248

53-
serializationWriterFactory.registerDefaultSerializer( JsonSerializationWriterFactory);
54-
serializationWriterFactory.registerDefaultSerializer( TextSerializationWriterFactory);
55-
serializationWriterFactory.registerDefaultSerializer( FormSerializationWriterFactory);
56-
serializationWriterFactory.registerDefaultSerializer( MultipartSerializationWriterFactory);
57-
parseNodeFactoryRegistry.registerDefaultDeserializer( JsonParseNodeFactory);
58-
parseNodeFactoryRegistry.registerDefaultDeserializer( TextParseNodeFactory);
59-
parseNodeFactoryRegistry.registerDefaultDeserializer( FormParseNodeFactory);
49+
serializationWriterFactory.registerDefaultSerializer(JsonSerializationWriterFactory);
50+
serializationWriterFactory.registerDefaultSerializer(TextSerializationWriterFactory);
51+
serializationWriterFactory.registerDefaultSerializer(FormSerializationWriterFactory);
52+
serializationWriterFactory.registerDefaultSerializer(MultipartSerializationWriterFactory);
53+
parseNodeFactoryRegistry.registerDefaultDeserializer(JsonParseNodeFactory);
54+
parseNodeFactoryRegistry.registerDefaultDeserializer(TextParseNodeFactory);
55+
parseNodeFactoryRegistry.registerDefaultDeserializer(FormParseNodeFactory);
6056
if (requestAdapter.baseUrl === undefined || requestAdapter.baseUrl === "") {
6157
requestAdapter.baseUrl = "https://graph.microsoft.com/v1.0";
6258
}

0 commit comments

Comments
 (0)