12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const fs = require('fs')
- const _mappings = () => {
- const models = ['save']
- for(const model of models) {
- _mapping(model)
- }
- }
- const _mapping = modelName => {
- const json = `json/${modelName}.json`
- const sql = `sql/${modelName}.sql`
- const modelObj = _getModelObj(json)
- const sqls = []
- _conver(sqls, modelObj, '')
- saveSql(sql, sqls)
- console.log(sqls)
- }
- const _getModelObj = uri => {
- const data = fs.readFileSync(uri)
- return JSON.parse(data)
- }
- const _conver = (sqls, obj, pKey) => {
- const sql = []
- for(const key in obj) {
- // 内置字段
- if(key.startsWith('_') && typeof obj[key] !== 'object') {
- continue
- }
- if(obj[key] instanceof Array) {
- sqls.push({
- key, pKey, type: 'Array'
- })
- for(const item of obj[key]) {
- sqls.push({
- key: key + '-object', pKey: key, type: 'object'
- })
- _conver(sqls,item, key + '-object')
- }
- continue
- }
- if(typeof obj[key] === 'object') {
- sqls.push({
- key, pKey, type: 'object'
- })
- _conver(sqls, obj[key], key)
- continue
- }
- sqls.push({
- key, pKey, type: 'element', name: obj[key],
- })
- }
- }
- const saveSql = (uri, sqls) => {
- let sql = `insert into mapping(key, pKey, type, name) values `
- sql += sqls.map(item => {
- return `("${item.key}","${item.pKey}","${item.type}","${item.name || ''}")`
- }).join(',')
- sql += ';'
- fs.writeFileSync(uri, sql)
- }
- _mappings()
|