@crawlee/core 4.0.0-beta.54 → 4.0.0-beta.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/crawlers/crawler_commons.d.ts +1 -1
- package/crawlers/crawler_commons.d.ts.map +1 -1
- package/package.json +5 -5
- package/service_locator.d.ts +8 -13
- package/service_locator.d.ts.map +1 -1
- package/service_locator.js +11 -24
- package/service_locator.js.map +1 -1
- package/storages/dataset.d.ts +3 -2
- package/storages/dataset.d.ts.map +1 -1
- package/storages/dataset.js +10 -7
- package/storages/dataset.js.map +1 -1
- package/storages/index.d.ts +1 -1
- package/storages/index.d.ts.map +1 -1
- package/storages/index.js +1 -1
- package/storages/index.js.map +1 -1
- package/storages/key_value_store.d.ts +3 -2
- package/storages/key_value_store.d.ts.map +1 -1
- package/storages/key_value_store.js +10 -7
- package/storages/key_value_store.js.map +1 -1
- package/storages/request_provider.d.ts +5 -3
- package/storages/request_provider.d.ts.map +1 -1
- package/storages/request_provider.js +31 -21
- package/storages/request_provider.js.map +1 -1
- package/storages/storage_instance_manager.d.ts +91 -0
- package/storages/storage_instance_manager.d.ts.map +1 -0
- package/storages/storage_instance_manager.js +236 -0
- package/storages/storage_instance_manager.js.map +1 -0
- package/storages/utils.d.ts +25 -1
- package/storages/utils.d.ts.map +1 -1
- package/storages/utils.js.map +1 -1
- package/storages/storage_manager.d.ts +0 -63
- package/storages/storage_manager.d.ts.map +0 -1
- package/storages/storage_manager.js +0 -111
- package/storages/storage_manager.js.map +0 -1
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { AsyncQueue } from '@sapphire/async-queue';
|
|
2
|
-
import { serviceLocator } from '../service_locator.js';
|
|
3
|
-
const DEFAULT_ID_CONFIG_KEYS = {
|
|
4
|
-
Dataset: 'defaultDatasetId',
|
|
5
|
-
KeyValueStore: 'defaultKeyValueStoreId',
|
|
6
|
-
RequestQueue: 'defaultRequestQueueId',
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* StorageManager takes care of opening remote or local storages.
|
|
10
|
-
* @ignore
|
|
11
|
-
*/
|
|
12
|
-
export class StorageManager {
|
|
13
|
-
config;
|
|
14
|
-
name;
|
|
15
|
-
StorageConstructor;
|
|
16
|
-
cache = new Map();
|
|
17
|
-
storageOpenQueue = new AsyncQueue();
|
|
18
|
-
constructor(StorageConstructor, config) {
|
|
19
|
-
this.config = config;
|
|
20
|
-
this.StorageConstructor = StorageConstructor;
|
|
21
|
-
this.name = this.StorageConstructor.name;
|
|
22
|
-
}
|
|
23
|
-
static async openStorage(storageClass, identifier, client) {
|
|
24
|
-
return this.getManager(storageClass).openStorage(identifier, client);
|
|
25
|
-
}
|
|
26
|
-
static getManager(storageClass) {
|
|
27
|
-
let storageManager = serviceLocator.getStorageManager(storageClass);
|
|
28
|
-
if (storageManager === undefined) {
|
|
29
|
-
storageManager = new StorageManager(storageClass, serviceLocator.getConfiguration());
|
|
30
|
-
serviceLocator.setStorageManager(storageClass, storageManager);
|
|
31
|
-
}
|
|
32
|
-
return serviceLocator.getStorageManager(storageClass);
|
|
33
|
-
}
|
|
34
|
-
async openStorage(identifier, client) {
|
|
35
|
-
await this.storageOpenQueue.wait();
|
|
36
|
-
const resolvedIdentifier = await this._resolveIdentifier(identifier, client);
|
|
37
|
-
const cacheKey = resolvedIdentifier.id ?? resolvedIdentifier.name;
|
|
38
|
-
let storage = this.cache.get(cacheKey);
|
|
39
|
-
if (!storage) {
|
|
40
|
-
client ??= serviceLocator.getStorageClient();
|
|
41
|
-
const subClient = await this._createSubClient(resolvedIdentifier, this.name, client);
|
|
42
|
-
const storageInfo = await subClient.getMetadata();
|
|
43
|
-
storage = new this.StorageConstructor({
|
|
44
|
-
id: storageInfo.id,
|
|
45
|
-
name: storageInfo.name,
|
|
46
|
-
client: subClient,
|
|
47
|
-
}, this.config);
|
|
48
|
-
this._addStorageToCache(storage);
|
|
49
|
-
}
|
|
50
|
-
this.storageOpenQueue.shift();
|
|
51
|
-
return storage;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Resolves the user-provided identifier to an unambiguous `StorageIdentifier`.
|
|
55
|
-
*
|
|
56
|
-
* - `null`/`undefined` → uses the default storage ID from config
|
|
57
|
-
* - `StorageIdentifier` object → passed through (with default ID fallback if empty)
|
|
58
|
-
* - `string` → tries to find an existing storage with that ID first;
|
|
59
|
-
* if none exists, treats the string as a name
|
|
60
|
-
*/
|
|
61
|
-
async _resolveIdentifier(identifier, client) {
|
|
62
|
-
if (typeof identifier === 'string') {
|
|
63
|
-
client ??= serviceLocator.getStorageClient();
|
|
64
|
-
if (client.storageExists && (await client.storageExists(identifier, this.name))) {
|
|
65
|
-
return { id: identifier };
|
|
66
|
-
}
|
|
67
|
-
return { name: identifier };
|
|
68
|
-
}
|
|
69
|
-
if (identifier?.id) {
|
|
70
|
-
return { id: identifier.id };
|
|
71
|
-
}
|
|
72
|
-
if (identifier?.name) {
|
|
73
|
-
return { name: identifier.name };
|
|
74
|
-
}
|
|
75
|
-
const defaultIdConfigKey = DEFAULT_ID_CONFIG_KEYS[this.name];
|
|
76
|
-
const defaultId = this.config[defaultIdConfigKey];
|
|
77
|
-
return { id: defaultId };
|
|
78
|
-
}
|
|
79
|
-
closeStorage(storage) {
|
|
80
|
-
const idKey = storage.id;
|
|
81
|
-
this.cache.delete(idKey);
|
|
82
|
-
if (storage.name) {
|
|
83
|
-
const nameKey = storage.name;
|
|
84
|
-
this.cache.delete(nameKey);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Creates a sub-client for the given storage type using the new factory-based StorageClient interface.
|
|
89
|
-
*/
|
|
90
|
-
async _createSubClient(identifier, storageConstructorName, apiClient) {
|
|
91
|
-
switch (storageConstructorName) {
|
|
92
|
-
case 'Dataset':
|
|
93
|
-
return apiClient.createDatasetClient(identifier);
|
|
94
|
-
case 'KeyValueStore':
|
|
95
|
-
return apiClient.createKeyValueStoreClient(identifier);
|
|
96
|
-
case 'RequestQueue':
|
|
97
|
-
return apiClient.createRequestQueueClient(identifier);
|
|
98
|
-
default:
|
|
99
|
-
throw new Error(`Unknown storage type: ${storageConstructorName}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
_addStorageToCache(storage) {
|
|
103
|
-
const idKey = storage.id;
|
|
104
|
-
this.cache.set(idKey, storage);
|
|
105
|
-
if (storage.name) {
|
|
106
|
-
const nameKey = storage.name;
|
|
107
|
-
this.cache.set(nameKey, storage);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=storage_manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage_manager.js","sourceRoot":"","sources":["../../src/storages/storage_manager.ts"],"names":[],"mappings":"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"}
|