@xpresser/abolish
Version:
Using Abolish validator in Xpresserjs
79 lines (78 loc) • 2.62 kB
JavaScript
;
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _RoutesGuard_rules;
Object.defineProperty(exports, "__esModule", { value: true });
const exports_1 = require("object-collection/exports");
const index_1 = require("./index");
class RoutesGuard {
constructor(useCompiledRules = false) {
this.useCompiledRules = useCompiledRules;
_RoutesGuard_rules.set(this, (0, exports_1.Obj)({}));
}
/**
* Merge multiple abolish routes instances
* @param sources
*/
static many(sources) {
if (!Array.isArray(sources)) {
return new RoutesGuard().merge(sources);
}
// Create new instance and merge all sources
const guard = new RoutesGuard();
sources.forEach((source) => guard.merge(source));
return guard;
}
/**
* Validate Post Request
* @param action
* @param rules
*/
post(action, rules) {
__classPrivateFieldGet(this, _RoutesGuard_rules, "f").path("POST").set(action, rules);
return this;
}
/**
* Validate Put Request
* @param action
* @param rules
*/
put(action, rules) {
__classPrivateFieldGet(this, _RoutesGuard_rules, "f").path("PUT").set(action, rules);
return this;
}
/**
* Validate Patch Request
* @param action
* @param rules
*/
patch(action, rules) {
__classPrivateFieldGet(this, _RoutesGuard_rules, "f").path("PATCH").set(action, rules);
return this;
}
/**
* Merge another Abolish Route Instance.
* @param source
*/
merge(source) {
__classPrivateFieldGet(this, _RoutesGuard_rules, "f").merge(source instanceof RoutesGuard ? source.compileRules() : source);
return this;
}
/**
* Return rules data
*/
rules() {
return __classPrivateFieldGet(this, _RoutesGuard_rules, "f").data;
}
/**
* Compile rules
*/
compileRules() {
return (0, index_1.CompileRouteRules)(__classPrivateFieldGet(this, _RoutesGuard_rules, "f").data, this.useCompiledRules);
}
}
_RoutesGuard_rules = new WeakMap();
exports.default = RoutesGuard;