Revamp of the Settings State System along with TypeScript support (#1560)

* Add vue-rx, rxjs and lodash as dependencies

* Added vue-rx plugin integration to nuxt config

* Initial settings store implementation

* Add babel plugin for private class properties to for Jest

* Add DispatchingStore test spec

* Initial settings code

* Reactive Streams for fb current user and id token

* Fix typo

* Migrate index and graphql pages to the new store

* Migrate network strategy to the new store

* Fixed Section.vue errors

* Fix getSettingSubject issue

* Migrate fb settings reference in components to the new state system

* Add typings for lodash as dev dependency

* Load setting

* Load initial sync setting values

* Update proxy url

* Add typescript support

* Rewrite Settings store to TypeScript

* Port Settings page to TypeScript as reference

* Move all store migrations to a separate file

* Delete test file for fb.js

* Add ts-jest as dev dependency

* Remove firebase-mock as dependency

* Remove FRAME_COLORS_ENABLED settings value
This commit is contained in:
Andrew Bastin
2021-03-23 11:18:14 -04:00
committed by GitHub
parent 64f64b9e31
commit 5fce1118f6
47 changed files with 32426 additions and 9143 deletions

21
types/pw-ext-hook.d.ts vendored Normal file
View File

@@ -0,0 +1,21 @@
interface PWExtensionRequestInfo {
method: string
url: string
data: any & { wantsBinary: boolean }
}
interface PWExtensionResponse {
data: any
config?: {
timeData?: {
startTime: number
endTime: number
}
}
}
interface PWExtensionHook {
getVersion: () => { major: number, minor: number }
sendRequest: (req: PWExtensionRequestInfo) => Promise<PWExtensionResponse>
cancelRunningRequest: () => void
}

1
types/ts-utils.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export type KeysMatching<T, V> = {[K in keyof T]-?: T[K] extends V ? K : never}[keyof T];

7
types/window.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
export {}
declare global {
interface Window {
__POSTWOMAN_EXTENSION_HOOK__: PWExtensionHook
}
}