add check-types command and fix type errors

This commit is contained in:
Paul Miller
2023-07-28 11:00:00 -05:00
parent 3f8eafa93c
commit 3868b3f0a0
14 changed files with 1092 additions and 972 deletions

View File

@@ -8,55 +8,55 @@
"host": "solid-start dev --host",
"build": "solid-start build && node insertHead.js",
"start": "solid-start start",
"lint": "eslint src --ext .ts,.tsx,.js",
"check-types": "tsc --noemit",
"eslint": "eslint src",
"lint": "pnpm run eslint && pnpm run check-types",
"format": "npx prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\""
},
"type": "module",
"devDependencies": {
"@capacitor/assets": "^2.0.4",
"@capacitor/cli": "^5.2.1",
"@playwright/test": "^1.35.1",
"@types/node": "^18.16.19",
"@typescript-eslint/eslint-plugin": "^5.61.0",
"@typescript-eslint/parser": "^5.61.0",
"@capacitor/cli": "^5.2.2",
"@playwright/test": "^1.36.2",
"@types/node": "^18.17.1",
"@typescript-eslint/eslint-plugin": "^6.2.0",
"@typescript-eslint/parser": "^6.2.0",
"autoprefixer": "^10.4.14",
"esbuild": "^0.14.54",
"eslint": "^8.44.0",
"eslint": "^8.46.0",
"eslint-import-resolver-typescript": "2.7.1",
"eslint-plugin-import": "2.27.5",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-solid": "0.11.0",
"postcss": "^8.4.25",
"postcss": "^8.4.27",
"prettier": "^2.8.8",
"solid-start-node": "^0.2.26",
"tailwindcss": "^3.3.2",
"typescript": "^4.9.5",
"vite": "^4.4.2",
"solid-start-node": "^0.2.29",
"tailwindcss": "^3.3.3",
"typescript": "^5.1.6",
"vite": "^4.4.7",
"vite-plugin-pwa": "^0.14.7",
"vite-plugin-wasm": "^3.2.2",
"workbox-window": "^6.6.0"
},
"dependencies": {
"@capacitor/android": "^5.2.1",
"@capacitor/android": "^5.2.2",
"@capacitor/clipboard": "^5.0.6",
"@capacitor/core": "^5.2.1",
"@capacitor/core": "^5.2.2",
"@kobalte/core": "^0.9.8",
"@kobalte/tailwindcss": "^0.5.0",
"@modular-forms/solid": "^0.18.0",
"@modular-forms/solid": "^0.18.1",
"@mutinywallet/barcode-scanner": "5.0.0-beta.3",
"@mutinywallet/mutiny-wasm": "0.4.6",
"@mutinywallet/waila-wasm": "^0.2.1",
"@solid-primitives/upload": "^0.0.111",
"@solidjs/meta": "^0.28.5",
"@solidjs/router": "^0.8.2",
"@thisbeyond/solid-select": "^0.14.0",
"class-variance-authority": "^0.4.0",
"i18next": "^22.5.1",
"i18next-browser-languagedetector": "^7.1.0",
"qr-scanner": "^1.4.2",
"solid-js": "^1.7.7",
"solid-js": "^1.7.8",
"solid-qr-code": "^0.0.8",
"solid-start": "^0.2.26",
"solid-start": "^0.2.29",
"undici": "^5.22.1"
},
"engines": {

1904
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,8 +21,8 @@ import { DIALOG_CONTENT, DIALOG_POSITIONER } from "~/styles/dialogs";
import { InfoBox } from "./InfoBox";
import { Network } from "~/logic/mutinyWalletSetup";
import { FeesModal } from "./MoreInfoModal";
import { useNavigate } from "@solidjs/router";
import { useI18n } from "~/i18n/context";
import { useNavigate } from "solid-start";
const FIXED_AMOUNTS_SATS = [
{ label: "10k", amount: "10000" },
@@ -70,7 +70,7 @@ function SingleDigitButton(props: {
fiat: boolean;
}) {
const i18n = useI18n();
let holdTimer: number;
let holdTimer: ReturnType<typeof setTimeout> | undefined;
const holdThreshold = 500;
function onHold() {

View File

@@ -2,12 +2,11 @@ import { onCleanup, onMount } from "solid-js";
import {
BarcodeScanner,
BarcodeFormat,
CameraPermissionState,
CameraPermissionType,
CameraPluginPermissions,
PermissionStates
PermissionStates,
ScanResult
} from "@mutinywallet/barcode-scanner";
import QrScanner from "qr-scanner";
import { Capacitor } from "@capacitor/core";
export default function Scanner(props: { onResult: (result: string) => void }) {
let container: HTMLVideoElement | undefined;
@@ -22,7 +21,7 @@ export default function Scanner(props: { onResult: (result: string) => void }) {
const permissions: PermissionStates =
await BarcodeScanner.checkPermissions();
if (permissions.camera === "granted") {
const callback = (result: ScanResult, err?: any) => {
const callback = (result: ScanResult, err?: unknown) => {
if (err) {
console.error(err);
return;
@@ -33,7 +32,7 @@ export default function Scanner(props: { onResult: (result: string) => void }) {
}
};
await BarcodeScanner.start(
{ targetedFormats: [BarcodeFormat.QR_CODE] },
{ formats: [BarcodeFormat.QR_CODE] },
callback
);
} else if (permissions.camera === "prompt") {

View File

@@ -29,8 +29,7 @@ export default {
"A lightning setup fee will be charged if paid over lightning.",
too_big_for_beta:
"That's a lot of sats. You do know Mutiny Wallet is still in beta, yeah?",
more_than_21m:
"There are only 21 million bitcoin.",
more_than_21m: "There are only 21 million bitcoin.",
set_amount: "Set amount",
max: "MAX"
}

View File

@@ -42,14 +42,33 @@ export function getExistingSettings(): MutinyWalletSettingStrings {
localStorage.getItem("MUTINY_SETTINGS_scorer") ||
import.meta.env.VITE_SCORER;
return { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer };
return {
network,
proxy,
esplora,
rgs,
lsp,
auth,
subscriptions,
storage,
scorer
};
}
export async function setAndGetMutinySettings(
settings?: MutinyWalletSettingStrings
): Promise<MutinyWalletSettingStrings> {
let { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer } =
settings || {};
let {
network,
proxy,
esplora,
rgs,
lsp,
auth,
subscriptions,
storage,
scorer
} = settings || {};
const existingSettings = getExistingSettings();
@@ -98,7 +117,7 @@ export async function setAndGetMutinySettings(
auth,
subscriptions,
storage,
scorer
scorer
};
} catch (error) {
console.error(error);
@@ -152,8 +171,17 @@ export async function setupMutinyWallet(
password?: string
): Promise<MutinyWallet> {
console.log("Starting setup...");
const { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer } =
await setAndGetMutinySettings(settings);
const {
network,
proxy,
esplora,
rgs,
lsp,
auth,
subscriptions,
storage,
scorer
} = await setAndGetMutinySettings(settings);
console.log("Initializing Mutiny Manager");
console.log("Using network", network);
console.log("Using proxy", proxy);

View File

@@ -382,9 +382,10 @@ export default function Redshift() {
return (await state.mutiny_wallet?.list_utxos()) as UtxoItem[];
};
// TODO: FIXME: this is old code needs to be revisited!
const getChannels = async () => {
console.log("Getting channels");
await state.mutiny_wallet?.sync();
// await state.mutiny_wallet?.sync();
const channels =
(await state.mutiny_wallet?.list_channels()) as Promise<
MutinyChannel[]

View File

@@ -29,9 +29,7 @@ export default function Scanner() {
let text;
if (Capacitor.isNativePlatform()) {
const { value } = await Clipboard.read({
type: "string"
});
const { value } = await Clipboard.read();
text = value;
} else {
text = await navigator.clipboard.readText();

View File

@@ -391,9 +391,7 @@ export default function Send() {
let text;
if (Capacitor.isNativePlatform()) {
const { value } = await Clipboard.read({
type: "string"
});
const { value } = await Clipboard.read();
text = value;
} else {
if (!navigator.clipboard.readText) {

View File

@@ -12,11 +12,11 @@ export default function NotFound() {
const i18n = useI18n();
return (
<SafeArea>
<Title>{i18n.t("not_found.title")}</Title>
<Title>{i18n.t("error.not_found.title")}</Title>
<HttpStatusCode code={404} />
<DefaultMain>
<LargeHeader>{i18n.t("not_found.title")}</LargeHeader>
<p>{i18n.t("not_found.wtf_paul")}</p>
<LargeHeader>{i18n.t("error.not_found.title")}</LargeHeader>
<p>{i18n.t("error.not_found.wtf_paul")}</p>
<div class="h-full" />
<ButtonLink href="/" intent="red">
{i18n.t("common.dangit")}

View File

@@ -97,9 +97,7 @@ function TwelveWordsEntry() {
let text;
if (Capacitor.isNativePlatform()) {
const { value } = await Clipboard.read({
type: "string"
});
const { value } = await Clipboard.read();
text = value;
} else {
if (!navigator.clipboard.readText) {

View File

@@ -12,7 +12,7 @@ export const useCopy = ({ copiedTimeout = 2000 }: UseCopyProps = {}): [
copied: Accessor<boolean>
] => {
const [copied, setCopied] = createSignal(false);
let timeout: number;
let timeout: ReturnType<typeof setTimeout> | undefined;
const copy: CopyFn = async (text) => {
if (Capacitor.isNativePlatform()) {
await Clipboard.write({

View File

@@ -1,11 +1,4 @@
{
"include": [
"global.d.ts",
"src/**/*",
"src/routes/**/*",
"tailwind.config.cjs",
".eslintrc.cjs"
],
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
@@ -15,10 +8,29 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["solid-start/env"],
"types": ["solid-start/env", "node"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]
}
}
},
"skipLibCheck": true
},
"include": [
"global.d.ts",
"src/**/*",
"src/routes/**/*",
"tailwind.config.cjs",
".eslintrc.cjs"
],
"exclude": [
"node_modules",
"./node_modules",
"./node_modules/*",
"./node_modules/**/*",
"./node_modules/@types/node/index.d.ts",
"node_modules/.pnpm/solid-js@1.7.7/node_modules/solid-js/types/*",
"build",
"dist",
"public"
]
}

View File

@@ -1,9 +0,0 @@
{
"compilerOptions": {
"composite": true,
"module": "ESNext",
"moduleResolution": "Node",
"allowSyntheticDefaultImports": true
},
"include": ["vite.config.ts"]
}