v1.0.22
This commit is contained in:
1 parent
aefa5e7925
commit
b55e1e5aad
107 files changed
+2193
-443
No files matched your search
@@ -0,0 +1,36 @@
|
||||
import { resolve } from 'path';
|
||||
import { existsSync, mkdirSync, writeFileSync, unlinkSync, readFileSync } from 'fs';
|
||||
|
||||
function getIconsDir(): string {
|
||||
const dataDir = process.env.DATA_DIR || './data';
|
||||
const dir = resolve(dataDir, 'icons');
|
||||
if (!existsSync(dir)) {
|
||||
mkdirSync(dir, { recursive: true });
|
||||
}
|
||||
return dir;
|
||||
}
|
||||
|
||||
export function saveEnvironmentIcon(envId: number, base64Data: string): void {
|
||||
const dir = getIconsDir();
|
||||
// Strip data URL prefix if present
|
||||
const base64 = base64Data.replace(/^data:image\/\w+;base64,/, '');
|
||||
const buffer = Buffer.from(base64, 'base64');
|
||||
writeFileSync(resolve(dir, `env-${envId}.webp`), buffer);
|
||||
}
|
||||
|
||||
export function deleteEnvironmentIcon(envId: number): void {
|
||||
const dir = getIconsDir();
|
||||
const path = resolve(dir, `env-${envId}.webp`);
|
||||
if (existsSync(path)) {
|
||||
unlinkSync(path);
|
||||
}
|
||||
}
|
||||
|
||||
export function getEnvironmentIconBuffer(envId: number): Buffer | null {
|
||||
const dir = getIconsDir();
|
||||
const path = resolve(dir, `env-${envId}.webp`);
|
||||
if (!existsSync(path)) {
|
||||
return null;
|
||||
}
|
||||
return readFileSync(path);
|
||||
}
|
||||
Reference in new issue
Block a user