2021-12-13 15:34:37 -03:00
import { PrismaClient } from '@prisma/client'
2021-12-15 14:05:27 -03:00
import { hashSync } from 'bcryptjs'
2021-12-18 00:50:54 -03:00
import cuid from 'cuid'
2021-12-15 14:05:27 -03:00
import dotenv from 'dotenv'
2021-12-13 15:34:37 -03:00
const prisma = new PrismaClient ()
2021-12-15 14:05:27 -03:00
dotenv . config ({
path : './.env'
})
2021-12-13 15:34:37 -03:00
async function main() {
const data = {
settings : {
avatar : '/avatar.jpeg' ,
name : 'John Doe' ,
description :
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget aliquam consectetur, nisl nunc aliquet nunc, euismod aliquam nunc nisl euismod.' ,
font : 'baloo' ,
buttonsSchema : 'rounded' ,
outline : true ,
colors : {
texts : 'neutral50' ,
socialLinks : 'rose' ,
buttonLinks : 'rose' ,
background : 'neutral700'
}
},
socialLinks : [
{
label : 'Email' ,
href : '1'
},
{
label : 'GitHub' ,
href : '2'
},
{
label : 'LinkedIn' ,
href : '3'
},
{
label : 'Dev' ,
href : '4'
},
{
label : 'Instagram' ,
href : '5'
},
{
label : 'WhatsApp' ,
href : '6'
}
],
buttonLinks : [
{
2021-12-18 00:50:54 -03:00
id : cuid (),
2021-12-13 15:34:37 -03:00
label : 'Home' ,
href : '#'
},
{
2021-12-18 00:50:54 -03:00
id : cuid (),
2021-12-13 15:34:37 -03:00
label : 'About' ,
2021-12-18 00:50:54 -03:00
href : '#'
2021-12-13 15:34:37 -03:00
},
{
2021-12-18 00:50:54 -03:00
id : cuid (),
2021-12-13 15:34:37 -03:00
label : 'Contact' ,
2021-12-18 00:50:54 -03:00
href : '#'
2021-12-13 15:34:37 -03:00
}
]
}
2021-12-15 08:11:58 -03:00
const hasData = await prisma . data . findUnique ({
2021-12-15 14:05:27 -03:00
where : { id : 1 }
2021-12-15 08:11:58 -03:00
})
2021-12-13 15:34:37 -03:00
if ( ! hasData ) {
console . log ( `Start seeding...` )
await prisma . data . create ({
2021-12-15 08:11:58 -03:00
data : {
id : 1 ,
data : JSON.stringify ( data )
}
2021-12-13 15:34:37 -03:00
})
}
2021-12-15 14:05:27 -03:00
const hasUser = await prisma . user . findFirst ()
if ( ! hasUser ) {
console . log ( `Start seeding user...` )
const { USERNAME , PASSWORD } = process . env
if ( ! USERNAME || ! PASSWORD ) {
throw new Error ( 'USERNAME and PASSWORD env variables are required' )
}
await prisma . user . create ({
data : {
username : USERNAME ,
password : hashSync ( PASSWORD , 10 ),
role : 'ADMIN'
}
})
}
2021-12-13 15:34:37 -03:00
}
main ()
. catch ( e => {
console . error ( e )
process . exit ( 1 )
})
. finally ( async () => {
await prisma . $disconnect ()
})