Add rondo exportDir script
This commit is contained in:
parent
b9e043e39e
commit
92c93db822
28
packages/scripts/src/scripts/exportDir.ts
Normal file
28
packages/scripts/src/scripts/exportDir.ts
Normal 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)
|
||||
}
|
||||
@ -1,3 +1,4 @@
|
||||
export * from './add'
|
||||
export * from './build'
|
||||
export * from './exportDir'
|
||||
export * from './intergen'
|
||||
|
||||
@ -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)
|
||||
Loading…
x
Reference in New Issue
Block a user