diff --git a/.changeset/ripe-results-check.md b/.changeset/ripe-results-check.md new file mode 100644 index 000000000000..db7b39ed8553 --- /dev/null +++ b/.changeset/ripe-results-check.md @@ -0,0 +1,7 @@ +--- +"@fluidframework/container-runtime-definitions": major +--- + +`getAliasedDataStoreEntryPoint` in `IContainerRuntime` is now required. + +`getAliasedDataStoreEntryPoint` was added to `IContainerRuntime` in 2.0.0-internal.6.0 and is now required. diff --git a/api-report/container-runtime-definitions.api.md b/api-report/container-runtime-definitions.api.md index d0b0bcd35337..88ccb060e9c4 100644 --- a/api-report/container-runtime-definitions.api.md +++ b/api-report/container-runtime-definitions.api.md @@ -38,7 +38,7 @@ export interface IContainerRuntime extends IProvideFluidDataStoreRegistry, ICont // (undocumented) readonly flushMode: FlushMode; getAbsoluteUrl(relativeUrl: string): Promise; - getAliasedDataStoreEntryPoint?(alias: string): Promise | undefined>; + getAliasedDataStoreEntryPoint(alias: string): Promise | undefined>; // @deprecated getRootDataStore(id: string, wait?: boolean): Promise; readonly isDirty: boolean; diff --git a/packages/runtime/container-runtime-definitions/package.json b/packages/runtime/container-runtime-definitions/package.json index c4dee4191c19..8bd7abff2547 100644 --- a/packages/runtime/container-runtime-definitions/package.json +++ b/packages/runtime/container-runtime-definitions/package.json @@ -57,6 +57,9 @@ "RemovedInterfaceDeclaration_IDataStoreWithBindToContext_Deprecated": { "forwardCompat": false, "backCompat": false + }, + "InterfaceDeclaration_IContainerRuntime": { + "forwardCompat": false } } } diff --git a/packages/runtime/container-runtime-definitions/src/containerRuntime.ts b/packages/runtime/container-runtime-definitions/src/containerRuntime.ts index 3557ee9bee24..8e36a845a27e 100644 --- a/packages/runtime/container-runtime-definitions/src/containerRuntime.ts +++ b/packages/runtime/container-runtime-definitions/src/containerRuntime.ts @@ -67,7 +67,7 @@ export interface IContainerRuntime * @returns - The data store's entry point (IFluidHandle) if it exists and is aliased. Returns undefined if no * data store has been assigned the given alias. */ - getAliasedDataStoreEntryPoint?(alias: string): Promise | undefined>; + getAliasedDataStoreEntryPoint(alias: string): Promise | undefined>; /** * Creates detached data store context. Data store initialization is considered complete diff --git a/packages/runtime/container-runtime-definitions/src/test/types/validateContainerRuntimeDefinitionsPrevious.generated.ts b/packages/runtime/container-runtime-definitions/src/test/types/validateContainerRuntimeDefinitionsPrevious.generated.ts index 076b8db6f70f..aa03549afb61 100644 --- a/packages/runtime/container-runtime-definitions/src/test/types/validateContainerRuntimeDefinitionsPrevious.generated.ts +++ b/packages/runtime/container-runtime-definitions/src/test/types/validateContainerRuntimeDefinitionsPrevious.generated.ts @@ -23,6 +23,7 @@ declare function get_old_InterfaceDeclaration_IContainerRuntime(): declare function use_current_InterfaceDeclaration_IContainerRuntime( use: TypeOnly); use_current_InterfaceDeclaration_IContainerRuntime( + // @ts-expect-error compatibility expected to be broken get_old_InterfaceDeclaration_IContainerRuntime()); /* diff --git a/packages/test/test-end-to-end-tests/src/test/gc/gcDatastoreAliased.spec.ts b/packages/test/test-end-to-end-tests/src/test/gc/gcDatastoreAliased.spec.ts index d96ef4540fbf..1663188cdea8 100644 --- a/packages/test/test-end-to-end-tests/src/test/gc/gcDatastoreAliased.spec.ts +++ b/packages/test/test-end-to-end-tests/src/test/gc/gcDatastoreAliased.spec.ts @@ -79,9 +79,7 @@ describeFullCompat("GC Data Store Aliased Full Compat", (getTestObjectProvider) const containerRuntime2 = mainDataStore2._context .containerRuntime as unknown as IContainerRuntime; assert.doesNotThrow( - async () => - containerRuntime2.getAliasedDataStoreEntryPoint?.(alias) ?? - containerRuntime2.getRootDataStore(alias), + async () => containerRuntime2.getAliasedDataStoreEntryPoint(alias), "Aliased datastore should be root as it is aliased!", ); summaryWithStats = await waitForSummary(container2); diff --git a/packages/test/test-end-to-end-tests/src/test/rootDatastores.spec.ts b/packages/test/test-end-to-end-tests/src/test/rootDatastores.spec.ts index 0869f4a08a0a..50ef1f4cdea4 100644 --- a/packages/test/test-end-to-end-tests/src/test/rootDatastores.spec.ts +++ b/packages/test/test-end-to-end-tests/src/test/rootDatastores.spec.ts @@ -91,9 +91,7 @@ describeFullCompat("Named root data stores", (getTestObjectProvider) => { * Gets an aliased data store with the given id. Throws an error if the data store cannot be retrieved. */ async function getAliasedDataStoreEntryPoint(dataObject: ITestFluidObject, id: string) { - // back-compat: Older container runtime did not have getAliasedDataStoreEntryPoint. - const dataStore = await (runtimeOf(dataObject).getAliasedDataStoreEntryPoint?.(id) ?? - runtimeOf(dataObject).getRootDataStore(id, false /* wait */)); + const dataStore = await runtimeOf(dataObject).getAliasedDataStoreEntryPoint(id); if (dataStore === undefined) { throw new Error("Could not get aliased data store"); } @@ -222,11 +220,7 @@ describeFullCompat("Named root data stores", (getTestObjectProvider) => { const datastores: IFluidRouter[] = []; const createAliasedDataStore = async () => { try { - const datastore = await getAliasedDataStoreEntryPoint(dataObject1, alias); - if (datastore === undefined) { - throw new Error("Aliased data store doesn't exist yet"); - } - return datastore; + await getAliasedDataStoreEntryPoint(dataObject1, alias); } catch (err) { const newDataStore = await runtimeOf(dataObject1).createDataStore( packageName, diff --git a/packages/test/test-utils/src/testContainerRuntimeFactory.ts b/packages/test/test-utils/src/testContainerRuntimeFactory.ts index b3cc79dd59b1..3e13080627bc 100644 --- a/packages/test/test-utils/src/testContainerRuntimeFactory.ts +++ b/packages/test/test-utils/src/testContainerRuntimeFactory.ts @@ -52,8 +52,7 @@ export const createTestContainerRuntimeFactory = ( public async instantiateFromExisting(runtime: ContainerRuntime): Promise { // Validate we can load root data stores. // We should be able to load any data store that was created in initializeFirstTime! - await (runtime.getAliasedDataStoreEntryPoint?.("default") ?? - runtime.getRootDataStore("default")); + await runtime.getAliasedDataStoreEntryPoint("default"); } async preInitialize(