Skip to content

Commit

Permalink
Fixing dts file
Browse files Browse the repository at this point in the history
  • Loading branch information
wu-hui committed Feb 21, 2023
1 parent 7d0b186 commit d651d88
Show file tree
Hide file tree
Showing 8 changed files with 156 additions and 40 deletions.
54 changes: 54 additions & 0 deletions common/api-review/firestore.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,13 @@ export class FirestoreError extends FirebaseError {
// @public
export type FirestoreErrorCode = 'cancelled' | 'unknown' | 'invalid-argument' | 'deadline-exceeded' | 'not-found' | 'already-exists' | 'permission-denied' | 'resource-exhausted' | 'failed-precondition' | 'aborted' | 'out-of-range' | 'unimplemented' | 'internal' | 'unavailable' | 'data-loss' | 'unauthenticated';

// @public (undocumented)
export type FirestoreLocalCache = MemoryLocalCache | IndexedDbLocalCache;

// @public
export interface FirestoreSettings {
// (undocumented)
cache?: FirestoreLocalCache;
cacheSizeBytes?: number;
experimentalAutoDetectLongPolling?: boolean;
experimentalForceLongPolling?: boolean;
Expand Down Expand Up @@ -285,6 +290,46 @@ export interface IndexConfiguration {
readonly indexes?: Index[];
}

// @public (undocumented)
export interface IndexedDbLocalCache {
// (undocumented)
kind: 'indexeddb';
}

// @public (undocumented)
export function indexedDbLocalCache(settings?: IndexedDbSettings): IndexedDbLocalCache;

// @public (undocumented)
export interface IndexedDbMultipleTabManager {
// (undocumented)
kind: 'IndexedDbMultipleTab';
}

// @public (undocumented)
export function indexedDbMultipleTabManager(): IndexedDbMultipleTabManager;

// @public (undocumented)
export interface IndexedDbSettings {
// (undocumented)
cacheSizeBytes?: number;
// (undocumented)
tabManager?: IndexedDbTabManager;
}

// @public (undocumented)
export interface IndexedDbSingleTabManager {
// (undocumented)
kind: 'indexedDbSingleTab';
}

// @public (undocumented)
export function indexedDbSingleTabManager(settings: {
forceOwnership?: boolean;
} | undefined): IndexedDbSingleTabManager;

// @public (undocumented)
export type IndexedDbTabManager = IndexedDbSingleTabManager | IndexedDbMultipleTabManager;

// @beta
export interface IndexField {
// (undocumented)
Expand Down Expand Up @@ -324,6 +369,15 @@ export interface LoadBundleTaskProgress {

export { LogLevel }

// @public (undocumented)
export interface MemoryLocalCache {
// (undocumented)
kind: 'memory';
}

// @public (undocumented)
export function memoryLocalCache(): MemoryLocalCache;

// @public
export function namedQuery(firestore: Firestore, name: string): Promise<Query | null>;

Expand Down
2 changes: 1 addition & 1 deletion packages/firestore/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ export {

export {
FirestoreLocalCache,
MemoryLocalCache,
IndexedDbLocalCache,
IndexedDbMultipleTabManager,
indexedDbLocalCache,
indexedDbMultipleTabManager,
IndexedDbSettings,
indexedDbSingleTabManager,
IndexedDbSingleTabManager,
MemoryLocalCache,
memoryLocalCache,
IndexedDbTabManager
} from './api/cache_config';
Expand Down
82 changes: 72 additions & 10 deletions packages/firestore/src/api/cache_config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,28 @@ import {
OnlineComponentProvider
} from '../core/component_provider';

export interface MemoryLocalCache {
/* eslint @typescript-eslint/consistent-type-definitions: ["error", "type"] */
export type MemoryLocalCache = {
kind: 'memory';
/**
* @internal
*/
_onlineComponentProvider: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider: MemoryOfflineComponentProvider;
}
};

class MemoryLocalCacheImpl implements MemoryLocalCache {
kind: 'memory' = 'memory';
/**
* @internal
*/
_onlineComponentProvider: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider: MemoryOfflineComponentProvider;

constructor() {
Expand All @@ -44,15 +57,27 @@ class MemoryLocalCacheImpl implements MemoryLocalCache {
}
}

export interface IndexedDbLocalCache {
export type IndexedDbLocalCache = {
kind: 'indexeddb';
/**
* @internal
*/
_onlineComponentProvider: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider: OfflineComponentProvider;
}
};

class IndexedDbLocalCacheImpl implements IndexedDbLocalCache {
kind: 'indexeddb' = 'indexeddb';
/**
* @internal
*/
_onlineComponentProvider: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider: OfflineComponentProvider;

constructor(settings: IndexedDbSettings | undefined) {
Expand Down Expand Up @@ -80,11 +105,11 @@ export function memoryLocalCache(): MemoryLocalCache {
return new MemoryLocalCacheImpl();
}

export interface IndexedDbSettings {
export type IndexedDbSettings = {
cacheSizeBytes?: number;
// default to singleTabManager({forceOwnership: false})
tabManager?: IndexedDbTabManager;
}
};

// Factory function
export function indexedDbLocalCache(
Expand All @@ -93,19 +118,34 @@ export function indexedDbLocalCache(
return new IndexedDbLocalCacheImpl(settings);
}

export interface IndexedDbSingleTabManager {
export type IndexedDbSingleTabManager = {
kind: 'indexedDbSingleTab';
/**
* @internal
*/
_initialize: (
settings: Omit<IndexedDbSettings, 'tabManager'> | undefined
) => void;
/**
* @internal
*/
_onlineComponentProvider?: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider?: OfflineComponentProvider;
}
};

class SingleTabManagerImpl implements IndexedDbSingleTabManager {
kind: 'indexedDbSingleTab' = 'indexedDbSingleTab';

/**
* @internal
*/
_onlineComponentProvider?: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider?: OfflineComponentProvider;

constructor(private forceOwnership?: boolean) {}
Expand All @@ -114,6 +154,9 @@ class SingleTabManagerImpl implements IndexedDbSingleTabManager {
return { kind: this.kind };
}

/**
* @internal
*/
_initialize(
settings: Omit<IndexedDbSettings, 'tabManager'> | undefined
): void {
Expand All @@ -126,23 +169,42 @@ class SingleTabManagerImpl implements IndexedDbSingleTabManager {
}
}

export interface IndexedDbMultipleTabManager {
export type IndexedDbMultipleTabManager = {
kind: 'IndexedDbMultipleTab';
/**
* @internal
*/
_initialize: (settings: Omit<IndexedDbSettings, 'tabManager'>) => void;
/**
* @internal
*/
_onlineComponentProvider?: OnlineComponentProvider;
/**
* @internal
*/

_offlineComponentProvider?: OfflineComponentProvider;
}
};

class MultiTabManagerImpl implements IndexedDbMultipleTabManager {
kind: 'IndexedDbMultipleTab' = 'IndexedDbMultipleTab';

/**
* @internal
*/
_onlineComponentProvider?: OnlineComponentProvider;
/**
* @internal
*/
_offlineComponentProvider?: OfflineComponentProvider;

toJSON(): {} {
return { kind: this.kind };
}

/**
* @internal
*/
_initialize(
settings: Omit<IndexedDbSettings, 'tabManager'> | undefined
): void {
Expand Down
12 changes: 6 additions & 6 deletions packages/firestore/src/api/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,10 +287,10 @@ export function configureFirestore(firestore: Firestore): void {
settings.cache?._offlineComponentProvider &&
settings.cache?._onlineComponentProvider
) {
firestore._firestoreClient.uninitializedComponentsProvider = {
offlineKind: settings.cache.kind,
offline: settings.cache._offlineComponentProvider,
online: settings.cache._onlineComponentProvider
firestore._firestoreClient._uninitializedComponentsProvider = {
_offlineKind: settings.cache.kind,
_offline: settings.cache._offlineComponentProvider,
_online: settings.cache._onlineComponentProvider
};
}
}
Expand Down Expand Up @@ -327,7 +327,7 @@ export function enableIndexedDbPersistence(
verifyNotInitialized(firestore);

const client = ensureFirestoreConfigured(firestore);
if (client.uninitializedComponentsProvider) {
if (client._uninitializedComponentsProvider) {
throw new FirestoreError(
Code.FAILED_PRECONDITION,
'SDK cache is already specified.'
Expand Down Expand Up @@ -379,7 +379,7 @@ export function enableMultiTabIndexedDbPersistence(
verifyNotInitialized(firestore);

const client = ensureFirestoreConfigured(firestore);
if (client.uninitializedComponentsProvider) {
if (client._uninitializedComponentsProvider) {
throw new FirestoreError(
Code.FAILED_PRECONDITION,
'SDK cache is already specified.'
Expand Down
4 changes: 2 additions & 2 deletions packages/firestore/src/api/index_configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ export function setIndexConfiguration(
firestore = cast(firestore, Firestore);
const client = ensureFirestoreConfigured(firestore);
if (
!client.uninitializedComponentsProvider ||
client.uninitializedComponentsProvider?.offlineKind === 'memory'
!client._uninitializedComponentsProvider ||
client._uninitializedComponentsProvider?._offlineKind === 'memory'
) {
// PORTING NOTE: We don't return an error if the user has not enabled
// persistence since `enableIndexeddbPersistence()` can fail on the Web.
Expand Down
Loading

0 comments on commit d651d88

Please sign in to comment.