Skip to content

Commit

Permalink
strictPropertyInitialization + fixes (#2241)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffposnick committed Oct 4, 2019
1 parent 01a9e9b commit 1151de6
Show file tree
Hide file tree
Showing 24 changed files with 48 additions and 47 deletions.
2 changes: 1 addition & 1 deletion packages/workbox-background-sync/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:background-sync:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:background-sync:5.0.0-beta.1']&&_()}catch(e){}
10 changes: 5 additions & 5 deletions packages/workbox-background-sync/src/lib/QueueStore.ts
Expand Up @@ -30,7 +30,7 @@ export interface QueueStoreEntry extends UnidentifiedQueueStoreEntry {
}

/**
* A class to manage storing requests from a Queue in IndexedbDB,
* A class to manage storing requests from a Queue in IndexedDB,
* indexed by their queue name for easier access.
*
* @private
Expand Down Expand Up @@ -82,11 +82,11 @@ export class QueueStore {
delete entry.id;
entry.queueName = this._queueName;

await this._db.add(OBJECT_STORE_NAME, entry);
await this._db.add!(OBJECT_STORE_NAME, entry);
}

/**
* Preppend an entry first in the queue.
* Prepend an entry first in the queue.
*
* @param {Object} entry
* @param {Object} entry.requestData
Expand Down Expand Up @@ -123,7 +123,7 @@ export class QueueStore {
}
entry.queueName = this._queueName;

await this._db.add(OBJECT_STORE_NAME, entry);
await this._db.add!(OBJECT_STORE_NAME, entry);
}

/**
Expand Down Expand Up @@ -172,7 +172,7 @@ export class QueueStore {
* @param {number} id
*/
async deleteEntry(id: number) {
await this._db.delete(OBJECT_STORE_NAME, id);
await this._db.delete!(OBJECT_STORE_NAME, id);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-broadcast-update/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:broadcast-update:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:broadcast-update:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-build/src/cdn-details.json
Expand Up @@ -2,5 +2,5 @@
"origin": "https://storage.googleapis.com",
"bucketName": "workbox-cdn",
"releasesDir": "releases",
"latestVersion": "5.0.0-beta.0"
"latestVersion": "5.0.0-beta.1"
}
2 changes: 1 addition & 1 deletion packages/workbox-cacheable-response/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:cacheable-response:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:cacheable-response:5.0.0-beta.1']&&_()}catch(e){}
16 changes: 8 additions & 8 deletions packages/workbox-core/src/_private/DBWrapper.ts
Expand Up @@ -42,14 +42,14 @@ export class DBWrapper {
private _db: IDBDatabase | null = null;

// The following IDBObjectStore methods are shadowed on this class.
get: Function;
count: Function;
add: Function;
put: Function;
clear: Function;
delete: Function;

OPEN_TIMEOUT: number;
add?: Function;
clear?: Function;
count?: Function;
delete?: Function;
get?: Function;
put?: Function;

OPEN_TIMEOUT?: number;

/**
* @param {string} name
Expand Down
4 changes: 2 additions & 2 deletions packages/workbox-core/src/_private/Deferred.ts
Expand Up @@ -19,8 +19,8 @@ import '../_version.js';
*/
class Deferred<T> {
promise: Promise<T>;
resolve: (value?: T) => void;
reject: (reason?: any) => void;
resolve?: (value?: T) => void;
reject?: (reason?: any) => void;

/**
* Creates a promise and exposes its resolve and reject functions as methods.
Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-core/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:core:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:core:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-expiration/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:expiration:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:expiration:5.0.0-beta.1']&&_()}catch(e){}
Expand Up @@ -98,7 +98,7 @@ class CacheTimestampsModel {
id: this._getId(url),
};

await this._db.put(OBJECT_STORE_NAME, entry);
await this._db.put!(OBJECT_STORE_NAME, entry);
}

/**
Expand All @@ -111,7 +111,7 @@ class CacheTimestampsModel {
*/
async getTimestamp(url: string): Promise<number> {
const entry: CacheTimestampsModelEntry =
await this._db.get(OBJECT_STORE_NAME, this._getId(url));
await this._db.get!(OBJECT_STORE_NAME, this._getId(url));

return entry.timestamp;
}
Expand Down Expand Up @@ -173,7 +173,7 @@ class CacheTimestampsModel {
// https://github.com/GoogleChrome/workbox/issues/1978
const urlsDeleted: string[] = [];
for (const entry of entriesToDelete) {
await this._db.delete(OBJECT_STORE_NAME, entry.id);
await this._db.delete!(OBJECT_STORE_NAME, entry.id);
urlsDeleted.push(entry.url);
}

Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-google-analytics/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:google-analytics:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:google-analytics:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-navigation-preload/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:navigation-preload:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:navigation-preload:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-precaching/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:precaching:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:precaching:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-range-requests/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:range-requests:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:range-requests:5.0.0-beta.1']&&_()}catch(e){}
6 changes: 3 additions & 3 deletions packages/workbox-routing/src/Router.ts
Expand Up @@ -46,8 +46,8 @@ interface CacheURLsMessageData {
*/
class Router {
private _routes: Map<HTTPMethod, Route[]>;
private _defaultHandler: HandlerObject;
private _catchHandler: HandlerObject;
private _defaultHandler?: HandlerObject;
private _catchHandler?: HandlerObject;

/**
* Initializes a new Router.
Expand Down Expand Up @@ -248,7 +248,7 @@ class Router {
logger.error(err);
logger.groupEnd();
}
return this._catchHandler.handle({url, request, event});
return this._catchHandler!.handle({url, request, event});
});
}

Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-routing/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:routing:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:routing:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-strategies/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:strategies:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:strategies:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-streams/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:streams:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:streams:5.0.0-beta.1']&&_()}catch(e){}
6 changes: 3 additions & 3 deletions packages/workbox-streams/src/concatenate.ts
Expand Up @@ -95,7 +95,7 @@ function concatenate(sourcePromises: Promise<StreamSource>[]): {
}

controller.close();
streamDeferred.resolve();
streamDeferred.resolve!();
return;
}

Expand All @@ -108,7 +108,7 @@ function concatenate(sourcePromises: Promise<StreamSource>[]): {
if (process.env.NODE_ENV !== 'production') {
logger.error('An error occurred:', error);
}
streamDeferred.reject(error);
streamDeferred.reject!(error);
throw error;
});
},
Expand All @@ -118,7 +118,7 @@ function concatenate(sourcePromises: Promise<StreamSource>[]): {
logger.warn('The ReadableStream was cancelled.');
}

streamDeferred.resolve();
streamDeferred.resolve!();
},
});

Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-sw/_version.mjs
@@ -1 +1 @@
try{self['workbox:sw:5.0.0-beta.0']&&_()}catch(e){}// eslint-disable-line
try{self['workbox:sw:5.0.0-beta.1']&&_()}catch(e){}// eslint-disable-line
12 changes: 6 additions & 6 deletions packages/workbox-window/src/Workbox.ts
Expand Up @@ -120,8 +120,8 @@ class Workbox extends WorkboxEventTarget {
// SW, resolve active/controlling deferreds and add necessary listeners.
if (this._compatibleControllingSW) {
this._sw = this._compatibleControllingSW;
this._activeDeferred.resolve(this._compatibleControllingSW);
this._controllingDeferred.resolve(this._compatibleControllingSW);
this._activeDeferred.resolve!(this._compatibleControllingSW);
this._controllingDeferred.resolve!(this._compatibleControllingSW);

this._compatibleControllingSW.addEventListener(
'statechange', this._onStateChange, {once: true});
Expand Down Expand Up @@ -154,7 +154,7 @@ class Workbox extends WorkboxEventTarget {

// If an "own" SW is already set, resolve the deferred.
if (this._sw) {
this._swDeferred.resolve(this._sw);
this._swDeferred.resolve!(this._sw);
this._ownSWs.add(this._sw);
}

Expand Down Expand Up @@ -364,7 +364,7 @@ class Workbox extends WorkboxEventTarget {
// SW is the one we registered, so we set it.
this._sw = installingSW;
this._ownSWs.add(installingSW);
this._swDeferred.resolve(installingSW);
this._swDeferred.resolve!(installingSW);

// The `installing` state isn't something we have a dedicated
// callback for, but we do log messages for it in development.
Expand Down Expand Up @@ -438,7 +438,7 @@ class Workbox extends WorkboxEventTarget {
} else if (state === 'activating') {
clearTimeout(this._waitingTimeout);
if (!isExternal) {
this._activeDeferred.resolve(sw);
this._activeDeferred.resolve!(sw);
}
}

Expand Down Expand Up @@ -491,7 +491,7 @@ class Workbox extends WorkboxEventTarget {
if (process.env.NODE_ENV !== 'production') {
logger.log('Registered service worker now controlling this page.');
}
this._controllingDeferred.resolve(sw);
this._controllingDeferred.resolve!(sw);
}
}

Expand Down
2 changes: 1 addition & 1 deletion packages/workbox-window/src/_version.ts
@@ -1,2 +1,2 @@
// @ts-ignore
try{self['workbox:window:5.0.0-beta.0']&&_()}catch(e){}
try{self['workbox:window:5.0.0-beta.1']&&_()}catch(e){}
2 changes: 1 addition & 1 deletion packages/workbox-window/src/utils/WorkboxEvent.ts
Expand Up @@ -18,7 +18,7 @@ import '../_version.js';
*/
export class WorkboxEvent<K extends keyof WorkboxEventMap> {
target?: WorkboxEventTarget;
sw: ServiceWorker;
sw?: ServiceWorker;
originalEvent?: Event;

constructor(public type: K, props: Omit<WorkboxEventMap[K], 'target' | 'type'>) {
Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Expand Up @@ -14,10 +14,11 @@
"noUnusedParameters": true,
"preserveConstEnums": true,
"strictNullChecks": true,
"strictPropertyInitialization": true,
"tsBuildInfoFile": "./tsconfig.tsbuildinfo"
},
"files": [
"./infra/type-overrides.d.ts",
"./infra/type-overrides.d.ts"
],
"exclude": [],
"references": [
Expand Down

0 comments on commit 1151de6

Please sign in to comment.