From b07311e3be0870eec3b6d1b256d54f2a6a82c76b Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Tue, 25 Feb 2025 17:16:13 +0700 Subject: [PATCH] feat: consistent safety --- react-app-rewired/headers/csps/wallets/walletMigration.ts | 6 +++++- react-app-rewired/headers/types.ts | 4 ++-- react-app-rewired/headers/util.ts | 7 +------ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/react-app-rewired/headers/csps/wallets/walletMigration.ts b/react-app-rewired/headers/csps/wallets/walletMigration.ts index 9dbdd615ff8..ba6a53ddd40 100644 --- a/react-app-rewired/headers/csps/wallets/walletMigration.ts +++ b/react-app-rewired/headers/csps/wallets/walletMigration.ts @@ -1,9 +1,13 @@ import type { Csp } from '../../types' +const REACT_APP_WALLET_MIGRATION_URL = process.env.REACT_APP_WALLET_MIGRATION_URL + +if (!REACT_APP_WALLET_MIGRATION_URL) throw new Error('REACT_APP_WALLET_MIGRATION_URL is required') + export const csp: Csp = { 'connect-src': [ // friendly-challenge@0.9.1: https://github.com/FriendlyCaptcha/friendly-challenge/blob/f110634f17f316b90a9bd59b190291abe3c639bb/src/captcha.ts#L20 'https://api.friendlycaptcha.com/api/v1/puzzle', - process.env.REACT_APP_WALLET_MIGRATION_URL, + REACT_APP_WALLET_MIGRATION_URL, ], } diff --git a/react-app-rewired/headers/types.ts b/react-app-rewired/headers/types.ts index e92c32b0132..d6eecf75d9c 100644 --- a/react-app-rewired/headers/types.ts +++ b/react-app-rewired/headers/types.ts @@ -1,3 +1,3 @@ // process.env is not properly typed but could be if we were using vite imports.meta. wen vite? -export type Csp = Record -export type CspEntry = (string | undefined)[] +export type Csp = Record +export type CspEntry = string[] diff --git a/react-app-rewired/headers/util.ts b/react-app-rewired/headers/util.ts index 4a9b2dac00e..496258add5e 100644 --- a/react-app-rewired/headers/util.ts +++ b/react-app-rewired/headers/util.ts @@ -9,7 +9,7 @@ import type { Csp, CspEntry } from './types' export function cspToEntries(x: Csp): CspEntry[] { return Object.entries(x).flatMap(([k, v]) => { return v.map(entry => { - const out = [k, entry] + const out: [string, string] = [k, entry] return out }) }) @@ -24,9 +24,6 @@ export function entriesToCsp(x: CspEntry[]): Csp { const acc: Csp = {} return x .sort(([k1, v1], [k2, v2]) => { - if (k1 === undefined || k2 === undefined) return 0 - if (v1 === undefined || v2 === undefined) return 0 - if (k1 < k2) return -1 if (k1 > k2) return 1 if (v1 < v2) return -1 @@ -34,8 +31,6 @@ export function entriesToCsp(x: CspEntry[]): Csp { return 0 }) .reduce((a, [k, v]) => { - if (!k) return a - a[k] ??= [] if (v && (a[k].length === 0 || v !== "'none'") && !a[k].includes(v)) a[k].push(v) if (a[k].length > 1) a[k] = a[k].filter(x => x !== "'none'")