diff --git a/packages/restful/package.json b/packages/restful/package.json new file mode 100644 index 0000000..ae97901 --- /dev/null +++ b/packages/restful/package.json @@ -0,0 +1,11 @@ +{ + "name": "@autoplex/restful", + "version": "0.0.0", + "main": "dist/lib/index.js", + "types": "dist/typings/index.d.ts", + "license": "MIT", + "scripts": { + "build": "yarn run clean && tsc", + "clean": "rimraf ./dist" + } +} diff --git a/packages/restful/src/index.ts b/packages/restful/src/index.ts new file mode 100644 index 0000000..8065541 --- /dev/null +++ b/packages/restful/src/index.ts @@ -0,0 +1,51 @@ +/** + * The basic response schema + */ + export interface IResponse { + result?: T, + status : string +} + +/** + * Supported status codes + */ +export enum Status { + Ok = 200, + BadRequest = 400, + Unauthorized = 401, + Forbidden = 403, + NotFound = 404, + Conflict = 409, + Gone = 410, + PayloadTooLarge = 413, + UnprocessableEntity = 422, + InternalServerError = 500 +} + +/** + * Create a response + */ +export function statusMessage(status: Status): string { + switch(status) { + case Status.Ok: + return "OK" + case Status.BadRequest: + return "Bad Request"; + case Status.Unauthorized: + return "Unauthorized"; + case Status.Forbidden: + return "Forbidden"; + case Status.NotFound: + return "Not Found"; + case Status.Conflict: + return "Conflict"; + case Status.Gone: + return "Gone"; + case Status.PayloadTooLarge: + return "Payload Too Large"; + case Status.UnprocessableEntity: + return "Unprocessable Entity"; + case Status.InternalServerError: + return "Internal Server Error"; + } +} diff --git a/packages/restful/tsconfig.json b/packages/restful/tsconfig.json new file mode 100644 index 0000000..595f8fd --- /dev/null +++ b/packages/restful/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.package.json", + "compilerOptions": { + "outDir": "./dist/lib", + "declarationDir": "./dist/typings" + } +}