UNPKG

@tradle/models

Version:
96 lines (86 loc) 2.15 kB
#!/usr/bin/env node var errs const fs = require('fs') const path = require('path') const argv = require('minimist')(process.argv.slice(2), { alias: { h: 'help', f: 'file' } }) const IDENTITY = 'tradle.Identity' const MESSAGE = 'tradle.Message' if (argv.help) { printUsage() process.exit(0) } if (!argv.file) { printUsage() process.exit(1) } var path = path.resolve(argv.file) fs.readdir(path, (err, files) => { files.forEach((f) => { let idx = f.indexOf('.json') if (idx === -1) return let fn = path + '/' + f checkAndOvewrite(fn) // let m = require(fn) // if (!m.interfaces || m.interfaces.indexOf(MESSAGE) === -1) // return // let props = m.properties // let overwrite // if (props.to && props.to.ref === IDENTITY) { // delete props.to // overwrite = true // } // if (props.from && props.from.ref === IDENTITY) { // delete props.from // overwrite = true // } // if (overwrite) { // idx = fn.indexOf('.json') // let newFn = [fn.slice(0, idx), 1, fn.slice(idx)].join('') // let content = JSON.stringify(m, 0, 2) // fs.writeFile(newFn, content, (err) => { // console.error('err:' + err); // }) // } }) }) if (errs && errs.length) { throw new Error(errs.join('\n')) } function checkAndOvewrite(fn) { let m = require(fn) if (!m.interfaces || m.interfaces.indexOf(MESSAGE) === -1) return let props = m.properties let overwrite if (props.to && props.to.ref === IDENTITY) { delete props.to overwrite = true } if (props.from && props.from.ref === IDENTITY) { delete props.from overwrite = true } if (!overwrite) return let idx = fn.indexOf('.json') let newFn = [fn.slice(0, idx), 1, fn.slice(idx)].join('') let content = JSON.stringify(m, 0, 2) fs.writeFile(newFn, content, (err) => { if (err) console.error('err:' + err); }) } function printUsage () { console.log(` Usage: Options: -h, --help print usage -f, --file file path where the model resides `) process.exit(0) }