Add rondo exportDir script

This commit is contained in:
Jerko Steiner 2019-08-27 21:25:19 +07:00
parent b9e043e39e
commit 92c93db822
3 changed files with 29 additions and 15 deletions

View File

@ -0,0 +1,28 @@
import * as fs from 'fs'
import {argparse, arg} from '@rondo.dev/argparse'
import {join} from 'path'
export async function exportDir(...argv: string[]) {
const args = argparse({
project: arg('string', {default: '.', positional: true}),
dir: arg('string', {default: 'src/migrations'}),
out: arg('string', {default: 'src/migrations/index.ts'}),
help: arg('boolean', {alias: 'h'}),
})
.parse(argv)
const dir = join(args.project, args.dir)
const out = join(args.project, args.out)
const index = '// This file has been autogenerated by exportDir script\n' +
fs.readdirSync(dir)
.filter(item => item.endsWith('.ts') && !item.endsWith('index.ts'))
.map(item => item.replace(/\.ts$/, ''))
.sort()
.map(item => `export * from './${item}'\n`)
.reduce((str, item) => str += item, '')
// tslint:disable-next-line
console.log('Writing to %s', out)
fs.writeFileSync(join(dir, 'index.ts'), index)
}

View File

@ -1,3 +1,4 @@
export * from './add'
export * from './build'
export * from './exportDir'
export * from './intergen'

View File

@ -1,15 +0,0 @@
const fs = require('fs')
const path = require('path')
const dir = process.argv[2]
const index = fs.readdirSync(dir)
.filter(item => item.endsWith('.ts') && !item.endsWith('index.ts'))
.map(item => item.replace(/\.ts$/, ''))
.sort()
.map(item => `export * from './${item}'\n`)
.reduce((str, item) => str += item, '')
const out = path.join(dir, 'index.ts')
console.log('Writing to %s', out)
fs.writeFileSync(path.join(dir, 'index.ts'), index)