fix: add tsconfig.json, @types/chrome, fix TS errors - CI typecheck now passes
Some checks failed
CI — Test & Build / Test & Build (push) Failing after 9s

This commit is contained in:
Forge
2026-03-06 13:47:24 +08:00
parent 7713fb1b1d
commit 050e291f73
6 changed files with 51 additions and 2 deletions

View File

@@ -162,7 +162,7 @@ function OptionsPage() {
const apiKeyRef = useRef<HTMLInputElement>(null); const apiKeyRef = useRef<HTMLInputElement>(null);
useEffect(() => { useEffect(() => {
chrome.storage.local.get(['provider', 'apiKey', 'model'], (result) => { chrome.storage.local.get(["provider", "apiKey", "model"], (result: Record<string, string>) => {
if (result.provider) setProvider(result.provider); if (result.provider) setProvider(result.provider);
if (result.apiKey) setApiKey(result.apiKey); if (result.apiKey) setApiKey(result.apiKey);
if (result.model) setModel(result.model); if (result.model) setModel(result.model);

View File

@@ -7,7 +7,7 @@ function Popup() {
const [model, setModel] = useState(''); const [model, setModel] = useState('');
useEffect(() => { useEffect(() => {
chrome.storage.local.get(['provider', 'apiKey', 'model'], (result) => { chrome.storage.local.get(["provider", "apiKey", "model"], (result: Record<string, string>) => {
if (result.apiKey) { if (result.apiKey) {
setConfigured(true); setConfigured(true);
setProvider(result.provider || 'openai'); setProvider(result.provider || 'openai');

12
package-lock.json generated
View File

@@ -18,6 +18,7 @@
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.50.1", "@playwright/test": "^1.50.1",
"@types/chrome": "^0.1.37",
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.1", "@types/react-dom": "^18.3.1",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
@@ -1399,6 +1400,17 @@
"assertion-error": "^2.0.1" "assertion-error": "^2.0.1"
} }
}, },
"node_modules/@types/chrome": {
"version": "0.1.37",
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.1.37.tgz",
"integrity": "sha512-IJE4ceuDO7lrEuua7Pow47zwNcI8E6qqkowRP7aFPaZ0lrjxh6y836OPqqkIZeTX64FTogbw+4RNH0+QrweCTQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/filesystem": "*",
"@types/har-format": "*"
}
},
"node_modules/@types/deep-eql": { "node_modules/@types/deep-eql": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",

View File

@@ -21,6 +21,7 @@
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.50.1", "@playwright/test": "^1.50.1",
"@types/chrome": "^0.1.37",
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.1", "@types/react-dom": "^18.3.1",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",

27
tsconfig.json Normal file
View File

@@ -0,0 +1,27 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"lib": ["ESNext", "DOM"],
"jsx": "react-jsx",
"strict": true,
"noEmit": true,
"skipLibCheck": true,
"types": ["chrome"],
"esModuleInterop": true,
"allowImportingTsExtensions": true,
"paths": {
"~/*": ["./src/*"]
}
},
"include": [
"entrypoints/**/*",
"src/**/*",
".wxt/types/**/*"
],
"exclude": [
"node_modules",
".output"
]
}

9
tsconfig.test.json Normal file
View File

@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"types": ["vitest/globals"]
},
"include": [
"tests/**/*"
]
}