This commit is contained in:
+1
-23545
File diff suppressed because one or more lines are too long
+1
-23545
File diff suppressed because one or more lines are too long
+1
-23545
File diff suppressed because one or more lines are too long
+1
-23545
File diff suppressed because one or more lines are too long
+1
-296461
File diff suppressed because one or more lines are too long
+1
-296461
File diff suppressed because one or more lines are too long
+1
-296461
File diff suppressed because one or more lines are too long
+1
-296461
File diff suppressed because one or more lines are too long
+1
-40482
File diff suppressed because one or more lines are too long
+1
-40482
File diff suppressed because one or more lines are too long
+1
-40482
File diff suppressed because one or more lines are too long
+1
-40482
File diff suppressed because one or more lines are too long
+1
-68248
File diff suppressed because one or more lines are too long
+1
-68248
File diff suppressed because one or more lines are too long
+1
-68248
File diff suppressed because one or more lines are too long
+1
-68248
File diff suppressed because one or more lines are too long
+1
-261333
File diff suppressed because one or more lines are too long
+1
-261333
File diff suppressed because one or more lines are too long
+1
-261333
File diff suppressed because one or more lines are too long
+1
-261333
File diff suppressed because one or more lines are too long
+1
-1581
File diff suppressed because one or more lines are too long
+1
-1581
File diff suppressed because one or more lines are too long
+1
-1581
File diff suppressed because one or more lines are too long
+1
-1581
File diff suppressed because one or more lines are too long
+1
-33227
File diff suppressed because one or more lines are too long
+1
-33227
File diff suppressed because one or more lines are too long
+1
-33227
File diff suppressed because one or more lines are too long
+1
-33227
File diff suppressed because one or more lines are too long
+1
-2239
File diff suppressed because one or more lines are too long
+1
-2239
File diff suppressed because one or more lines are too long
+1
-2239
File diff suppressed because one or more lines are too long
+1
-2239
File diff suppressed because one or more lines are too long
+5
-8
@@ -1,16 +1,13 @@
|
|||||||
|
import nextCoreWebVitals from "eslint-config-next/core-web-vitals";
|
||||||
|
import nextTypescript from "eslint-config-next/typescript";
|
||||||
import { dirname } from "path";
|
import { dirname } from "path";
|
||||||
import { fileURLToPath } from "url";
|
import { fileURLToPath } from "url";
|
||||||
import { FlatCompat } from "@eslint/eslintrc";
|
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
const compat = new FlatCompat({
|
const eslintConfig = [...nextCoreWebVitals, ...nextTypescript, {
|
||||||
baseDirectory: __dirname,
|
ignores: ["node_modules/**", ".next/**", "out/**", "build/**", "next-env.d.ts"]
|
||||||
});
|
}];
|
||||||
|
|
||||||
const eslintConfig = [
|
|
||||||
...compat.extends("next/core-web-vitals", "next/typescript"),
|
|
||||||
];
|
|
||||||
|
|
||||||
export default eslintConfig;
|
export default eslintConfig;
|
||||||
|
|||||||
+2
-2
@@ -36,8 +36,8 @@ const nextConfig: NextConfig = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
eslint: {
|
compiler: {
|
||||||
ignoreDuringBuilds: true,
|
styledComponents: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+31
-28
@@ -3,43 +3,46 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev --turbopack",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint"
|
"lint": "eslint ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@next/bundle-analyzer": "^15.5.4",
|
"@next/bundle-analyzer": "16.0.3",
|
||||||
"@tanstack/react-query": "^5.83.0",
|
"@tanstack/react-query": "^5.90.10",
|
||||||
"axios": "^1.10.0",
|
"axios": "^1.13.2",
|
||||||
"fast-average-color": "^9.5.0",
|
"fast-average-color": "^9.5.0",
|
||||||
"framer-motion": "^12.12.1",
|
"framer-motion": "^12.23.24",
|
||||||
"html2canvas-pro": "^1.5.11",
|
"html2canvas-pro": "^1.5.13",
|
||||||
"lucide-react": "^0.536.0",
|
"lucide-react": "^0.554.0",
|
||||||
"next": "15.3.2",
|
"next": "16.0.3",
|
||||||
"next-intl": "^4.1.0",
|
"next-intl": "^4.5.3",
|
||||||
"react": "^19.0.0",
|
"react": "19.2.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "19.2.0",
|
||||||
"react-select": "^5.10.1",
|
"react-select": "^5.10.2",
|
||||||
"react-toastify": "^11.0.5",
|
"react-toastify": "^11.0.5",
|
||||||
"sharp": "^0.34.4",
|
"sharp": "^0.34.5",
|
||||||
"socket.io-client": "^4.8.1",
|
"socket.io-client": "^4.8.1",
|
||||||
"zod": "^3.25.67",
|
"zod": "^4.1.12",
|
||||||
"zustand": "^5.0.5"
|
"zustand": "^5.0.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3",
|
"@tailwindcss/postcss": "^4.1.17",
|
||||||
"@tailwindcss/postcss": "^4",
|
"@types/jest": "^30.0.0",
|
||||||
"@types/jest": "^29.5.14",
|
"@types/node": "^24.10.1",
|
||||||
"@types/node": "^20",
|
"@types/react": "19.2.6",
|
||||||
"@types/react": "^19",
|
"@types/react-dom": "19.2.3",
|
||||||
"@types/react-dom": "^19",
|
"daisyui": "^5.5.5",
|
||||||
"daisyui": "^5.0.27",
|
"eslint": "^9.39.1",
|
||||||
"eslint": "^9",
|
"eslint-config-next": "16.0.3",
|
||||||
"eslint-config-next": "15.3.1",
|
|
||||||
"tailwind-scrollbar": "^4.0.2",
|
"tailwind-scrollbar": "^4.0.2",
|
||||||
"tailwindcss": "^4",
|
"tailwindcss": "^4.1.17",
|
||||||
"ts-to-zod": "^3.15.0",
|
"ts-to-zod": "^5.0.1",
|
||||||
"typescript": "^5"
|
"typescript": "^5.9.3"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"@types/react": "19.2.6",
|
||||||
|
"@types/react-dom": "19.2.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export async function GET(
|
|||||||
if (!as) {
|
if (!as) {
|
||||||
return NextResponse.json({ error: 'AS info not found' }, { status: 404 })
|
return NextResponse.json({ error: 'AS info not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
return new NextResponse(JSON.stringify(as), {
|
||||||
return NextResponse.json(as)
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
|
|
||||||
const asData = await loadAS(asIds, locale);
|
const asData = await loadAS(asIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(asData);
|
return new NextResponse(JSON.stringify(asData), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load as data' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load as data' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'Character not found' }, { status: 404 })
|
return NextResponse.json({ error: 'Character not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(char)
|
return new NextResponse(JSON.stringify(char), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,16 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
const body = await request.json();
|
const body = await request.json();
|
||||||
const charIds = body.charIds as string[];
|
const charIds = body.charIds as string[];
|
||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
|
|
||||||
if (!Array.isArray(charIds) || charIds.some(id => typeof id !== 'string')) {
|
if (!Array.isArray(charIds) || charIds.some(id => typeof id !== 'string')) {
|
||||||
return NextResponse.json({ error: 'Invalid charIds' }, { status: 400 });
|
return NextResponse.json({ error: 'Invalid charIds' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const characters = await loadCharacters(charIds, locale);
|
const characters = await loadCharacters(charIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(characters);
|
return new NextResponse(JSON.stringify(characters), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load characters' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load characters' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'Lightcone not found' }, { status: 404 })
|
return NextResponse.json({ error: 'Lightcone not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(lightcone)
|
return new NextResponse(JSON.stringify(lightcone), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,16 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
const body = await request.json();
|
const body = await request.json();
|
||||||
const lightconeIds = body.lightconeIds as string[];
|
const lightconeIds = body.lightconeIds as string[];
|
||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
|
|
||||||
if (!Array.isArray(lightconeIds) || lightconeIds.some(id => typeof id !== 'string')) {
|
if (!Array.isArray(lightconeIds) || lightconeIds.some(id => typeof id !== 'string')) {
|
||||||
return NextResponse.json({ error: 'Invalid lightconeIds' }, { status: 400 });
|
return NextResponse.json({ error: 'Invalid lightconeIds' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const lightcones = await loadLightcones(lightconeIds, locale);
|
const lightcones = await loadLightcones(lightconeIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(lightcones);
|
return new NextResponse(JSON.stringify(lightcones), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load lightcones' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load lightcones' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'MOC info not found' }, { status: 404 })
|
return NextResponse.json({ error: 'MOC info not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(moc)
|
return new NextResponse(JSON.stringify(moc), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
|
|
||||||
const mocData = await loadMOC(mocIds, locale);
|
const mocData = await loadMOC(mocIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(mocData);
|
return new NextResponse(JSON.stringify(mocData), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load moc data' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load moc data' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export async function GET(
|
|||||||
if (!monster) {
|
if (!monster) {
|
||||||
return NextResponse.json({ error: 'Monster info not found' }, { status: 404 })
|
return NextResponse.json({ error: 'Monster info not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
return new NextResponse(JSON.stringify(monster), {
|
||||||
return NextResponse.json(monster)
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,16 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
const body = await request.json();
|
const body = await request.json();
|
||||||
const monsterIds = body.monsterIds as string[];
|
const monsterIds = body.monsterIds as string[];
|
||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
|
|
||||||
if (!Array.isArray(monsterIds) || monsterIds.some(id => typeof id !== 'string')) {
|
if (!Array.isArray(monsterIds) || monsterIds.some(id => typeof id !== 'string')) {
|
||||||
return NextResponse.json({ error: 'Invalid monsterIds' }, { status: 400 });
|
return NextResponse.json({ error: 'Invalid monsterIds' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const monsterData = await loadMonster(monsterIds, locale);
|
const monsterData = await loadMonster(monsterIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(monsterData);
|
return new NextResponse(JSON.stringify(monsterData), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load monster data' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load monster data' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'Peak info not found' }, { status: 404 })
|
return NextResponse.json({ error: 'Peak info not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(peak)
|
return new NextResponse(JSON.stringify(peak), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
|
|
||||||
const peakData = await loadPeak(peakIds, locale);
|
const peakData = await loadPeak(peakIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(peakData);
|
return new NextResponse(JSON.stringify(peakData), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load peak data' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load peak data' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,8 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'PF info not found' }, { status: 404 })
|
return NextResponse.json({ error: 'PF info not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(pf)
|
|
||||||
|
return new NextResponse(JSON.stringify(pf), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,16 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
const body = await request.json();
|
const body = await request.json();
|
||||||
const pfIds = body.pfIds as string[];
|
const pfIds = body.pfIds as string[];
|
||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
|
|
||||||
if (!Array.isArray(pfIds) || pfIds.some(id => typeof id !== 'string')) {
|
if (!Array.isArray(pfIds) || pfIds.some(id => typeof id !== 'string')) {
|
||||||
return NextResponse.json({ error: 'Invalid pfIds' }, { status: 400 });
|
return NextResponse.json({ error: 'Invalid pfIds' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const pfData = await loadPF(pfIds, locale);
|
const pfData = await loadPF(pfIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(pfData);
|
return new NextResponse(JSON.stringify(pfData), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load pf data' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load pf data' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ export async function GET(
|
|||||||
return NextResponse.json({ error: 'Relic not found' }, { status: 404 })
|
return NextResponse.json({ error: 'Relic not found' }, { status: 404 })
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json(relic)
|
return new NextResponse(JSON.stringify(relic), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,16 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
|||||||
const body = await request.json();
|
const body = await request.json();
|
||||||
const relicIds = body.relicIds as string[];
|
const relicIds = body.relicIds as string[];
|
||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
|
|
||||||
if (!Array.isArray(relicIds) || relicIds.some(id => typeof id !== 'string')) {
|
if (!Array.isArray(relicIds) || relicIds.some(id => typeof id !== 'string')) {
|
||||||
return NextResponse.json({ error: 'Invalid relicIds' }, { status: 400 });
|
return NextResponse.json({ error: 'Invalid relicIds' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const relics = await loadRelics(relicIds, locale);
|
const relics = await loadRelics(relicIds, locale);
|
||||||
|
|
||||||
return NextResponse.json(relics);
|
return new NextResponse(JSON.stringify(relics), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load relics' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load relics' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import { NextResponse } from "next/server";
|
|||||||
export async function GET() {
|
export async function GET() {
|
||||||
try {
|
try {
|
||||||
const configMaze = await loadConfigMaze();
|
const configMaze = await loadConfigMaze();
|
||||||
return NextResponse.json(configMaze);
|
return new NextResponse(JSON.stringify(configMaze), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load config maze' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load config maze' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import { NextResponse } from "next/server";
|
|||||||
export async function GET() {
|
export async function GET() {
|
||||||
try {
|
try {
|
||||||
const mainAffix = await loadMainAffix();
|
const mainAffix = await loadMainAffix();
|
||||||
return NextResponse.json(mainAffix);
|
return new NextResponse(JSON.stringify(mainAffix), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load main affix' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load main affix' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import { NextResponse } from "next/server";
|
|||||||
export async function GET() {
|
export async function GET() {
|
||||||
try {
|
try {
|
||||||
const subAffix = await loadSubAffix();
|
const subAffix = await loadSubAffix();
|
||||||
return NextResponse.json(subAffix);
|
return new NextResponse(JSON.stringify(subAffix), {
|
||||||
|
headers: { "Content-Type": "application/json" }
|
||||||
|
});
|
||||||
} catch {
|
} catch {
|
||||||
return NextResponse.json({ error: 'Failed to load sub affix' }, { status: 500 });
|
return NextResponse.json({ error: 'Failed to load sub affix' }, { status: 500 });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ export async function loadAS(charIds: string[], locale: string): Promise<Record<
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
|
|
||||||
asFileCache[locale] = result;
|
asFileCache[locale] = result;
|
||||||
asMap = result;
|
asMap = result;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ export async function loadCharacters(charIds: string[], locale: string): Promise
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
characterFileCache[locale] = result;
|
characterFileCache[locale] = result;
|
||||||
characterMap = result;
|
characterMap = result;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export async function loadLightcones(charIds: string[], locale: string): Promise
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
lightconeFileCache[locale] = result;
|
lightconeFileCache[locale] = result;
|
||||||
lightconeMap = result;
|
lightconeMap = result;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export async function loadMOC(charIds: string[], locale: string): Promise<Record
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
mocFileCache[locale] = result;
|
mocFileCache[locale] = result;
|
||||||
mocMap = result;
|
mocMap = result;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export async function loadMonster(charIds: string[], locale: string): Promise<Re
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
monsterFileCache[locale] = result;
|
monsterFileCache[locale] = result;
|
||||||
monsterMap = result;
|
monsterMap = result;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export async function loadPeak(charIds: string[], locale: string): Promise<Recor
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
peakFileCache[locale] = result;
|
peakFileCache[locale] = result;
|
||||||
peakMap = result;
|
peakMap = result;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export async function loadPF(charIds: string[], locale: string): Promise<Record<
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
pfFileCache[locale] = result;
|
pfFileCache[locale] = result;
|
||||||
pfMap = result;
|
pfMap = result;
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export async function loadRelics(charIds: string[], locale: string): Promise<Rec
|
|||||||
|
|
||||||
fs.mkdirSync(DATA_DIR, { recursive: true });
|
fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||||
const filePath = getJsonFilePath(locale);
|
const filePath = getJsonFilePath(locale);
|
||||||
fs.writeFileSync(filePath, JSON.stringify(result, null, 2), 'utf-8');
|
fs.writeFileSync(filePath, JSON.stringify(result), 'utf-8');
|
||||||
|
|
||||||
relicFileCache[locale] = result;
|
relicFileCache[locale] = result;
|
||||||
relicMap = result;
|
relicMap = result;
|
||||||
|
|||||||
+3
-2
@@ -14,7 +14,7 @@
|
|||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve",
|
"jsx": "react-jsx",
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
@@ -32,7 +32,8 @@
|
|||||||
"next-env.d.ts",
|
"next-env.d.ts",
|
||||||
"**/*.ts",
|
"**/*.ts",
|
||||||
"**/*.tsx",
|
"**/*.tsx",
|
||||||
".next/types/**/*.ts"
|
".next/types/**/*.ts",
|
||||||
|
".next/dev/types/**/*.ts"
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"node_modules"
|
"node_modules"
|
||||||
|
|||||||
Reference in New Issue
Block a user