@dereekb/firebase 8.9.0 → 8.11.0
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/CHANGELOG.md +29 -0
- package/package.json +5 -5
- package/src/lib/client/firestore/driver.js +2 -2
- package/src/lib/client/firestore/driver.js.map +1 -1
- package/src/lib/client/firestore/firestore.d.ts +5 -1
- package/src/lib/client/firestore/firestore.js +7 -2
- package/src/lib/client/firestore/firestore.js.map +1 -1
- package/src/lib/client/function/model.function.factory.d.ts +35 -9
- package/src/lib/client/function/model.function.factory.js +37 -11
- package/src/lib/client/function/model.function.factory.js.map +1 -1
- package/src/lib/client/index.d.ts +1 -0
- package/src/lib/client/index.js +1 -0
- package/src/lib/client/index.js.map +1 -1
- package/src/lib/client/storage/driver.accessor.d.ts +17 -0
- package/src/lib/client/storage/driver.accessor.js +105 -0
- package/src/lib/client/storage/driver.accessor.js.map +1 -0
- package/src/lib/client/storage/driver.d.ts +3 -0
- package/src/lib/client/storage/driver.js +13 -0
- package/src/lib/client/storage/driver.js.map +1 -0
- package/src/lib/client/storage/index.d.ts +3 -0
- package/src/lib/client/storage/index.js +7 -0
- package/src/lib/client/storage/index.js.map +1 -0
- package/src/lib/client/storage/storage.d.ts +5 -0
- package/src/lib/client/storage/storage.js +10 -0
- package/src/lib/client/storage/storage.js.map +1 -0
- package/src/lib/common/firestore/context.d.ts +2 -2
- package/src/lib/common/firestore/context.js +1 -1
- package/src/lib/common/firestore/context.js.map +1 -1
- package/src/lib/common/firestore/driver/driver.d.ts +2 -2
- package/src/lib/common/index.d.ts +1 -0
- package/src/lib/common/index.js +1 -0
- package/src/lib/common/index.js.map +1 -1
- package/src/lib/common/model/function.d.ts +2 -1
- package/src/lib/common/model/function.js +6 -2
- package/src/lib/common/model/function.js.map +1 -1
- package/src/lib/common/storage/accessor/index.d.ts +1 -0
- package/src/lib/common/storage/accessor/index.js +5 -0
- package/src/lib/common/storage/accessor/index.js.map +1 -0
- package/src/lib/common/storage/accessor/path.model.d.ts +26 -0
- package/src/lib/common/storage/accessor/path.model.js +25 -0
- package/src/lib/common/storage/accessor/path.model.js.map +1 -0
- package/src/lib/common/storage/context.d.ts +35 -0
- package/src/lib/common/storage/context.js +34 -0
- package/src/lib/common/storage/context.js.map +1 -0
- package/src/lib/common/storage/driver/accessor.d.ts +170 -0
- package/src/lib/common/storage/driver/accessor.js +3 -0
- package/src/lib/common/storage/driver/accessor.js.map +1 -0
- package/src/lib/common/storage/driver/driver.d.ts +10 -0
- package/src/lib/common/storage/driver/driver.js +3 -0
- package/src/lib/common/storage/driver/driver.js.map +1 -0
- package/src/lib/common/storage/driver/error.d.ts +3 -0
- package/src/lib/common/storage/driver/error.js +16 -0
- package/src/lib/common/storage/driver/error.js.map +1 -0
- package/src/lib/common/storage/driver/index.d.ts +4 -0
- package/src/lib/common/storage/driver/index.js +8 -0
- package/src/lib/common/storage/driver/index.js.map +1 -0
- package/src/lib/common/storage/driver/list.d.ts +13 -0
- package/src/lib/common/storage/driver/list.js +41 -0
- package/src/lib/common/storage/driver/list.js.map +1 -0
- package/src/lib/common/storage/index.d.ts +5 -0
- package/src/lib/common/storage/index.js +9 -0
- package/src/lib/common/storage/index.js.map +1 -0
- package/src/lib/common/storage/storage.d.ts +65 -0
- package/src/lib/common/storage/storage.js +55 -0
- package/src/lib/common/storage/storage.js.map +1 -0
- package/src/lib/common/storage/types.d.ts +210 -0
- package/src/lib/common/storage/types.js +3 -0
- package/src/lib/common/storage/types.js.map +1 -0
- package/test/CHANGELOG.md +23 -0
- package/test/package.json +7 -7
- package/test/src/lib/client/{firestore.authorized.d.ts → firebase.authorized.d.ts} +2 -2
- package/test/src/lib/client/firebase.authorized.js +35 -0
- package/test/src/lib/client/firebase.authorized.js.map +1 -0
- package/test/src/lib/client/firebase.d.ts +54 -0
- package/test/src/lib/client/{firestore.js → firebase.js} +34 -14
- package/test/src/lib/client/firebase.js.map +1 -0
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +9 -3
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +13 -6
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -1
- package/test/src/lib/client/index.d.ts +2 -2
- package/test/src/lib/client/index.js +2 -2
- package/test/src/lib/client/index.js.map +1 -1
- package/test/src/lib/common/firebase.instance.d.ts +20 -0
- package/test/src/lib/common/firebase.instance.js +33 -0
- package/test/src/lib/common/firebase.instance.js.map +1 -0
- package/test/src/lib/common/{firestore.d.ts → firestore/firestore.d.ts} +1 -1
- package/test/src/lib/common/{firestore.mock.d.ts → firestore/firestore.instance.d.ts} +3 -4
- package/test/src/lib/common/{firestore.mock.js → firestore/firestore.instance.js} +6 -12
- package/test/src/lib/common/firestore/firestore.instance.js.map +1 -0
- package/test/src/lib/common/{firestore.js → firestore/firestore.js} +1 -1
- package/test/src/lib/common/firestore/firestore.js.map +1 -0
- package/test/src/lib/common/firestore/index.d.ts +5 -0
- package/test/src/lib/common/firestore/index.js +9 -0
- package/test/src/lib/common/firestore/index.js.map +1 -0
- package/test/src/lib/common/{test.driver.accessor.d.ts → firestore/test.driver.accessor.d.ts} +2 -2
- package/test/src/lib/common/{test.driver.accessor.js → firestore/test.driver.accessor.js} +9 -9
- package/test/src/lib/common/firestore/test.driver.accessor.js.map +1 -0
- package/test/src/lib/common/firestore/test.driver.query.d.ts +7 -0
- package/test/src/lib/common/{test.driver.query.js → firestore/test.driver.query.js} +5 -5
- package/test/src/lib/common/firestore/test.driver.query.js.map +1 -0
- package/test/src/lib/common/{test.iterator.d.ts → firestore/test.iterator.d.ts} +1 -1
- package/test/src/lib/common/{test.iterator.js → firestore/test.iterator.js} +2 -2
- package/test/src/lib/common/firestore/test.iterator.js.map +1 -0
- package/test/src/lib/common/index.d.ts +3 -8
- package/test/src/lib/common/index.js +3 -8
- package/test/src/lib/common/index.js.map +1 -1
- package/test/src/lib/common/mock/index.d.ts +5 -0
- package/test/src/lib/common/mock/index.js +9 -0
- package/test/src/lib/common/mock/index.js.map +1 -0
- package/test/src/lib/common/mock/mock.item.collection.fixture.d.ts +27 -0
- package/test/src/lib/common/{firestore.mock.item.fixture.js → mock/mock.item.collection.fixture.js} +7 -9
- package/test/src/lib/common/mock/mock.item.collection.fixture.js.map +1 -0
- package/test/src/lib/common/{firestore.mock.item.d.ts → mock/mock.item.d.ts} +0 -0
- package/test/src/lib/common/{firestore.mock.item.js → mock/mock.item.js} +1 -1
- package/test/src/lib/common/mock/mock.item.js.map +1 -0
- package/test/src/lib/common/{firestore.mock.item.query.d.ts → mock/mock.item.query.d.ts} +1 -1
- package/test/src/lib/common/{firestore.mock.item.query.js → mock/mock.item.query.js} +1 -1
- package/test/src/lib/common/mock/mock.item.query.js.map +1 -0
- package/test/src/lib/common/{firestore.mock.item.service.d.ts → mock/mock.item.service.d.ts} +1 -1
- package/test/src/lib/common/{firestore.mock.item.service.js → mock/mock.item.service.js} +11 -11
- package/test/src/lib/common/mock/mock.item.service.js.map +1 -0
- package/test/src/lib/common/mock/mock.item.storage.fixture.d.ts +18 -0
- package/test/src/lib/common/mock/mock.item.storage.fixture.js +39 -0
- package/test/src/lib/common/mock/mock.item.storage.fixture.js.map +1 -0
- package/test/src/lib/common/storage/index.d.ts +3 -0
- package/test/src/lib/common/storage/index.js +7 -0
- package/test/src/lib/common/storage/index.js.map +1 -0
- package/test/src/lib/common/storage/storage.d.ts +24 -0
- package/test/src/lib/common/storage/storage.instance.d.ts +13 -0
- package/test/src/lib/common/storage/storage.instance.js +23 -0
- package/test/src/lib/common/storage/storage.instance.js.map +1 -0
- package/test/src/lib/common/storage/storage.js +23 -0
- package/test/src/lib/common/storage/storage.js.map +1 -0
- package/test/src/lib/common/storage/test.driver.accessor.d.ts +7 -0
- package/test/src/lib/common/storage/test.driver.accessor.js +337 -0
- package/test/src/lib/common/storage/test.driver.accessor.js.map +1 -0
- package/test/src/lib/client/firestore.authorized.js +0 -23
- package/test/src/lib/client/firestore.authorized.js.map +0 -1
- package/test/src/lib/client/firestore.d.ts +0 -39
- package/test/src/lib/client/firestore.js.map +0 -1
- package/test/src/lib/common/firestore.js.map +0 -1
- package/test/src/lib/common/firestore.mock.item.fixture.d.ts +0 -27
- package/test/src/lib/common/firestore.mock.item.fixture.js.map +0 -1
- package/test/src/lib/common/firestore.mock.item.js.map +0 -1
- package/test/src/lib/common/firestore.mock.item.query.js.map +0 -1
- package/test/src/lib/common/firestore.mock.item.service.js.map +0 -1
- package/test/src/lib/common/firestore.mock.js.map +0 -1
- package/test/src/lib/common/test.driver.accessor.js.map +0 -1
- package/test/src/lib/common/test.driver.query.d.ts +0 -7
- package/test/src/lib/common/test.driver.query.js.map +0 -1
- package/test/src/lib/common/test.iterator.js.map +0 -1
|
@@ -9,15 +9,19 @@ const util_1 = require("@dereekb/util");
|
|
|
9
9
|
* @param data
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
|
-
function onCallTypedModelParams(modelTypeInput, data) {
|
|
12
|
+
function onCallTypedModelParams(modelTypeInput, data, specifier) {
|
|
13
13
|
const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
|
|
14
14
|
if (!modelType) {
|
|
15
15
|
throw new Error('modelType is required.');
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
const result = {
|
|
18
18
|
modelType,
|
|
19
19
|
data
|
|
20
20
|
};
|
|
21
|
+
if (specifier != null) {
|
|
22
|
+
result.specifier = specifier;
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
21
25
|
}
|
|
22
26
|
exports.onCallTypedModelParams = onCallTypedModelParams;
|
|
23
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAStD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,cAA0D,EAAE,IAAO,EAAE,SAAkB;IAC/H,MAAM,SAAS,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;IAEjG,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;IAED,MAAM,MAAM,GAA8B;QACxC,SAAS;QACT,IAAI;KACL,CAAC;IAEF,IAAI,SAAS,IAAI,IAAI,EAAE;QACrB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,wDAiBC;AAED;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAI3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAG3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAY3D,SAAgB,+BAA+B,CAAC,MAAmD;IACjG,OAAO,uBAAuB,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0EAEC;AAED,SAAgB,uBAAuB,CAAC,SAA0C;IAChF,OAAO;QACL,SAAS,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAJD,0DAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './path.model';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/accessor/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SlashPath, SlashPathFolder, FactoryWithRequiredInput } from '@dereekb/util';
|
|
2
|
+
import { ReadFirestoreModelKeyInput } from '../../firestore/collection/collection';
|
|
3
|
+
export declare const BASE_MODEL_STORAGE_FILE_PATH: SlashPathFolder;
|
|
4
|
+
/**
|
|
5
|
+
* Shared and configured slashPathFactory configuration for the model storage file path.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MODEL_STORAGE_FILE_SLASH_PATH_FACTORY: import("@dereekb/util").SlashPathFactory;
|
|
8
|
+
export interface ModelStorageSlashPathFactoryConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Additional base path to provide.
|
|
11
|
+
*
|
|
12
|
+
* This value is merged with the BASE_MODEL_STORAGE_FILE_PATH (/model/) base path configured for all ModelStorageSlashPathFactory values
|
|
13
|
+
*/
|
|
14
|
+
basePath?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Factory for SlashPath values using input ReadFirestoreModelKeyInput values.
|
|
18
|
+
*/
|
|
19
|
+
export declare type ModelStorageSlashPathFactory<T extends object = object> = FactoryWithRequiredInput<SlashPath, ReadFirestoreModelKeyInput<T>>;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a ModelStorageSlashPathFactory.
|
|
22
|
+
*
|
|
23
|
+
* @param config
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export declare function modelStorageSlashPathFactory<T extends object = object>(config?: ModelStorageSlashPathFactoryConfig): ModelStorageSlashPathFactory<T>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modelStorageSlashPathFactory = exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY = exports.BASE_MODEL_STORAGE_FILE_PATH = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
const collection_1 = require("../../firestore/collection/collection");
|
|
6
|
+
exports.BASE_MODEL_STORAGE_FILE_PATH = '/model/';
|
|
7
|
+
/**
|
|
8
|
+
* Shared and configured slashPathFactory configuration for the model storage file path.
|
|
9
|
+
*/
|
|
10
|
+
exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY = (0, util_1.slashPathFactory)({ startType: 'absolute', basePath: exports.BASE_MODEL_STORAGE_FILE_PATH });
|
|
11
|
+
/**
|
|
12
|
+
* Creates a ModelStorageSlashPathFactory.
|
|
13
|
+
*
|
|
14
|
+
* @param config
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
function modelStorageSlashPathFactory(config) {
|
|
18
|
+
const { basePath = '' } = config !== null && config !== void 0 ? config : {};
|
|
19
|
+
return (input) => {
|
|
20
|
+
const key = (0, collection_1.readFirestoreModelKey)(input, true);
|
|
21
|
+
return (0, exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY)([basePath, key]);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.modelStorageSlashPathFactory = modelStorageSlashPathFactory;
|
|
25
|
+
//# sourceMappingURL=path.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.model.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/accessor/path.model.ts"],"names":[],"mappings":";;;AAAA,wCAAuG;AACvG,sEAA0G;AAE7F,QAAA,4BAA4B,GAAoB,SAAS,CAAC;AAEvE;;GAEG;AACU,QAAA,qCAAqC,GAAG,IAAA,uBAAgB,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,oCAA4B,EAAE,CAAC,CAAC;AAgBzI;;;;;GAKG;AACH,SAAgB,4BAA4B,CAA4B,MAA2C;IACjH,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IACvC,OAAO,CAAC,KAAiC,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAA,kCAAqB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,IAAA,6CAAqC,EAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAND,oEAMC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FirebaseStorageAccessor } from './driver/accessor';
|
|
2
|
+
import { FirebaseStorageDrivers } from './driver/driver';
|
|
3
|
+
import { StorageBucketId } from './storage';
|
|
4
|
+
import { FirebaseStorage } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* A @dereekb/firebase FirebaseStorageContext. Wraps the main FirebaseStorage context and the drivers, as well as utility/convenience functions.
|
|
7
|
+
*/
|
|
8
|
+
export interface FirebaseStorageContext<F extends FirebaseStorage = FirebaseStorage> extends FirebaseStorageAccessor {
|
|
9
|
+
readonly storage: F;
|
|
10
|
+
readonly drivers: FirebaseStorageDrivers;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Factory function for generating a FirebaseStorageContext given the input FirebaseStorage.
|
|
14
|
+
*/
|
|
15
|
+
export declare type FirebaseStorageContextFactory<F extends FirebaseStorage = FirebaseStorage> = (firebaseStorage: F, config?: FirebaseStorageContextFactoryConfig) => FirebaseStorageContext;
|
|
16
|
+
/**
|
|
17
|
+
* firebaseStorageContextFactory() configuration
|
|
18
|
+
*/
|
|
19
|
+
export interface FirebaseStorageContextFactoryConfig {
|
|
20
|
+
/**
|
|
21
|
+
* The default bucket
|
|
22
|
+
*/
|
|
23
|
+
defaultBucketId?: StorageBucketId;
|
|
24
|
+
/**
|
|
25
|
+
* Whether or not to force using the default bucket id.
|
|
26
|
+
*/
|
|
27
|
+
forceBucket?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new FirebaseStorageContextFactory given the input FirebaseStorageDrivers.
|
|
31
|
+
*
|
|
32
|
+
* @param drivers
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
export declare function firebaseStorageContextFactory<F extends FirebaseStorage = FirebaseStorage>(drivers: FirebaseStorageDrivers): FirebaseStorageContextFactory<F>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firebaseStorageContextFactory = void 0;
|
|
4
|
+
const storage_1 = require("./storage");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new FirebaseStorageContextFactory given the input FirebaseStorageDrivers.
|
|
7
|
+
*
|
|
8
|
+
* @param drivers
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function firebaseStorageContextFactory(drivers) {
|
|
12
|
+
return (firebaseStorage, config) => {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
const { defaultBucketId: inputDefaultBucketId, forceBucket = false } = config !== null && config !== void 0 ? config : {};
|
|
15
|
+
const defaultBucketId = inputDefaultBucketId || ((_b = (_a = drivers.storageAccessorDriver).defaultBucket) === null || _b === void 0 ? void 0 : _b.call(_a, firebaseStorage)) || '';
|
|
16
|
+
if (!defaultBucketId) {
|
|
17
|
+
throw new Error('Could not resolve a default bucket id for the firebaseStorageContextFactory(). Supply a defaultBucketId.');
|
|
18
|
+
}
|
|
19
|
+
const storagePathBuilder = (0, storage_1.storagePathFactory)({
|
|
20
|
+
bucketId: defaultBucketId,
|
|
21
|
+
replaceBucket: forceBucket
|
|
22
|
+
});
|
|
23
|
+
const context = {
|
|
24
|
+
storage: firebaseStorage,
|
|
25
|
+
drivers,
|
|
26
|
+
defaultBucket: () => defaultBucketId,
|
|
27
|
+
file: (path) => drivers.storageAccessorDriver.file(firebaseStorage, storagePathBuilder(path)),
|
|
28
|
+
folder: (path) => drivers.storageAccessorDriver.folder(firebaseStorage, storagePathBuilder(path))
|
|
29
|
+
};
|
|
30
|
+
return context;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.firebaseStorageContextFactory = firebaseStorageContextFactory;
|
|
34
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/context.ts"],"names":[],"mappings":";;;AAEA,uCAAsG;AA8BtG;;;;;GAKG;AACH,SAAgB,6BAA6B,CAA8C,OAA+B;IACxH,OAAO,CAAC,eAAkB,EAAE,MAA4C,EAAE,EAAE;;QAC1E,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACpF,MAAM,eAAe,GAAoB,oBAAoB,KAAI,MAAA,MAAA,OAAO,CAAC,qBAAqB,EAAC,aAAa,mDAAG,eAAe,CAAC,CAAA,IAAI,EAAE,CAAC;QAEtI,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;SAC7H;QAED,MAAM,kBAAkB,GAAuB,IAAA,4BAAkB,EAAC;YAChE,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,WAAW;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAA8B;YACzC,OAAO,EAAE,eAAe;YACxB,OAAO;YACP,aAAa,EAAE,GAAG,EAAE,CAAC,eAAe;YACpC,IAAI,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/G,MAAM,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACpH,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAxBD,sEAwBC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { StorageBucketId, StoragePathInput, StoragePath, StoragePathRef } from '../storage';
|
|
3
|
+
import { FirebaseStorage, StorageClientUploadBytesInput, StorageDeleteFileOptions, StorageDownloadUrl, StorageMetadata, StorageUploadInput, StorageUploadOptions, StorageUploadResult, StorageUploadTask } from '../types';
|
|
4
|
+
import { Maybe } from '@dereekb/util';
|
|
5
|
+
/**
|
|
6
|
+
* Used for accessing files and folders in the storage.
|
|
7
|
+
*/
|
|
8
|
+
export interface FirebaseStorageAccessor {
|
|
9
|
+
defaultBucket: () => StorageBucketId;
|
|
10
|
+
file(path: StoragePathInput): FirebaseStorageAccessorFile;
|
|
11
|
+
folder(path: StoragePathInput): FirebaseStorageAccessorFolder;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Generic interface for accessing data from a file at the given path.
|
|
15
|
+
*/
|
|
16
|
+
export interface FirebaseStorageAccessorFile<R = unknown> extends StoragePathRef {
|
|
17
|
+
/**
|
|
18
|
+
* Returns the underlying reference type.
|
|
19
|
+
*/
|
|
20
|
+
readonly reference: R;
|
|
21
|
+
/**
|
|
22
|
+
* Returns true if the file exists.
|
|
23
|
+
*/
|
|
24
|
+
exists(): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
getDownloadUrl(): Promise<StorageDownloadUrl>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the metadata from the input objects.
|
|
31
|
+
*/
|
|
32
|
+
getMetadata(): Promise<StorageMetadata>;
|
|
33
|
+
/**
|
|
34
|
+
* Downloads the data as an ArrayBuffer.
|
|
35
|
+
*/
|
|
36
|
+
getBytes(maxDownloadSizeBytes?: number): Promise<ArrayBuffer>;
|
|
37
|
+
/**
|
|
38
|
+
* Downloads the data as a Blob.
|
|
39
|
+
*
|
|
40
|
+
* Available only in the browser.
|
|
41
|
+
*/
|
|
42
|
+
getBlob?(maxDownloadSizeBytes?: number): Promise<Blob>;
|
|
43
|
+
/**
|
|
44
|
+
* Returns a ReadableStream of the bytes.
|
|
45
|
+
*
|
|
46
|
+
* Available only in NodeJS.
|
|
47
|
+
*/
|
|
48
|
+
getStream?(maxDownloadSizeBytes?: number): NodeJS.ReadableStream;
|
|
49
|
+
/**
|
|
50
|
+
* Uploads data to the file's path.
|
|
51
|
+
*/
|
|
52
|
+
upload(data: StorageUploadInput, options?: StorageUploadOptions): Promise<StorageUploadResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Uploads data to the file's path using a resumable.
|
|
55
|
+
*
|
|
56
|
+
* Optional implementation.
|
|
57
|
+
*/
|
|
58
|
+
uploadResumable?(data: StorageClientUploadBytesInput, options?: StorageUploadOptions): StorageUploadTask;
|
|
59
|
+
/**
|
|
60
|
+
* Returns a WritableStream that can be written to.
|
|
61
|
+
*
|
|
62
|
+
* Optional implementation.
|
|
63
|
+
*/
|
|
64
|
+
uploadStream?(options?: StorageUploadOptions): NodeJS.WritableStream;
|
|
65
|
+
/**
|
|
66
|
+
* Deletes the file.
|
|
67
|
+
*
|
|
68
|
+
* Throws an error if the file does not exist.
|
|
69
|
+
*/
|
|
70
|
+
delete(options?: StorageDeleteFileOptions): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
export interface StorageListFilesOptions {
|
|
73
|
+
/**
|
|
74
|
+
* If set, limits the total number of `prefixes` and `items` to return.
|
|
75
|
+
* The default and maximum maxResults is 1000.
|
|
76
|
+
*/
|
|
77
|
+
maxResults?: number;
|
|
78
|
+
/**
|
|
79
|
+
* The `nextPageToken` from a previous call to `list()`. If provided,
|
|
80
|
+
* listing is resumed from the previous position.
|
|
81
|
+
*/
|
|
82
|
+
pageToken?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface StorageListItemResult extends StoragePathRef {
|
|
85
|
+
/**
|
|
86
|
+
* Raw result
|
|
87
|
+
*/
|
|
88
|
+
readonly raw?: unknown;
|
|
89
|
+
/**
|
|
90
|
+
* Name of the item
|
|
91
|
+
*/
|
|
92
|
+
readonly name: string;
|
|
93
|
+
}
|
|
94
|
+
export interface StorageListFolderResult extends StorageListItemResult {
|
|
95
|
+
/**
|
|
96
|
+
* Gets this item as a FirebaseStorageAccessorFolder
|
|
97
|
+
*/
|
|
98
|
+
folder(): FirebaseStorageAccessorFolder;
|
|
99
|
+
}
|
|
100
|
+
export interface StorageListFileResult extends StorageListItemResult {
|
|
101
|
+
/**
|
|
102
|
+
* Gets this item as a FirebaseStorageAccessorFile
|
|
103
|
+
*/
|
|
104
|
+
file(): FirebaseStorageAccessorFile;
|
|
105
|
+
}
|
|
106
|
+
export interface StorageListFilesResult<R = unknown> {
|
|
107
|
+
/**
|
|
108
|
+
* The raw result.
|
|
109
|
+
*/
|
|
110
|
+
raw: R;
|
|
111
|
+
/**
|
|
112
|
+
* Options used to retrieve the result.
|
|
113
|
+
*/
|
|
114
|
+
options: StorageListFilesOptions | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Whether or not there are more results available.
|
|
117
|
+
*/
|
|
118
|
+
hasNext: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Returns true if any files or folders exist in the results.
|
|
121
|
+
*/
|
|
122
|
+
hasItems(): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Returns all the prefixes/folders in the result.
|
|
125
|
+
*/
|
|
126
|
+
folders(): StorageListFolderResult[];
|
|
127
|
+
/**
|
|
128
|
+
* Returns all the files in the result.
|
|
129
|
+
*/
|
|
130
|
+
files(): StorageListFileResult[];
|
|
131
|
+
/**
|
|
132
|
+
* Returns the next set of results, if available.
|
|
133
|
+
*/
|
|
134
|
+
next(): Promise<StorageListFilesResult>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Generic interface for accessing "folder" information at the given path.
|
|
138
|
+
*/
|
|
139
|
+
export interface FirebaseStorageAccessorFolder<R = unknown> extends StoragePathRef {
|
|
140
|
+
readonly reference: R;
|
|
141
|
+
/**
|
|
142
|
+
* Returns true if the folder exists.
|
|
143
|
+
*/
|
|
144
|
+
exists(): Promise<boolean>;
|
|
145
|
+
/**
|
|
146
|
+
* Performs a search for items
|
|
147
|
+
* @param options
|
|
148
|
+
*/
|
|
149
|
+
list(options?: StorageListFilesOptions): Promise<StorageListFilesResult>;
|
|
150
|
+
}
|
|
151
|
+
export declare type FirebaseStorageAccessorDriverDefaultBucketFunction = (storage: FirebaseStorage) => Maybe<StorageBucketId>;
|
|
152
|
+
export declare type FirebaseStorageAccessorDriverFileFunction<R = unknown> = (storage: FirebaseStorage, path: StoragePath) => FirebaseStorageAccessorFile<R>;
|
|
153
|
+
export declare type FirebaseStorageAccessorDriverFolderFunction<R = unknown> = (storage: FirebaseStorage, path: StoragePath) => FirebaseStorageAccessorFolder<R>;
|
|
154
|
+
/**
|
|
155
|
+
* A driver to use for storage functionality.
|
|
156
|
+
*/
|
|
157
|
+
export interface FirebaseStorageAccessorDriver {
|
|
158
|
+
/**
|
|
159
|
+
* Returns the default bucketId for the input storage.
|
|
160
|
+
*/
|
|
161
|
+
readonly defaultBucket?: FirebaseStorageAccessorDriverDefaultBucketFunction;
|
|
162
|
+
readonly file: FirebaseStorageAccessorDriverFileFunction;
|
|
163
|
+
readonly folder: FirebaseStorageAccessorDriverFolderFunction;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Ref to a StorageAccessorDriver.
|
|
167
|
+
*/
|
|
168
|
+
export interface FirebaseStorageAccessorDriverRef {
|
|
169
|
+
readonly storageAccessorDriver: FirebaseStorageAccessorDriver;
|
|
170
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/accessor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseStorageAccessorDriverRef } from './accessor';
|
|
2
|
+
export declare type FirebaseStorageDriverIdentifier = string;
|
|
3
|
+
export declare type FirebaseStorageDriverType = 'production' | 'testing';
|
|
4
|
+
/**
|
|
5
|
+
* Implements all FirebaseStorage related driver reference interfaces.
|
|
6
|
+
*/
|
|
7
|
+
export interface FirebaseStorageDrivers extends FirebaseStorageAccessorDriverRef {
|
|
8
|
+
storageDriverIdentifier?: FirebaseStorageDriverIdentifier;
|
|
9
|
+
storageDriverType: FirebaseStorageDriverType;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/driver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noStringFormatInStorageUploadOptionsError = exports.assertStorageUploadOptionsStringFormat = void 0;
|
|
4
|
+
function assertStorageUploadOptionsStringFormat(options) {
|
|
5
|
+
const stringFormat = options === null || options === void 0 ? void 0 : options.stringFormat;
|
|
6
|
+
if (!stringFormat) {
|
|
7
|
+
throw noStringFormatInStorageUploadOptionsError();
|
|
8
|
+
}
|
|
9
|
+
return stringFormat;
|
|
10
|
+
}
|
|
11
|
+
exports.assertStorageUploadOptionsStringFormat = assertStorageUploadOptionsStringFormat;
|
|
12
|
+
function noStringFormatInStorageUploadOptionsError() {
|
|
13
|
+
return new Error('stringFormat was missing a value in the StorageUploadOptions.');
|
|
14
|
+
}
|
|
15
|
+
exports.noStringFormatInStorageUploadOptionsError = noStringFormatInStorageUploadOptionsError;
|
|
16
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/error.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sCAAsC,CAAC,OAA8B;IACnF,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,yCAAyC,EAAE,CAAC;KACnD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AARD,wFAQC;AAED,SAAgB,yCAAyC;IACvD,OAAO,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACpF,CAAC;AAFD,8FAEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./accessor"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./driver"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./error"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./list"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FirebaseStorageAccessorFile, FirebaseStorageAccessorFolder, StorageListFilesOptions, StorageListFilesResult, StorageListItemResult } from './accessor';
|
|
2
|
+
export interface StorageListFilesResultFactoryDelegate<S, R> {
|
|
3
|
+
hasItems(result: R): boolean;
|
|
4
|
+
hasNext(result: R): boolean;
|
|
5
|
+
next(storage: S, folder: FirebaseStorageAccessorFolder, result: R): Promise<StorageListFilesResult>;
|
|
6
|
+
file(storage: S, fileResult: StorageListItemResult): FirebaseStorageAccessorFile;
|
|
7
|
+
folder(storage: S, folderResult: StorageListItemResult): FirebaseStorageAccessorFolder;
|
|
8
|
+
filesFromResult(result: R, folder: FirebaseStorageAccessorFolder): StorageListItemResult[];
|
|
9
|
+
foldersFromResult(result: R, folder: FirebaseStorageAccessorFolder): StorageListItemResult[];
|
|
10
|
+
}
|
|
11
|
+
export declare type StorageListFilesResultFactory<S, R> = (storage: S, folder: FirebaseStorageAccessorFolder, options: StorageListFilesOptions | undefined, result: R) => StorageListFilesResult;
|
|
12
|
+
export declare function storageListFilesResultFactory<S, R>(delegate: StorageListFilesResultFactoryDelegate<S, R>): StorageListFilesResultFactory<S, R>;
|
|
13
|
+
export declare function storageListFilesResultHasNoNextError(): Error;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storageListFilesResultHasNoNextError = exports.storageListFilesResultFactory = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
function storageListFilesResultFactory(delegate) {
|
|
6
|
+
return (storage, folder, options, result) => {
|
|
7
|
+
function fileResult(item) {
|
|
8
|
+
item.file = () => delegate.file(storage, item);
|
|
9
|
+
return item;
|
|
10
|
+
}
|
|
11
|
+
function folderResult(item) {
|
|
12
|
+
item.folder = () => delegate.folder(storage, item);
|
|
13
|
+
return item;
|
|
14
|
+
}
|
|
15
|
+
const hasNext = delegate.hasNext(result);
|
|
16
|
+
const next = (0, util_1.cachedGetter)(() => {
|
|
17
|
+
if (!hasNext) {
|
|
18
|
+
throw storageListFilesResultHasNoNextError();
|
|
19
|
+
}
|
|
20
|
+
return delegate.next(storage, folder, result);
|
|
21
|
+
});
|
|
22
|
+
const files = (0, util_1.cachedGetter)(() => delegate.filesFromResult(result, folder).map(fileResult));
|
|
23
|
+
const folders = (0, util_1.cachedGetter)(() => delegate.foldersFromResult(result, folder).map(folderResult));
|
|
24
|
+
const filesResult = {
|
|
25
|
+
raw: result,
|
|
26
|
+
options,
|
|
27
|
+
hasNext,
|
|
28
|
+
hasItems: () => delegate.hasItems(result),
|
|
29
|
+
next,
|
|
30
|
+
files,
|
|
31
|
+
folders
|
|
32
|
+
};
|
|
33
|
+
return filesResult;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.storageListFilesResultFactory = storageListFilesResultFactory;
|
|
37
|
+
function storageListFilesResultHasNoNextError() {
|
|
38
|
+
return new Error('hasNext is false, there are no more results available.');
|
|
39
|
+
}
|
|
40
|
+
exports.storageListFilesResultHasNoNextError = storageListFilesResultHasNoNextError;
|
|
41
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/list.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAe7C,SAAgB,6BAA6B,CAAO,QAAqD;IACvG,OAAO,CAAC,OAAU,EAAE,MAAqC,EAAE,OAA4C,EAAE,MAAS,EAAE,EAAE;QACpH,SAAS,UAAU,CAAC,IAA2B;YAC5C,IAA8B,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1E,OAAO,IAA6B,CAAC;QACvC,CAAC;QAED,SAAS,YAAY,CAAC,IAA2B;YAC9C,IAAgC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChF,OAAO,IAA+B,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,IAAI,GAA0C,IAAA,mBAAY,EAAC,GAAG,EAAE;YACpE,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,oCAAoC,EAAE,CAAC;aAC9C;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAkC,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1H,MAAM,OAAO,GAAoC,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAElI,MAAM,WAAW,GAA2B;YAC1C,GAAG,EAAE,MAAM;YACX,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,IAAI;YACJ,KAAK;YACL,OAAO;SACR,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AApCD,sEAoCC;AAED,SAAgB,oCAAoC;IAClD,OAAO,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC;AAFD,oFAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./accessor"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./driver"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./context"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./storage"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,mDAAyB;AACzB,oDAA0B;AAC1B,oDAA0B;AAC1B,kDAAwB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SlashPath, FactoryWithRequiredInput } from '@dereekb/util';
|
|
2
|
+
/**
|
|
3
|
+
* Storage bucket identifier.
|
|
4
|
+
*
|
|
5
|
+
* Should contain no slashes, just the bucket's identifier.
|
|
6
|
+
*/
|
|
7
|
+
export declare type StorageBucketId = string;
|
|
8
|
+
/**
|
|
9
|
+
* A reference to a StorageBucketId
|
|
10
|
+
*/
|
|
11
|
+
export interface StorageBucketIdRef {
|
|
12
|
+
bucketId: StorageBucketId;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A filepath to a file or folder.
|
|
16
|
+
*/
|
|
17
|
+
export declare type StorageSlashPath = SlashPath;
|
|
18
|
+
/**
|
|
19
|
+
* A reference to a StorageSlashPath
|
|
20
|
+
*/
|
|
21
|
+
export interface StorageSlashPathRef {
|
|
22
|
+
pathString: StorageSlashPath;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A bucket and path pair.
|
|
26
|
+
*
|
|
27
|
+
* If the bucket is not defined, it implies the default app bucket.
|
|
28
|
+
*/
|
|
29
|
+
export interface StoragePath extends StorageBucketIdRef, StorageSlashPathRef {
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Storage-Path related input.
|
|
33
|
+
*/
|
|
34
|
+
export declare type StoragePathInput = StorageSlashPath | StoragePath | StorageSlashPathRef;
|
|
35
|
+
/**
|
|
36
|
+
* Converts the input to a StoragePath
|
|
37
|
+
*/
|
|
38
|
+
export declare type StoragePathFactory = FactoryWithRequiredInput<StoragePath, StoragePathInput>;
|
|
39
|
+
export interface StoragePathFactoryConfig extends StorageBucketIdRef {
|
|
40
|
+
/**
|
|
41
|
+
* Whether or not to replace the bucketId on input that has it.
|
|
42
|
+
*
|
|
43
|
+
* False by default.
|
|
44
|
+
*/
|
|
45
|
+
replaceBucket?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates a StoragePathFactory.
|
|
49
|
+
*
|
|
50
|
+
* @param config
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
export declare function storagePathFactory(config: StoragePathFactoryConfig): StoragePathFactory;
|
|
54
|
+
/**
|
|
55
|
+
* A reference to a StoragePath
|
|
56
|
+
*/
|
|
57
|
+
export interface StoragePathRef {
|
|
58
|
+
storagePath: StoragePath;
|
|
59
|
+
}
|
|
60
|
+
export declare type GoogleCloudStorageBucketPrefix<S extends StorageBucketId = StorageBucketId> = `gs://${S}`;
|
|
61
|
+
export declare type GoogleCloudStorageDefaultBucketFilePath<P extends StorageSlashPath = StorageSlashPath> = P;
|
|
62
|
+
export declare type GoogleCloudStorageBucketAndFilePath<P extends StorageSlashPath = StorageSlashPath, S extends StorageBucketId = StorageBucketId> = `${GoogleCloudStorageBucketPrefix<S>}/${P}`;
|
|
63
|
+
export declare type GoogleCloudStorageFilePath<P extends StorageSlashPath = StorageSlashPath> = GoogleCloudStorageDefaultBucketFilePath<P> | GoogleCloudStorageBucketAndFilePath<P>;
|
|
64
|
+
export declare function firebaseStorageFilePathFromStorageFilePath(path: StoragePath): GoogleCloudStorageFilePath;
|
|
65
|
+
export declare function firebaseStorageBucketFolderPath(storage: StorageBucketId | StorageBucketIdRef): GoogleCloudStorageBucketPrefix;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firebaseStorageBucketFolderPath = exports.firebaseStorageFilePathFromStorageFilePath = exports.storagePathFactory = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a StoragePathFactory.
|
|
7
|
+
*
|
|
8
|
+
* @param config
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function storagePathFactory(config) {
|
|
12
|
+
const { replaceBucket = false, bucketId } = config;
|
|
13
|
+
return (input) => {
|
|
14
|
+
const { pathString, bucketId: inputBucketId } = typeof input === 'string' ? { pathString: input, bucketId: undefined } : input;
|
|
15
|
+
if (replaceBucket) {
|
|
16
|
+
return {
|
|
17
|
+
pathString,
|
|
18
|
+
bucketId
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return {
|
|
23
|
+
pathString,
|
|
24
|
+
bucketId: inputBucketId || bucketId
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.storagePathFactory = storagePathFactory;
|
|
30
|
+
function firebaseStorageFilePathFromStorageFilePath(path) {
|
|
31
|
+
const { bucketId, pathString } = path;
|
|
32
|
+
const relativePathString = (0, util_1.toRelativeSlashPathStartType)(pathString);
|
|
33
|
+
let storagePath;
|
|
34
|
+
if (bucketId) {
|
|
35
|
+
const prefix = firebaseStorageBucketFolderPath(bucketId);
|
|
36
|
+
storagePath = `${prefix}/${relativePathString}`;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
storagePath = relativePathString;
|
|
40
|
+
}
|
|
41
|
+
return storagePath;
|
|
42
|
+
}
|
|
43
|
+
exports.firebaseStorageFilePathFromStorageFilePath = firebaseStorageFilePathFromStorageFilePath;
|
|
44
|
+
function firebaseStorageBucketFolderPath(storage) {
|
|
45
|
+
let storageId;
|
|
46
|
+
if (typeof storage === 'string') {
|
|
47
|
+
storageId = storage;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
storageId = storage.bucketId;
|
|
51
|
+
}
|
|
52
|
+
return `gs://${storageId}`;
|
|
53
|
+
}
|
|
54
|
+
exports.firebaseStorageBucketFolderPath = firebaseStorageBucketFolderPath;
|
|
55
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/storage.ts"],"names":[],"mappings":";;;AAAA,wCAAkG;AAsDlG;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAgC;IACjE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACnD,OAAO,CAAC,KAAuB,EAAE,EAAE;QACjC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAE,KAAqB,CAAC;QAEhJ,IAAI,aAAa,EAAE;YACjB,OAAO;gBACL,UAAU;gBACV,QAAQ;aACT,CAAC;SACH;aAAM;YACL,OAAO;gBACL,UAAU;gBACV,QAAQ,EAAE,aAAa,IAAI,QAAQ;aACpC,CAAC;SACH;IACH,CAAC,CAAC;AACJ,CAAC;AAjBD,gDAiBC;AAeD,SAAgB,0CAA0C,CAAC,IAAiB;IAC1E,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,kBAAkB,GAAG,IAAA,mCAA4B,EAAC,UAAU,CAAC,CAAC;IACpE,IAAI,WAAuC,CAAC;IAE5C,IAAI,QAAQ,EAAE;QACZ,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;QACzD,WAAW,GAAG,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC;KACjD;SAAM;QACL,WAAW,GAAG,kBAAkB,CAAC;KAClC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,gGAaC;AAED,SAAgB,+BAA+B,CAAC,OAA6C;IAC3F,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,SAAS,GAAG,OAAO,CAAC;KACrB;SAAM;QACL,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;KAC9B;IAED,OAAO,QAAQ,SAAS,EAAE,CAAC;AAC7B,CAAC;AAVD,0EAUC"}
|