stock.geolock.fr/apps/api/dist/seed-admin.js
2026-02-24 16:10:30 +00:00

29 lines
1.0 KiB
JavaScript

import bcrypt from 'bcryptjs';
import { eq } from 'drizzle-orm';
import { getDb } from './db/index.js';
import { users } from './db/schema/index.js';
const [, , username, password, displayName] = process.argv;
if (!username || !password || !displayName) {
console.error('Usage: pnpm -F @localiztoi/api seed:admin <username> <password> "<displayName>"');
process.exit(1);
}
const run = async () => {
const db = getDb();
const [existing] = await db.select({ id: users.id }).from(users).where(eq(users.username, username));
if (existing) {
console.log(`L'utilisateur "${username}" existe déjà.`);
process.exit(0);
}
const passwordHash = await bcrypt.hash(password, 12);
const [created] = await db
.insert(users)
.values({ username, passwordHash, displayName })
.returning();
console.log(`Admin créé : ${created.username} (${created.displayName}) — id: ${created.id}`);
process.exit(0);
};
run().catch((err) => {
console.error('Erreur:', err);
process.exit(1);
});