Merge branch 'develop' into manifest-v3

This commit is contained in:
EnixCoda 2022-12-16 18:21:46 +08:00
commit 6c992c3d48
5 changed files with 19 additions and 18 deletions

View file

@ -89,7 +89,7 @@
"raw-loader": "^4.0.0",
"sass": "^1.26.2",
"sass-loader": "^8.0.2",
"typescript": "^4.7.2",
"typescript": "^4.9.4",
"uglifyjs-webpack-plugin": "^2.1.2",
"url-loader": "^1.1.2",
"web-ext": "^7.1.1",

View file

@ -14,16 +14,14 @@ export function subIO<T, K extends keyof T>(io: IO<T>, field: K): IO<T[K]> {
}
}
export function pick<T>(source: T, keys: string[]): Partial<T> {
if (keys && typeof keys === 'object') {
return (Array.isArray(keys) ? keys : Object.keys(keys)).reduce((copy, key) => {
if (key in source) {
copy[key as keyof T] = source[key as keyof T]
}
return copy
}, {} as Partial<T>)
}
return {} as Partial<T>
export function pick<T extends Record<string, unknown>, Key extends keyof T>(
source: T,
keys: Key[],
): Partial<T> {
return keys.reduce((copy, key) => {
if (key in source) copy[key] = source[key]
return copy
}, {} as Partial<T>)
}
export enum OperatingSystems {
@ -218,7 +216,10 @@ export function resolveDiffGraphMeta(additions: number, deletions: number, chang
return { g, r, w }
}
export function forOf<T, R>(target: T, callback: <K extends keyof T>(key: K, value: T[K]) => R) {
export function forOf<T extends Record<string, unknown>, R>(
target: T,
callback: <K extends keyof T>(key: K, value: T[K]) => R,
) {
for (const key of Object.keys(target)) {
const $key = key as keyof typeof target
const r = callback($key, target[$key])

View file

@ -1,7 +1,7 @@
import { IN_PRODUCTION_MODE } from 'env'
import * as React from 'react'
export function useUpdateReason<P>(props: P) {
export function useUpdateReason<P extends Record<string, unknown>>(props: P) {
const lastPropsRef = React.useRef<P>(props)
React.useEffect(() => {
if (IN_PRODUCTION_MODE) return

View file

@ -20,7 +20,7 @@ async function get<T extends JSONObject>(mapping: string | string[] | null = nul
return (await localStorage.get(mapping || undefined)) as T | undefined
}
function set<T>(value: T): Promise<void> | void {
function set<T extends Record<string, unknown>>(value: T): Promise<void> | void {
return localStorage.set(value)
}

View file

@ -11821,10 +11821,10 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^4.7.2:
version "4.7.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4"
integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
typescript@^4.9.4:
version "4.9.4"
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
uglify-js@^3.6.0:
version "3.6.0"