global fix and add tauri app

This commit is contained in:
lendry
2026-06-26 13:56:54 +03:00
parent aa228d84eb
commit 3b05b7e4d4
50 changed files with 3947 additions and 80 deletions

View File

@@ -0,0 +1,44 @@
import { createReadStream, existsSync, statSync } from 'node:fs';
import path from 'node:path';
import { Readable } from 'node:stream';
import { NextResponse } from 'next/server';
export const runtime = 'nodejs';
const APK_CANDIDATES = [
process.env.TAURI_ANDROID_APK_PATH,
path.resolve(process.cwd(), 'public/downloads/lendry-id.apk'),
path.resolve(process.cwd(), '../../tauri_app/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk'),
path.resolve(process.cwd(), '../../tauri_app/src-tauri/gen/android/app/build/outputs/apk/universal/debug/app-universal-debug.apk'),
path.resolve(process.cwd(), '../../tauri_app/src-tauri/gen/android/app/build/outputs/apk/arm64/release/app-arm64-release.apk'),
path.resolve(process.cwd(), '../../tauri_app/src-tauri/gen/android/app/build/outputs/apk/arm64/debug/app-arm64-debug.apk')
].filter((candidate): candidate is string => Boolean(candidate));
function resolveApkPath() {
return APK_CANDIDATES.find((candidate) => existsSync(candidate) && statSync(candidate).isFile());
}
export async function GET() {
const apkPath = resolveApkPath();
if (!apkPath) {
return NextResponse.json(
{
message:
'APK ещё не собран. Соберите tauri_app для Android или укажите TAURI_ANDROID_APK_PATH/public/downloads/lendry-id.apk.'
},
{ status: 404 }
);
}
const stat = statSync(apkPath);
const stream = Readable.toWeb(createReadStream(apkPath)) as ReadableStream;
return new Response(stream, {
headers: {
'Content-Type': 'application/vnd.android.package-archive',
'Content-Length': String(stat.size),
'Content-Disposition': 'attachment; filename="lendry-id.apk"',
'Cache-Control': 'no-store'
}
});
}