(sandbox: Sandbox)
| 18 | |
| 19 | export function createDBProvisioner(deps: DBProvisionerDeps) { |
| 20 | async function needsDB(sandbox: Sandbox): Promise<boolean> { |
| 21 | const result = await sandbox.readFile('/workspace/package.json'); |
| 22 | if (!result.success) { |
| 23 | logger.debug('needsDB: package.json not found'); |
| 24 | return false; |
| 25 | } |
| 26 | try { |
| 27 | const pkg = JSON.parse(result.content) as { |
| 28 | dependencies?: Record<string, string>; |
| 29 | devDependencies?: Record<string, string>; |
| 30 | }; |
| 31 | const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; |
| 32 | const found = '@kilocode/app-builder-db' in allDeps; |
| 33 | logger.debug(found ? 'needsDB: dependency found' : 'needsDB: dependency not in package.json'); |
| 34 | return found; |
| 35 | } catch (error) { |
| 36 | logger.warn('needsDB: failed to parse package.json', formatError(error)); |
| 37 | return false; |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | async function provisionDB(appId: string): Promise<void> { |
| 42 | logger.info('Provisioning database'); |
no test coverage detected