import { PermissionAreas } from '#shared/helpers.ts'; const byteLength = async (key: string): Promise => { const value = await useStorage().getItemRaw(key); try { return Buffer.byteLength(value); } catch (error) { return 0; } }; export default defineEventHandler(async (event) => { const { isGranted } = await useAuthentication(event); if (!isGranted(PermissionAreas.Code)) { throw createError({ status: 401, statusMessage: 'Unauthorised', }); } const keys = (await useStorage().getKeys()) .filter((key) => !key.startsWith('build') && !key.startsWith('root') && !key.startsWith('src')) .toSorted(); return Object.fromEntries(await Promise.all(keys.map(async (key): Promise<[string, number]> => { const meta = await useStorage().getMeta(key); return [key, typeof meta.size === 'number' ? meta.size : await byteLength(key)] as const; }))); });