dinoloop-es8
Version:
A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript
134 lines • 6.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const metadata_1 = require("../modules/metadata");
const utility_1 = require("../modules/utility");
const parse_handlers_1 = require("../modules/builtin/parse_handlers");
/**
* Decorate on Action Parameters to validate and transform the values
* @Throws InvalidArgumentException
*/
function Parse(cb, data) {
return metadata_1.AttributeMetadata.parse(cb, data, false);
}
exports.Parse = Parse;
/**
* Decorate on Action Parameters to validate and transform the query parameters
* @Throws InvalidArgumentException
*/
function QueryParam(cb, data) {
return metadata_1.AttributeMetadata.parse(utility_1.DataUtility.isUndefined(cb) ? parse_handlers_1.toValue : cb, data, true);
}
exports.QueryParam = QueryParam;
/**
* Decorate on Action Parameters to transform values to Number
*/
function BindNumber() {
return metadata_1.AttributeMetadata.parse(parse_handlers_1.toNumber, undefined, false);
}
exports.BindNumber = BindNumber;
/**
* Decorate on Action Parameters to transform values to Boolean
*/
function BindBoolean() {
return metadata_1.AttributeMetadata.parse(parse_handlers_1.toBoolean, undefined, false);
}
exports.BindBoolean = BindBoolean;
/**
* Decorate on Action Parameters to transform values to Integer
*/
function BindInteger() {
return metadata_1.AttributeMetadata.parse(parse_handlers_1.toInteger, undefined, false);
}
exports.BindInteger = BindInteger;
/**
* Decorate on Action Parameters to validate against RegExp
*/
function BindRegExp(regex) {
return metadata_1.AttributeMetadata.parse(parse_handlers_1.toRegExp, regex, false);
}
exports.BindRegExp = BindRegExp;
// if an API action wants to send response on its own, decorate @SendsResponse()
// this is used when action method directly sends response using express response object.
// ex: like read, download file contents must be decorated with @SendsResponse
// actions having @SendsResponse recommended to have void return type since return value is ignored
/**
* Decorate on API actions that sends response using response object
*/
function SendsResponse() {
return metadata_1.AttributeMetadata.sendsResponse();
}
exports.SendsResponse = SendsResponse;
// if an API action is async in nature, action should be decorated with @Async
// this is required to notify dino since action modifiers are not available at runtime in javascript
/**
* Decorate on async API actions
*/
function Async() {
return metadata_1.AttributeMetadata.asyncAttr();
}
exports.Async = Async;
/**
* Responds to HttpGet
* @Throws InvalidRouteException
*/
function HttpGet(route) {
return metadata_1.AttributeMetadata.httpGet(route);
}
exports.HttpGet = HttpGet;
/**
* Responds to HttpPost
* @Throws InvalidRouteException
*/
function HttpPost(route) {
return metadata_1.AttributeMetadata.httpPost(route);
}
exports.HttpPost = HttpPost;
/**
* Responds to HttpDelete
* @Throws InvalidRouteException
*/
function HttpDelete(route) {
return metadata_1.AttributeMetadata.httpDelete(route);
}
exports.HttpDelete = HttpDelete;
/**
* Responds to HttpPatch
* @Throws InvalidRouteException
*/
function HttpPatch(route) {
return metadata_1.AttributeMetadata.httpPatch(route);
}
exports.HttpPatch = HttpPatch;
/**
* Responds to HttpPut
* @Throws InvalidRouteException
*/
function HttpPut(route) {
return metadata_1.AttributeMetadata.httpPut(route);
}
exports.HttpPut = HttpPut;
/**
* Responds to HttpHead
* @Throws InvalidRouteException
*/
function HttpHead(route) {
return metadata_1.AttributeMetadata.httpHead(route);
}
exports.HttpHead = HttpHead;
/**
* Responds to HttpAll
* @Throws InvalidRouteException
*/
function HttpAll(route) {
return metadata_1.AttributeMetadata.httpAll(route);
}
exports.HttpAll = HttpAll;
/**
* Decorate on API Controller
* @Throws InvalidRouteException
*/
function Controller(prefix, attr) {
return metadata_1.AttributeMetadata.controller(prefix, attr);
}
exports.Controller = Controller;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYXR0cmlidXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGtEQUF3RDtBQUN4RCxnREFBaUQ7QUFDakQsc0VBTTJDO0FBRTNDOzs7R0FHRztBQUNILGVBQXNCLEVBQWlCLEVBQUUsSUFBVTtJQUUvQyxPQUFPLDRCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFIRCxzQkFHQztBQUVEOzs7R0FHRztBQUNILG9CQUEyQixFQUFrQixFQUFFLElBQVU7SUFFckQsT0FBTyw0QkFBaUIsQ0FBQyxLQUFLLENBQzFCLHFCQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFKRCxnQ0FJQztBQUVEOztHQUVHO0FBQ0g7SUFFSSxPQUFPLDRCQUFpQixDQUFDLEtBQUssQ0FBQyx5QkFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBSEQsZ0NBR0M7QUFFRDs7R0FFRztBQUNIO0lBRUksT0FBTyw0QkFBaUIsQ0FBQyxLQUFLLENBQUMsMEJBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUhELGtDQUdDO0FBRUQ7O0dBRUc7QUFDSDtJQUVJLE9BQU8sNEJBQWlCLENBQUMsS0FBSyxDQUFDLDBCQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFIRCxrQ0FHQztBQUVEOztHQUVHO0FBQ0gsb0JBQTJCLEtBQWE7SUFFcEMsT0FBTyw0QkFBaUIsQ0FBQyxLQUFLLENBQUMseUJBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUhELGdDQUdDO0FBRUQsZ0ZBQWdGO0FBQ2hGLHlGQUF5RjtBQUN6Riw4RUFBOEU7QUFDOUUsbUdBQW1HO0FBQ25HOztHQUVHO0FBQ0g7SUFDSSxPQUFPLDRCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFGRCxzQ0FFQztBQUVELDhFQUE4RTtBQUM5RSxvR0FBb0c7QUFDcEc7O0dBRUc7QUFDSDtJQUNJLE9BQU8sNEJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekMsQ0FBQztBQUZELHNCQUVDO0FBRUQ7OztHQUdHO0FBQ0gsaUJBQXdCLEtBQXNCO0lBQzFDLE9BQU8sNEJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFGRCwwQkFFQztBQUVEOzs7R0FHRztBQUNILGtCQUF5QixLQUFzQjtJQUMzQyxPQUFPLDRCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRkQsNEJBRUM7QUFFRDs7O0dBR0c7QUFDSCxvQkFBMkIsS0FBc0I7SUFDN0MsT0FBTyw0QkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUZELGdDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsbUJBQTBCLEtBQXNCO0lBQzVDLE9BQU8sNEJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFGRCw4QkFFQztBQUVEOzs7R0FHRztBQUNILGlCQUF3QixLQUFzQjtJQUMxQyxPQUFPLDRCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRkQsMEJBRUM7QUFFRDs7O0dBR0c7QUFDSCxrQkFBeUIsS0FBc0I7SUFDM0MsT0FBTyw0QkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUZELDRCQUVDO0FBRUQ7OztHQUdHO0FBQ0gsaUJBQXdCLEtBQXNCO0lBQzFDLE9BQU8sNEJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFGRCwwQkFFQztBQUVEOzs7R0FHRztBQUNILG9CQUEyQixNQUFjLEVBQUUsSUFBMkI7SUFDbEUsT0FBTyw0QkFBaUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFGRCxnQ0FFQyJ9