Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const CreateDatabaseDialog: React.FC = ({ connectionString, action, onDone, schemaDir }) => {
const [creating, setCreating] = useState(false)
async function onSelect(shouldCreate: boolean) {
if (shouldCreate) {
setCreating(true)
await createDatabase(connectionString, schemaDir)
setCreating(false)
onDone()
} else {
process.exit(0)
}
}
const credentials = uriToCredentials(connectionString)
const dbName = credentials.database
const dbType =
credentials.type === 'mysql'
? 'MySQL'
: credentials.type === 'postgresql'
? 'PostgreSQL'
: credentials.type === 'sqlite'
? 'Sqlite'
: credentials.type
const schemaWord = 'database'
return (
{action === 'dev' ? (
setDbCredentials(store, dbCredentials: Partial) {
if (Object.keys(dbCredentials).length === 1 && dbCredentials.type) {
store.setState({ dbCredentials })
} else if (dbCredentials.uri) {
if (dbCredentials.uri.length < 7) {
store.setState({ dbCredentials: { uri: dbCredentials.uri } })
} else {
try {
const credentials = uriToCredentials(dbCredentials.uri)
store.setState({
dbCredentials: { uri: dbCredentials.uri, ...credentials },
})
} catch (e) {
store.setState({ dbCredentials: { uri: dbCredentials.uri } })
}
}
} else {
const merged = { ...store.state.dbCredentials, ...dbCredentials }
const uri = !credentialsHaveValue(merged) ? '' : credentialsToUri(merged)
store.setState({ dbCredentials: { ...merged, uri } })
}
},
}
export async function canConnectToDatabase(
connectionString: string,
cwd = process.cwd(),
migrationEnginePath?: string,
): Promise {
const credentials = uriToCredentials(connectionString)
if (credentials.type === 'sqlite') {
const sqliteExists = await doesSqliteDbExist(connectionString)
if (sqliteExists) {
return true
} else {
return {
code: 'P1003',
message: "Sqlite DB file doesn't exist",
}
}
}
migrationEnginePath = migrationEnginePath || (await getMigrationEnginePath())
try {
await execa(migrationEnginePath, ['cli', '--datasource', connectionString, '--can_connect_to_database'], {