Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
StephenGrider committed Jun 6, 2019
1 parent 8015fa6 commit b520d2b
Show file tree
Hide file tree
Showing 8 changed files with 118 additions and 23 deletions.
24 changes: 20 additions & 4 deletions features/decorators.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,36 @@
@classDecorator
class Boat {
@testDecorator
color: string = 'red';

@testDecorator
get formattedColor(): string {
return `This boats color is ${this.color}`;
}

@logError('Something bad!')
pilot(): void {
throw new Error();
console.log('swish');
pilot(
@parameterDecorator speed: string,
@parameterDecorator generateWake: boolean
): void {
if (speed === 'fast') {
console.log('swish');
} else {
console.log('nothing');
}
}
}

function classDecorator(constructor: typeof Boat) {
console.log(constructor);
}

function parameterDecorator(target: any, key: string, index: number) {
console.log(key, index);
}

function testDecorator(target: any, key: string) {
console.log(target.color);
console.log(key);
}

function logError(errorMessage: string) {
Expand Down
26 changes: 26 additions & 0 deletions features/metadata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import 'reflect-metadata';

@controller
class Plane {
color: string = 'red';

@get('/login')
fly(): void {
console.log('vrrrrrrr');
}
}

function get(path: string) {
return function(target: Plane, key: string) {
Reflect.defineMetadata('path', path, target, key);
};
}

function controller(target: typeof Plane) {
for (let key in target.prototype) {
const path = Reflect.getMetadata('path', target.prototype, key);
const middleware = Reflect.getMetadata('middleware', target.prototype, key);

router.get(path, middleware, target.prototype[key]);
}
}
13 changes: 13 additions & 0 deletions features/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions features/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "features",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"reflect-metadata": "^0.1.13"
}
}
23 changes: 23 additions & 0 deletions server/build/controllers/LoginController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var LoginController = /** @class */ (function () {
function LoginController() {
}
LoginController.prototype.getLogin = function (req, res) {
res.send("\n <form method=\"POST\">\n <div>\n <label>Email</label>\n <input name=\"email\" />\n </div>\n <div>\n <label>Password</label>\n <input name=\"password\" type=\"password\" />\n </div>\n <button>Submit</button>\n </form>\n ");
};
;
__decorate([
get('/login')
], LoginController.prototype, "getLogin", null);
LoginController = __decorate([
controller('/')
], LoginController);
return LoginController;
}());
3 changes: 0 additions & 3 deletions server/build/routes/loginRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ function requireAuth(req, res, next) {
}
var router = express_1.Router();
exports.router = router;
router.get('/login', function (req, res) {
res.send("\n <form method=\"POST\">\n <div>\n <label>Email</label>\n <input name=\"email\" />\n </div>\n <div>\n <label>Password</label>\n <input name=\"password\" type=\"password\" />\n </div>\n <button>Submit</button>\n </form>\n ");
});
router.post('/login', function (req, res) {
var _a = req.body, email = _a.email, password = _a.password;
if (email && password && email === 'hi@hi.com' && password === 'password') {
Expand Down
21 changes: 21 additions & 0 deletions server/src/controllers/LoginController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Router, Request, Response, NextFunction } from 'express';

@controller('/')
class LoginController {
@get('/login')
getLogin(req: Request, res: Response): void {
res.send(`
<form method="POST">
<div>
<label>Email</label>
<input name="email" />
</div>
<div>
<label>Password</label>
<input name="password" type="password" />
</div>
<button>Submit</button>
</form>
`);
});
}
16 changes: 0 additions & 16 deletions server/src/routes/loginRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,6 @@ function requireAuth(req: Request, res: Response, next: NextFunction): void {

const router = Router();

router.get('/login', (req: Request, res: Response) => {
res.send(`
<form method="POST">
<div>
<label>Email</label>
<input name="email" />
</div>
<div>
<label>Password</label>
<input name="password" type="password" />
</div>
<button>Submit</button>
</form>
`);
});

router.post('/login', (req: RequestWithBody, res: Response) => {
const { email, password } = req.body;

Expand Down

0 comments on commit b520d2b

Please sign in to comment.