feat: script to add file sizes

This commit is contained in:
dicedtomato
2023-03-04 04:36:06 +00:00
committed by GitHub
parent 38e30b2525
commit c7df4a578b
4 changed files with 46 additions and 6 deletions

View File

@@ -23,7 +23,8 @@
"scripts:import-dir": "node --enable-source-maps dist/scripts/import-dir", "scripts:import-dir": "node --enable-source-maps dist/scripts/import-dir",
"scripts:list-users": "node --enable-source-maps dist/scripts/list-users", "scripts:list-users": "node --enable-source-maps dist/scripts/list-users",
"scripts:set-user": "node --enable-source-maps dist/scripts/set-user", "scripts:set-user": "node --enable-source-maps dist/scripts/set-user",
"scripts:clear-zero-byte": "node --enable-source-maps dist/scripts/clear-zero-byte" "scripts:clear-zero-byte": "node --enable-source-maps dist/scripts/clear-zero-byte",
"scripts:query-size": "node --enable-source-maps dist/scripts/query-size"
}, },
"dependencies": { "dependencies": {
"@emotion/react": "^11.10.6", "@emotion/react": "^11.10.6",

38
src/scripts/query-size.ts Normal file
View File

@@ -0,0 +1,38 @@
import { PrismaClient } from '@prisma/client';
import config from 'lib/config';
import datasource from 'lib/datasource';
import { migrations } from 'server/util';
async function main() {
process.env.DATABASE_URL = config.core.database_url;
await migrations();
const prisma = new PrismaClient();
const files = await prisma.file.findMany();
console.log(`The script will attempt to query the size of ${files.length} files.`);
for (let i = 0; i !== files.length; ++i) {
const file = files[i];
const size = await datasource.size(file.name);
if (size === 0) {
console.log(`File ${file.name} has a size of 0 bytes. Ignoring...`);
} else {
console.log(`File ${file.name} has a size of ${size} bytes. Updating...`);
await prisma.file.update({
where: {
id: file.id,
},
data: {
size,
},
});
}
}
console.log('Done.');
process.exit(0);
}
main();

View File

@@ -25,10 +25,6 @@
}, },
"incremental": true "incremental": true
}, },
"include": [ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
],
"exclude": ["node_modules", "dist", ".yarn", ".next"] "exclude": ["node_modules", "dist", ".yarn", ".next"]
} }

View File

@@ -39,4 +39,9 @@ export default defineConfig([
outDir: 'dist/scripts', outDir: 'dist/scripts',
...opts, ...opts,
}, },
{
entryPoints: ['src/scripts/query-size.ts'],
outDir: 'dist/scripts',
...opts,
},
]); ]);