16 lines
907 B
TypeScript
16 lines
907 B
TypeScript
import {readFileSync} from 'node:fs';
|
|
import {getLoraAliases,getLoraTriggers} from '../library';
|
|
import {loraIdentityKey} from '~/utils/loras';
|
|
import {join} from 'node:path';
|
|
import {studio2Root} from './store';
|
|
|
|
/** Optional metadata-only production export; no production media/catalog mount. */
|
|
export function studio2LoraCatalog(owner: string) {
|
|
const local={aliases:getLoraAliases(owner),triggers:getLoraTriggers(owner)};
|
|
try {
|
|
const source=JSON.parse(readFileSync(process.env.STUDIO2_LORA_CATALOG_PATH || join(studio2Root(),'shared-lora-catalog.cache'),'utf8'));
|
|
const normalize=(map: any)=>Object.fromEntries(Object.entries(map || {}).filter(([,value])=>typeof value==='string').map(([key,value])=>[loraIdentityKey(key),value]));
|
|
return {aliases:{...local.aliases,...normalize(source.loraAliases)},triggers:{...local.triggers,...normalize(source.loraTriggers)}};
|
|
} catch { return local; }
|
|
}
|