提交 b4d229c3 编写于 作者: W wuyudi 提交者: ninecents

style: 🎨 use es6 to clean code

上级 8d29bd0d
// 算法来源 https://github.com/zx1262111739/JsonToDart/blob/main/index.js // 算法来源 https://github.com/zx1262111739/JsonToDart/blob/main/index.js
let keywrods = "abstract,dynamic,implements,show,as,else,import,static,assert,enum,in,super,async,export,interface,switch,await,extends,is,sync,break,external,library,this,case,factory,mixin,throw,catch,false,new,true,class,final,null,try,const,finally,on,typedef,continue,for,operator,var,covariant,Function,part,void,default,get,rethrow,while,deferred,hide,return,with,do,if,set,yield,List"; let keywrods = "abstract,dynamic,implements,show,as,else,import,static,assert,enum,in,super,async,export,interface,switch,await,extends,is,sync,break,external,library,this,case,factory,mixin,throw,catch,false,new,true,class,final,null,try,const,finally,on,typedef,continue,for,operator,var,covariant,Function,part,void,default,get,rethrow,while,deferred,hide,return,with,do,if,set,yield,List";
let keywrodList = keywrods.split(","); let keywrodList = keywrods.split(",");
const caption = (s) => s[0].toUpperCase() + s.substring(1);
// 生成属性名 // 生成属性名
const generatePropertyName = function (name) { const generatePropertyName = (name) => {
let nameParts = name.split("_"); let nameParts = name.split("_");
let output = nameParts[0]; let output = nameParts[0];
for (let index = 1; index < nameParts.length; index++) { for (let index = 1; index < nameParts.length; index++) {
output += nameParts[index].substring(0, 1).toUpperCase() + nameParts[index].substring(1) output += caption(nameParts[index])
} }
if (keywrodList.indexOf(output) != -1) { if (keywrodList.includes(output)) {
output = "m" + output.substring(0, 1).toUpperCase() + output.substring(1); output = "m" + caption(output);
} }
return output; return output;
} }
// 生成类名 // 生成类名
const generateClassName = function (name) { const generateClassName = (name) => {
let nameParts = name.split("_"); return name.split("_").map(caption).join("");
let output = "";
for (let index = 0; index < nameParts.length; index++) {
output += nameParts[index].substring(0, 1).toUpperCase() + nameParts[index].substring(1)
}
return output;
} }
const convertObjectToClass = function (className, obj) { const convertObjectToClass = (className, obj) => {
let propers = []; let propers = [];
let subClass = []; let subClass = [];
for (let key in obj) { for (let key in obj) {
...@@ -91,11 +84,11 @@ const convertObjectToClass = function (className, obj) { ...@@ -91,11 +84,11 @@ const convertObjectToClass = function (className, obj) {
if (propertyType !== "") { if (propertyType !== "") {
propers.push({ propers.push({
"key": key, key,
"propertyName": generatePropertyName(key), "propertyName": generatePropertyName(key),
"propertyType": propertyType, propertyType,
"isSubclass": isSubclass, isSubclass,
"isArray": isArray, isArray,
}); });
} }
...@@ -200,6 +193,4 @@ const convertObjectToClass = function (className, obj) { ...@@ -200,6 +193,4 @@ const convertObjectToClass = function (className, obj) {
return output; return output;
} }
export default (json, typename) => { export default (json, typename) => convertObjectToClass(typename, json)
return convertObjectToClass(typename, json)
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册