Skip to content

Commit 4d5cb54

Browse files
committed
Clean up messaging
1 parent cfb7dfc commit 4d5cb54

File tree

3 files changed

+70
-68
lines changed

3 files changed

+70
-68
lines changed

packages/messaging/src/helpers/migrate-old-database.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { FakePushSubscription } from '../testing/fakes/service-worker';
2828
import { base64ToArray } from './array-base64-translator';
2929
import { expect } from 'chai';
3030
import { getFakeTokenDetails } from '../testing/fakes/token-details';
31-
import { openDB } from '@firebase/util';
31+
import { openDB } from 'idb';
3232

3333
describe('migrateOldDb', () => {
3434
it("does nothing if old DB didn't exist", async () => {
@@ -179,7 +179,7 @@ describe('migrateOldDb', () => {
179179
});
180180

181181
async function put(version: number, value: object): Promise<void> {
182-
const db = await openDB('fcm_token_details_db', version, (db, oldVersion) => {
182+
const db = await openDB('fcm_token_details_db', version, {upgrade: (db, oldVersion) => {
183183
if (oldVersion === 0) {
184184
const objectStore = db.createObjectStore('fcm_token_object_Store', {
185185
keyPath: 'swScope'
@@ -188,13 +188,13 @@ async function put(version: number, value: object): Promise<void> {
188188
unique: false
189189
});
190190
objectStore.createIndex('fcmToken', 'fcmToken', { unique: true });
191-
}
191+
}}
192192
});
193193

194194
try {
195195
const tx = db.transaction('fcm_token_object_Store', 'readwrite');
196196
await tx.objectStore('fcm_token_object_Store').put(value);
197-
await tx.complete;
197+
await tx.done;
198198
} finally {
199199
db.close();
200200
}

packages/messaging/src/helpers/migrate-old-database.ts

+65-63
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { deleteDB, openDB } from '@firebase/util';
18+
import { deleteDB, openDB } from 'idb';
1919

2020
import { TokenDetails } from '../interfaces/token-details';
2121
import { arrayToBase64 } from './array-base64-translator';
@@ -91,75 +91,77 @@ export async function migrateOldDatabase(
9191
const db = await openDB(
9292
OLD_DB_NAME,
9393
OLD_DB_VERSION,
94-
async (db, oldVersion, newVersion, upgradeTransaction) => {
95-
if (oldVersion < 2) {
96-
// Database too old, skip migration.
97-
return;
98-
}
99-
100-
if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {
101-
// Database did not exist. Nothing to do.
102-
return;
103-
}
104-
105-
const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);
106-
const value = await objectStore.index('fcmSenderId').get(senderId);
107-
await objectStore.clear();
94+
{
95+
upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {
96+
if (oldVersion < 2) {
97+
// Database too old, skip migration.
98+
return;
99+
}
108100

109-
if (!value) {
110-
// No entry in the database, nothing to migrate.
111-
return;
112-
}
101+
if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {
102+
// Database did not exist. Nothing to do.
103+
return;
104+
}
113105

114-
if (oldVersion === 2) {
115-
const oldDetails = value as V2TokenDetails;
106+
const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);
107+
const value = await objectStore.index('fcmSenderId').get(senderId);
108+
await objectStore.clear();
116109

117-
if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {
110+
if (!value) {
111+
// No entry in the database, nothing to migrate.
118112
return;
119113
}
120114

121-
tokenDetails = {
122-
token: oldDetails.fcmToken,
123-
createTime: oldDetails.createTime ?? Date.now(),
124-
subscriptionOptions: {
125-
auth: oldDetails.auth,
126-
p256dh: oldDetails.p256dh,
127-
endpoint: oldDetails.endpoint,
128-
swScope: oldDetails.swScope,
129-
vapidKey:
130-
typeof oldDetails.vapidKey === 'string'
131-
? oldDetails.vapidKey
132-
: arrayToBase64(oldDetails.vapidKey)
133-
}
134-
};
135-
} else if (oldVersion === 3) {
136-
const oldDetails = value as V3TokenDetails;
137-
138-
tokenDetails = {
139-
token: oldDetails.fcmToken,
140-
createTime: oldDetails.createTime,
141-
subscriptionOptions: {
142-
auth: arrayToBase64(oldDetails.auth),
143-
p256dh: arrayToBase64(oldDetails.p256dh),
144-
endpoint: oldDetails.endpoint,
145-
swScope: oldDetails.swScope,
146-
vapidKey: arrayToBase64(oldDetails.vapidKey)
147-
}
148-
};
149-
} else if (oldVersion === 4) {
150-
const oldDetails = value as V4TokenDetails;
151-
152-
tokenDetails = {
153-
token: oldDetails.fcmToken,
154-
createTime: oldDetails.createTime,
155-
subscriptionOptions: {
156-
auth: arrayToBase64(oldDetails.auth),
157-
p256dh: arrayToBase64(oldDetails.p256dh),
158-
endpoint: oldDetails.endpoint,
159-
swScope: oldDetails.swScope,
160-
vapidKey: arrayToBase64(oldDetails.vapidKey)
115+
if (oldVersion === 2) {
116+
const oldDetails = value as V2TokenDetails;
117+
118+
if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {
119+
return;
161120
}
162-
};
121+
122+
tokenDetails = {
123+
token: oldDetails.fcmToken,
124+
createTime: oldDetails.createTime ?? Date.now(),
125+
subscriptionOptions: {
126+
auth: oldDetails.auth,
127+
p256dh: oldDetails.p256dh,
128+
endpoint: oldDetails.endpoint,
129+
swScope: oldDetails.swScope,
130+
vapidKey:
131+
typeof oldDetails.vapidKey === 'string'
132+
? oldDetails.vapidKey
133+
: arrayToBase64(oldDetails.vapidKey)
134+
}
135+
};
136+
} else if (oldVersion === 3) {
137+
const oldDetails = value as V3TokenDetails;
138+
139+
tokenDetails = {
140+
token: oldDetails.fcmToken,
141+
createTime: oldDetails.createTime,
142+
subscriptionOptions: {
143+
auth: arrayToBase64(oldDetails.auth),
144+
p256dh: arrayToBase64(oldDetails.p256dh),
145+
endpoint: oldDetails.endpoint,
146+
swScope: oldDetails.swScope,
147+
vapidKey: arrayToBase64(oldDetails.vapidKey)
148+
}
149+
};
150+
} else if (oldVersion === 4) {
151+
const oldDetails = value as V4TokenDetails;
152+
153+
tokenDetails = {
154+
token: oldDetails.fcmToken,
155+
createTime: oldDetails.createTime,
156+
subscriptionOptions: {
157+
auth: arrayToBase64(oldDetails.auth),
158+
p256dh: arrayToBase64(oldDetails.p256dh),
159+
endpoint: oldDetails.endpoint,
160+
swScope: oldDetails.swScope,
161+
vapidKey: arrayToBase64(oldDetails.vapidKey)
162+
}
163+
};
164+
}
163165
}
164166
}
165167
);

packages/messaging/src/testing/setup.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import chaiAsPromised from 'chai-as-promised';
1919
import sinonChai from 'sinon-chai';
2020

2121
import { dbDelete } from '../internals/idb-manager';
22-
import { deleteDB } from '@firebase/util';
22+
import { deleteDB } from 'idb';
2323
import { restore } from 'sinon';
2424
import { use } from 'chai';
2525

0 commit comments

Comments
 (0)