Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export async function buildClient({
datamodel,
prismaYmlPath,
transpile = false,
runtimePath = './runtime',
browser = false,
}: BuildClientOptions): Promise> {
const fileMap = {}
const prismaConfig = prismaYmlPath ? await fs.readFile(prismaYmlPath, 'utf-8') : undefined
const internalDatamodelJson =
process.env.PRISMA_INTERNAL_DATAMODEL_JSON ||
(await getInternalDatamodelJson(datamodel, path.join(__dirname, '../../runtime/schema-inferrer-bin')))
if (process.env.PRISMA_INTERNAL_DATAMODEL_JSON) {
console.log(`Taking cached datamodel json`)
}
const dmmf = getDMMF(datamodel)
const client = new TSClient({
document: dmmf,
prismaYmlPath,
prismaConfig,
datamodel,
datamodelJson: internalDatamodelJson,
runtimePath,
browser,
})
const generatedClient = String(client)
export async function generateClient(datamodel: string, prismaYmlPath: string, outputDir: string) {
if (!(await fs.pathExists(prismaYmlPath))) {
throw new Error(`Provided prisma.yml path ${prismaYmlPath} does not exist`)
}
const prismaConfig = await fs.readFile(prismaYmlPath, 'utf-8')
const internalDatamodelJson = await getInternalDatamodelJson(
datamodel,
path.join(__dirname, '../../runtime/schema-inferrer-bin'),
)
await fs.mkdirp(outputDir)
const client = new TSClient(getDMMF(datamodel), prismaYmlPath, prismaConfig, datamodel, internalDatamodelJson)
const generatedClient = String(client)
await fs.copy(path.join(__dirname, '../../runtime'), path.join(outputDir, '/runtime'))
await fs.writeFile(path.join(outputDir, 'index.ts'), generatedClient)
}