Commit f56a8b12 authored by rockyl's avatar rockyl

方法分离

parent c676e9e1
......@@ -12,27 +12,10 @@ function compute(props, options) {
if (options) {
let option = options[key];
if (option && option.type) {
let type = option.type;
let generic;
let regResult = type.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
let {type, generic} = parseType(option.type);
switch (type) {
case 'vector2':
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? 0 : parseFloat(arr[0]),
y: arr[1] === '' ? 0 : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),
};
}
value = parseVector2(sourceValue);
break;
case 'array':
let seps = sourceValue.split(',');
......@@ -65,6 +48,39 @@ function compute(props, options) {
return result;
}
function parseType(typeStr) {
let type = typeStr, generic;
let regResult = typeStr.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
return {
type, generic,
}
}
function parseVector2(sourceValue) {
let value = sourceValue;
if (!sourceValue) {
value = {x: undefined, y: undefined};
}
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? undefined : parseFloat(arr[0]),
y: arr[1] === '' ? undefined : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),
};
}
return value;
}
function getValue(props, options, key) {
let value;
if (props.hasOwnProperty(key)) {
......@@ -76,5 +92,5 @@ function getValue(props, options, key) {
return value;
}
export { compute };
export { compute, parseType, parseVector2 };
//# sourceMappingURL=index.es.js.map
{"version":3,"file":"index.es.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet type = option.type;\n\t\t\t\tlet generic;\n\t\t\t\tlet regResult = type.match(genericRegexp);\n\t\t\t\tif (regResult) {\n\t\t\t\t\ttype = regResult[1];\n\t\t\t\t\tgeneric = regResult[3];\n\t\t\t\t}\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tif (typeof sourceValue === 'string') {\n\t\t\t\t\t\t\tlet arr = sourceValue.split(',');\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: arr[0] === '' ? 0 : parseFloat(arr[0]),\n\t\t\t\t\t\t\t\ty: arr[1] === '' ? 0 : parseFloat(arr[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (Array.isArray(sourceValue)) {\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),\n\t\t\t\t\t\t\t\ty: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"index.es.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet {type, generic} = parseType(option.type);\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tvalue = parseVector2(sourceValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nexport function parseType(typeStr) {\n\tlet type = typeStr, generic;\n\tlet regResult = typeStr.match(genericRegexp);\n\tif (regResult) {\n\t\ttype = regResult[1];\n\t\tgeneric = regResult[3];\n\t}\n\n\treturn {\n\t\ttype, generic,\n\t}\n}\n\nexport function parseVector2(sourceValue) {\n\tlet value = sourceValue;\n\tif (!sourceValue) {\n\t\tvalue = {x: undefined, y: undefined};\n\t}\n\tif (typeof sourceValue === 'string') {\n\t\tlet arr = sourceValue.split(',');\n\t\tvalue = {\n\t\t\tx: arr[0] === '' ? undefined : parseFloat(arr[0]),\n\t\t\ty: arr[1] === '' ? undefined : parseFloat(arr[1]),\n\t\t};\n\t} else if (Array.isArray(sourceValue)) {\n\t\tvalue = {\n\t\t\tx: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),\n\t\t\ty: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),\n\t\t};\n\t}\n\treturn value;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
......@@ -16,27 +16,10 @@ function compute(props, options) {
if (options) {
let option = options[key];
if (option && option.type) {
let type = option.type;
let generic;
let regResult = type.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
let {type, generic} = parseType(option.type);
switch (type) {
case 'vector2':
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? 0 : parseFloat(arr[0]),
y: arr[1] === '' ? 0 : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),
};
}
value = parseVector2(sourceValue);
break;
case 'array':
let seps = sourceValue.split(',');
......@@ -69,6 +52,39 @@ function compute(props, options) {
return result;
}
function parseType(typeStr) {
let type = typeStr, generic;
let regResult = typeStr.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
return {
type, generic,
}
}
function parseVector2(sourceValue) {
let value = sourceValue;
if (!sourceValue) {
value = {x: undefined, y: undefined};
}
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? undefined : parseFloat(arr[0]),
y: arr[1] === '' ? undefined : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),
};
}
return value;
}
function getValue(props, options, key) {
let value;
if (props.hasOwnProperty(key)) {
......@@ -81,4 +97,6 @@ function getValue(props, options, key) {
}
exports.compute = compute;
exports.parseType = parseType;
exports.parseVector2 = parseVector2;
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet type = option.type;\n\t\t\t\tlet generic;\n\t\t\t\tlet regResult = type.match(genericRegexp);\n\t\t\t\tif (regResult) {\n\t\t\t\t\ttype = regResult[1];\n\t\t\t\t\tgeneric = regResult[3];\n\t\t\t\t}\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tif (typeof sourceValue === 'string') {\n\t\t\t\t\t\t\tlet arr = sourceValue.split(',');\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: arr[0] === '' ? 0 : parseFloat(arr[0]),\n\t\t\t\t\t\t\t\ty: arr[1] === '' ? 0 : parseFloat(arr[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (Array.isArray(sourceValue)) {\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),\n\t\t\t\t\t\t\t\ty: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"index.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet {type, generic} = parseType(option.type);\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tvalue = parseVector2(sourceValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nexport function parseType(typeStr) {\n\tlet type = typeStr, generic;\n\tlet regResult = typeStr.match(genericRegexp);\n\tif (regResult) {\n\t\ttype = regResult[1];\n\t\tgeneric = regResult[3];\n\t}\n\n\treturn {\n\t\ttype, generic,\n\t}\n}\n\nexport function parseVector2(sourceValue) {\n\tlet value = sourceValue;\n\tif (!sourceValue) {\n\t\tvalue = {x: undefined, y: undefined};\n\t}\n\tif (typeof sourceValue === 'string') {\n\t\tlet arr = sourceValue.split(',');\n\t\tvalue = {\n\t\t\tx: arr[0] === '' ? undefined : parseFloat(arr[0]),\n\t\t\ty: arr[1] === '' ? undefined : parseFloat(arr[1]),\n\t\t};\n\t} else if (Array.isArray(sourceValue)) {\n\t\tvalue = {\n\t\t\tx: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),\n\t\t\ty: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),\n\t\t};\n\t}\n\treturn value;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
......@@ -18,27 +18,10 @@
if (options) {
let option = options[key];
if (option && option.type) {
let type = option.type;
let generic;
let regResult = type.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
let {type, generic} = parseType(option.type);
switch (type) {
case 'vector2':
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? 0 : parseFloat(arr[0]),
y: arr[1] === '' ? 0 : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),
};
}
value = parseVector2(sourceValue);
break;
case 'array':
let seps = sourceValue.split(',');
......@@ -71,6 +54,39 @@
return result;
}
function parseType(typeStr) {
let type = typeStr, generic;
let regResult = typeStr.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
return {
type, generic,
}
}
function parseVector2(sourceValue) {
let value = sourceValue;
if (!sourceValue) {
value = {x: undefined, y: undefined};
}
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? undefined : parseFloat(arr[0]),
y: arr[1] === '' ? undefined : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),
};
}
return value;
}
function getValue(props, options, key) {
let value;
if (props.hasOwnProperty(key)) {
......@@ -83,6 +99,8 @@
}
exports.compute = compute;
exports.parseType = parseType;
exports.parseVector2 = parseVector2;
Object.defineProperty(exports, '__esModule', { value: true });
......
{"version":3,"file":"index.umd.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet type = option.type;\n\t\t\t\tlet generic;\n\t\t\t\tlet regResult = type.match(genericRegexp);\n\t\t\t\tif (regResult) {\n\t\t\t\t\ttype = regResult[1];\n\t\t\t\t\tgeneric = regResult[3];\n\t\t\t\t}\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tif (typeof sourceValue === 'string') {\n\t\t\t\t\t\t\tlet arr = sourceValue.split(',');\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: arr[0] === '' ? 0 : parseFloat(arr[0]),\n\t\t\t\t\t\t\t\ty: arr[1] === '' ? 0 : parseFloat(arr[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (Array.isArray(sourceValue)) {\n\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\tx: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),\n\t\t\t\t\t\t\t\ty: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"index.umd.js","sources":["../src/index.js"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-27.\n */\n\nconst genericRegexp = /(\\w+)(<(\\w+)>)?/;\n\nexport function compute(props, options) {\n\tlet result = props || {};\n\tfor (let key in options) {\n\t\tlet sourceValue = getValue(result, options, key);\n\t\tlet value = sourceValue;\n\t\tif (options) {\n\t\t\tlet option = options[key];\n\t\t\tif (option && option.type) {\n\t\t\t\tlet {type, generic} = parseType(option.type);\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'vector2':\n\t\t\t\t\t\tvalue = parseVector2(sourceValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'array':\n\t\t\t\t\t\tlet seps = sourceValue.split(',');\n\t\t\t\t\t\tseps = seps.map(sep => {\n\t\t\t\t\t\t\tlet item;\n\t\t\t\t\t\t\tif (generic) {\n\t\t\t\t\t\t\t\tswitch (generic) {\n\t\t\t\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\t\t\t\titem = parseFloat(sep);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\t\t\t\t\titem = sep === 'true';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem = sep;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvalue = seps;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult[key] = value;\n\t}\n\treturn result;\n}\n\nexport function parseType(typeStr) {\n\tlet type = typeStr, generic;\n\tlet regResult = typeStr.match(genericRegexp);\n\tif (regResult) {\n\t\ttype = regResult[1];\n\t\tgeneric = regResult[3];\n\t}\n\n\treturn {\n\t\ttype, generic,\n\t}\n}\n\nexport function parseVector2(sourceValue) {\n\tlet value = sourceValue;\n\tif (!sourceValue) {\n\t\tvalue = {x: undefined, y: undefined};\n\t}\n\tif (typeof sourceValue === 'string') {\n\t\tlet arr = sourceValue.split(',');\n\t\tvalue = {\n\t\t\tx: arr[0] === '' ? undefined : parseFloat(arr[0]),\n\t\t\ty: arr[1] === '' ? undefined : parseFloat(arr[1]),\n\t\t};\n\t} else if (Array.isArray(sourceValue)) {\n\t\tvalue = {\n\t\t\tx: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),\n\t\t\ty: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),\n\t\t};\n\t}\n\treturn value;\n}\n\nfunction getValue(props, options, key) {\n\tlet value;\n\tif (props.hasOwnProperty(key)) {\n\t\tvalue = props[key];\n\t} else if (options && options[key].hasOwnProperty('default')) {\n\t\tvalue = options[key].default;\n\t}\n\n\treturn value;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
......@@ -12,27 +12,10 @@ export function compute(props, options) {
if (options) {
let option = options[key];
if (option && option.type) {
let type = option.type;
let generic;
let regResult = type.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
let {type, generic} = parseType(option.type);
switch (type) {
case 'vector2':
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? 0 : parseFloat(arr[0]),
y: arr[1] === '' ? 0 : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? 0 : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? 0 : parseFloat(sourceValue[1]),
};
}
value = parseVector2(sourceValue);
break;
case 'array':
let seps = sourceValue.split(',');
......@@ -65,6 +48,39 @@ export function compute(props, options) {
return result;
}
export function parseType(typeStr) {
let type = typeStr, generic;
let regResult = typeStr.match(genericRegexp);
if (regResult) {
type = regResult[1];
generic = regResult[3];
}
return {
type, generic,
}
}
export function parseVector2(sourceValue) {
let value = sourceValue;
if (!sourceValue) {
value = {x: undefined, y: undefined};
}
if (typeof sourceValue === 'string') {
let arr = sourceValue.split(',');
value = {
x: arr[0] === '' ? undefined : parseFloat(arr[0]),
y: arr[1] === '' ? undefined : parseFloat(arr[1]),
};
} else if (Array.isArray(sourceValue)) {
value = {
x: sourceValue[0] === '' ? undefined : parseFloat(sourceValue[0]),
y: sourceValue[1] === '' ? undefined : parseFloat(sourceValue[1]),
};
}
return value;
}
function getValue(props, options, key) {
let value;
if (props.hasOwnProperty(key)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment