@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
58 lines (47 loc) • 1.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.caseKeyName = caseKeyName;
exports.UPPER_CAMEL = exports.LOWER_CAMEL = exports.UPPER_SNAKE = exports.LOWER_SNAKE = void 0;
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var LOWER_SNAKE = 'LOWER_SNAKE';
exports.LOWER_SNAKE = LOWER_SNAKE;
var UPPER_SNAKE = 'UPPER_SNAKE';
exports.UPPER_SNAKE = UPPER_SNAKE;
var LOWER_CAMEL = 'LOWER_CAMEL';
exports.LOWER_CAMEL = LOWER_CAMEL;
var UPPER_CAMEL = 'UPPER_CAMEL';
exports.UPPER_CAMEL = UPPER_CAMEL;
function caseKeyName(key) {
var _this = this;
var caseForm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LOWER_CAMEL;
var hyphenateRE = null;
switch (caseForm) {
case LOWER_CAMEL:
hyphenateRE = /_\D/g;
key = (key + '').replace(hyphenateRE, function (match) {
(0, _newArrowCheck2["default"])(this, _this);
return match.charAt(1).toUpperCase();
}.bind(this));
key = key[0].toLowerCase() + key.substr(1, key.length - 1);
break;
case UPPER_SNAKE:
hyphenateRE = /_\D/g;
key = ("_" + key).replace(hyphenateRE, function (match) {
(0, _newArrowCheck2["default"])(this, _this);
return match.charAt(1).toUpperCase();
}.bind(this));
break;
case LOWER_SNAKE:
hyphenateRE = /\B([A-Z])/g;
key = key.replace(hyphenateRE, '_$1').toLowerCase();
break;
case UPPER_CAMEL:
hyphenateRE = /\B([A-Z])/g;
key = key.replace(hyphenateRE, '_$1').toUpperCase();
break;
}
return key;
}