UNPKG

dinoloop-es8

Version:

A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript

134 lines 6.84 kB
"use strict"; 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