@tradle/models
Version:
models for tradle apps
96 lines (86 loc) • 2.15 kB
JavaScript
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)
}