Skip to content

Commit fc1d565

Browse files
committed
Simplify StorageInstanceManager
1 parent ffb9838 commit fc1d565

5 files changed

Lines changed: 140 additions & 158 deletions

File tree

packages/core/src/service_locator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ export class ServiceLocator implements ServiceLocatorInterface {
267267

268268
getStorageInstanceManager(): StorageInstanceManager {
269269
if (!ServiceLocator.storageInstanceManager) {
270-
ServiceLocator.storageInstanceManager = new StorageInstanceManager(this.getConfiguration());
270+
ServiceLocator.storageInstanceManager = new StorageInstanceManager();
271271
}
272272
return ServiceLocator.storageInstanceManager;
273273
}

packages/core/src/storages/dataset.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type { Awaitable } from '../typedefs.js';
1111
import { checkStorageAccess } from './access_checking.js';
1212
import { KeyValueStore } from './key_value_store.js';
1313
import type { StorageIdentifier, StorageManagerOptions } from './storage_instance_manager.js';
14+
import { resolveStorageIdentifier } from './storage_instance_manager.js';
1415
import { purgeDefaultStorages } from './utils.js';
1516

1617
/** @internal */
@@ -718,17 +719,14 @@ export class Dataset<Data extends Dictionary = Dictionary> {
718719

719720
await purgeDefaultStorages({ onlyPurgeOnce: true, client, config: options.config });
720721

722+
const resolved = await resolveStorageIdentifier('Dataset', identifier, client, options.config);
721723
const clientCacheKey = client.getStorageClientCacheKey?.() ?? '';
722724

723-
return serviceLocator
724-
.getStorageInstanceManager()
725-
.openStorage<Dataset<Data>>(
726-
this,
727-
identifier,
728-
() =>
729-
client.createDatasetClient(typeof identifier === 'string' ? undefined : (identifier ?? undefined)),
730-
clientCacheKey,
731-
);
725+
return serviceLocator.getStorageInstanceManager().openStorage<Dataset<Data>>(this, {
726+
...resolved,
727+
clientOpener: () => client.createDatasetClient(resolved),
728+
clientCacheKey,
729+
});
732730
}
733731

734732
/**

packages/core/src/storages/key_value_store.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { serviceLocator } from '../service_locator.js';
1313
import type { Awaitable } from '../typedefs.js';
1414
import { checkStorageAccess } from './access_checking.js';
1515
import type { StorageIdentifier, StorageManagerOptions } from './storage_instance_manager.js';
16+
import { resolveStorageIdentifier } from './storage_instance_manager.js';
1617
import { purgeDefaultStorages } from './utils.js';
1718

1819
/**
@@ -614,19 +615,14 @@ export class KeyValueStore {
614615

615616
await purgeDefaultStorages({ onlyPurgeOnce: true, client, config: options.config });
616617

618+
const resolved = await resolveStorageIdentifier('KeyValueStore', identifier, client, options.config);
617619
const clientCacheKey = client.getStorageClientCacheKey?.() ?? '';
618620

619-
return serviceLocator
620-
.getStorageInstanceManager()
621-
.openStorage<KeyValueStore>(
622-
this,
623-
identifier,
624-
() =>
625-
client.createKeyValueStoreClient(
626-
typeof identifier === 'string' ? undefined : (identifier ?? undefined),
627-
),
628-
clientCacheKey,
629-
);
621+
return serviceLocator.getStorageInstanceManager().openStorage<KeyValueStore>(this, {
622+
...resolved,
623+
clientOpener: () => client.createKeyValueStoreClient(resolved),
624+
clientCacheKey,
625+
});
630626
}
631627

632628
/**

packages/core/src/storages/request_provider.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { Request } from '../request.js';
3434
import { serviceLocator } from '../service_locator.js';
3535
import { checkStorageAccess } from './access_checking.js';
3636
import type { IStorage, StorageIdentifier, StorageManagerOptions } from './storage_instance_manager.js';
37+
import { resolveStorageIdentifier } from './storage_instance_manager.js';
3738
import { getRequestId, purgeDefaultStorages, QUERY_HEAD_MIN_LENGTH } from './utils.js';
3839

3940
export type RequestsLike = AsyncIterable<Source | string> | Iterable<Source | string> | (Source | string)[];
@@ -876,19 +877,21 @@ export abstract class RequestProvider implements IStorage, IRequestManager {
876877

877878
await purgeDefaultStorages({ onlyPurgeOnce: true, client, config: options.config });
878879

880+
const resolved = await resolveStorageIdentifier(
881+
'RequestQueue',
882+
identifier,
883+
client,
884+
options.config ?? serviceLocator.getConfiguration(),
885+
);
879886
const clientCacheKey = client.getStorageClientCacheKey?.() ?? '';
880887

881888
const queue = await serviceLocator
882889
.getStorageInstanceManager()
883-
.openStorage<RequestProvider>(
884-
this as typeof BuiltRequestProvider,
885-
identifier,
886-
() =>
887-
client.createRequestQueueClient(
888-
typeof identifier === 'string' ? undefined : (identifier ?? undefined),
889-
),
890+
.openStorage<RequestProvider>(this as typeof BuiltRequestProvider, {
891+
...resolved,
892+
clientOpener: () => client.createRequestQueueClient(resolved),
890893
clientCacheKey,
891-
);
894+
});
892895
queue.proxyConfiguration = options.proxyConfiguration;
893896

894897
// Re-create the request queue client with clientKey and timeoutSecs so that

0 commit comments

Comments
 (0)