feat: add managed ISAC image library
This commit is contained in:
@@ -24,9 +24,10 @@ for (const name of ISAC_DATA_TABLES) {
|
||||
|
||||
const icons = [];
|
||||
const iconTable = tables.find((table) => table.name === 'game_data_icons');
|
||||
for (const row of iconTable?.rows ?? []) {
|
||||
const managedImageTable = tables.find((table) => table.name === 'managed_images');
|
||||
for (const row of [...(iconTable?.rows ?? []), ...(managedImageTable?.rows ?? [])]) {
|
||||
if (typeof row.storage_key !== 'string' || !/^[a-z_]+-[0-9a-f-]{36}\.webp$/i.test(row.storage_key)) {
|
||||
throw new Error(`Invalid game-data icon storage key "${String(row.storage_key)}".`);
|
||||
throw new Error(`Invalid managed asset storage key "${String(row.storage_key)}".`);
|
||||
}
|
||||
const content = await readFile(join(iconDirectory, row.storage_key));
|
||||
icons.push({ storageKey: row.storage_key, contentBase64: content.toString('base64') });
|
||||
@@ -44,5 +45,5 @@ const snapshot = {
|
||||
await mkdir(dirname(outputPath), { recursive: true });
|
||||
await writeFile(outputPath, `${JSON.stringify(snapshot, null, 2)}\n`, { encoding: 'utf8', flag: 'wx' });
|
||||
|
||||
console.log(`Exported ${totalRows} ISAC rows and ${icons.length} uploaded icons.`);
|
||||
console.log(`Exported ${totalRows} ISAC rows and ${icons.length} uploaded image assets.`);
|
||||
console.log(`ISAC snapshot: ${outputPath}`);
|
||||
|
||||
Reference in New Issue
Block a user