import fileUtil = require("./tool/FileUtil"); import fs = require("fs"); import path = require("path"); class JsonYS { private _fixed = 2; constructor(args:any[]) { let self = this; let baseUrl:string; let fixed:number; if(args[1]) { if(isNaN(args[1])) { baseUrl = args[1]; fixed = Number(args[2]) || 2; } else { baseUrl = process.cwd(); fixed = Number(args[1]) || 2; } } else { baseUrl = process.cwd(); fixed = 2; } self._fixed = fixed; fileUtil.FileUtil.walkDir(baseUrl, self.onFile, null, self); } private onFile(url: string): void { let self = this; if (path.extname(url) != ".json") return; let data = JSON.parse(fs.readFileSync(url, 'utf-8')); self.transNumJson(data); fs.writeFileSync(url, JSON.stringify(data)); } private transNumJson(data:any):void{ for(let key in data) { if(data[key] instanceof Object || data[key] instanceof Array) { this.transNumJson(data[key]); } else { if(typeof(data[key]) == 'number') { let bs = Math.pow(10,this._fixed); data[key] = Math.round(data[key] * bs) / bs; } } } } } export function run(args:any[]): void { new JsonYS(args); }