From 745834848fb5a1600d81652a0dc7e7e24dbf62dd Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Fri, 2 Aug 2019 22:39:04 +0700 Subject: [PATCH] Add createMigration task --- packages/scripts/src/Subprocess.ts | 3 ++- packages/scripts/src/commands/build.ts | 13 ++++++++++++- packages/scripts/src/run.ts | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/scripts/src/Subprocess.ts b/packages/scripts/src/Subprocess.ts index a8fa937..211bc74 100644 --- a/packages/scripts/src/Subprocess.ts +++ b/packages/scripts/src/Subprocess.ts @@ -15,13 +15,14 @@ export class Subprocess { public readonly stdio: StdioOptions = StdioOptions.PIPE, ) {} - async run() { + async run(cwd?: string) { return new Promise((resolve, reject) => { process.stderr.write(`> ${this.command} ${this.args.join(' ')}\n`) const subprocess = spawn(this.command, this.args, { shell: false, stdio: this.stdio, env: this.environment, + cwd, }) if (this.stdio === StdioOptions.PIPE) { diff --git a/packages/scripts/src/commands/build.ts b/packages/scripts/src/commands/build.ts index 17f46c1..cfe5908 100644 --- a/packages/scripts/src/commands/build.ts +++ b/packages/scripts/src/commands/build.ts @@ -1,5 +1,6 @@ import {run} from '../run' import {join} from 'path' +import {findNodeModules} from '../modules' import * as fs from 'fs' import * as p from 'path' @@ -38,7 +39,17 @@ export async function exec(file: string) { '--project', findTsConfig(file), ] : [] - return run(command, [...args, file]) + await run(command, [...args, file]) +} + +export async function createMigration(project: string, name: string) { + const typeorm = findNodeModules(project) + .map(nm => p.join(nm, 'typeorm')) + .find(t => fs.existsSync(t)) + if (!typeorm) { + throw new Error('typeorm not found') + } + await run('ts-node', [typeorm, 'migration:create', '--name', name], project) } function findTsConfig(file: string): string { diff --git a/packages/scripts/src/run.ts b/packages/scripts/src/run.ts index 67fbd00..dfb90b5 100644 --- a/packages/scripts/src/run.ts +++ b/packages/scripts/src/run.ts @@ -1,10 +1,10 @@ import {Subprocess} from './Subprocess' import {getPathVariable} from './modules' -export async function run(command: string, args: string[]) { +export async function run(command: string, args: string[], cwd?: string) { return new Subprocess(command, args, { ...process.env, PATH: getPathVariable(), }) - .run() + .run(cwd) }