vue-di-kit
Version:
Vue Dependency Injection Kit
59 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
var argumenter_1 = require("@joejukan/argumenter");
var classification_1 = require("../classification");
function Prop() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
var type = argue.function;
var options = argue.object || { type: type };
return function (target, key) {
if (!/null|undefined/.test(typeof options.default)) {
options.default = target[key];
}
var property = new classification_1.Property(options);
Reflect.defineMetadata(key, property, target);
};
}
exports.Prop = Prop;
function p() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
var type = argue.function;
var value = undefined;
if (!type) {
value = argue.string || argue.number || argue.boolean || argue.object;
switch (typeof value) {
case 'string':
type = String;
break;
case 'number':
type = Number;
break;
case 'boolean':
type = Boolean;
break;
case 'function':
type = Function;
break;
default:
type = value['constructor'];
break;
}
}
var options = argue.object || {};
options.type = type;
if (/null|undefined/.test(typeof options.default)) {
options.default = value;
}
return new classification_1.Property(options);
}
exports.p = p;
//# sourceMappingURL=prop.js.map