express-generator-typescript 2.0.14 → 2.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,38 @@
1
+ ## About
2
+
3
+ This project was created with [express-generator-typescript](https://github.com/seanpmaxwell/express-generator-typescript).
4
+
5
+
6
+ ## Available Scripts
7
+
8
+ ### `npm run dev`
9
+
10
+ Run the server in development mode.
11
+
12
+ ### `npm test`
13
+
14
+ Run all unit-tests with hot-reloading.
15
+
16
+ ### `npm test -- --testFile="name of test file" (i.e. --testFile=Users).`
17
+
18
+ Run a single unit-test.
19
+
20
+ ### `npm run test:no-reloading`
21
+
22
+ Run all unit-tests without hot-reloading.
23
+
24
+ ### `npm run lint`
25
+
26
+ Check for linting errors.
27
+
28
+ ### `npm run build`
29
+
30
+ Build the project for production.
31
+
32
+ ### `npm start`
33
+
34
+ Run the production build (Must be built first).
35
+
36
+ ### `npm start -- --env="name of env file" (default is production).`
37
+
38
+ Run production build with a different env file.
@@ -1,13 +1,13 @@
1
1
  import bcrypt from 'bcrypt';
2
2
  import StatusCodes from 'http-status-codes';
3
3
  import supertest, { SuperTest, Test, Response } from 'supertest';
4
+ import logger from 'jet-logger';
4
5
 
5
6
  import app from '@server';
6
7
  import userRepo from '@repos/user-repo';
7
8
  import envVars from '@shared/env-vars';
8
9
  import User, { UserRoles } from '@models/user-model';
9
10
  import { p as paths } from '@routes/auth-router';
10
- import { pErr } from '@shared/functions';
11
11
  import { pwdSaltRounds } from 'spec/support/login-agent';
12
12
  import { UnauthorizedError } from '@shared/errors';
13
13
 
@@ -37,7 +37,7 @@ const msgs = {
37
37
  const loginCreds = {
38
38
  email: 'jsmith@gmail.com',
39
39
  password: 'Password@1',
40
- } as const;
40
+ } as const;
41
41
 
42
42
 
43
43
  // **** Types **** //
@@ -73,7 +73,7 @@ describe('auth-router', () => {
73
73
  // Call API
74
74
  callApi(loginCreds)
75
75
  .end((err: Error, res: Response) => {
76
- pErr(err);
76
+ !!err && logger.err(err);
77
77
  expect(res.status).toBe(OK);
78
78
  const cookie = res.headers['set-cookie'][0];
79
79
  expect(cookie).toContain(envVars.cookieProps.key);
@@ -86,7 +86,7 @@ describe('auth-router', () => {
86
86
  spyOn(userRepo, 'getOne').and.returnValue(Promise.resolve(null));
87
87
  callApi(loginCreds)
88
88
  .end((err: Error, res: Response) => {
89
- pErr(err);
89
+ !!err && logger.err(err);
90
90
  expect(res.status).toBe(UNAUTHORIZED);
91
91
  expect(res.body.error).toBe(UnauthorizedError.Msg);
92
92
  done();
@@ -102,7 +102,7 @@ describe('auth-router', () => {
102
102
  // Call API
103
103
  callApi(loginCreds)
104
104
  .end((err: Error, res: Response) => {
105
- pErr(err);
105
+ !!err && logger.err(err);
106
106
  expect(res.status).toBe(UNAUTHORIZED);
107
107
  expect(res.body.error).toBe(UnauthorizedError.Msg);
108
108
  done();
@@ -114,7 +114,7 @@ describe('auth-router', () => {
114
114
  spyOn(userRepo, 'getOne').and.throwError('Database query failed.');
115
115
  callApi(loginCreds)
116
116
  .end((err: Error, res: Response) => {
117
- pErr(err);
117
+ !!err && logger.err(err);
118
118
  expect(res.status).toBe(BAD_REQUEST);
119
119
  expect(res.body.error).toBeTruthy();
120
120
  done();
@@ -129,7 +129,7 @@ describe('auth-router', () => {
129
129
  it(msgs.goodLogout, (done) => {
130
130
  agent.get(logoutPath)
131
131
  .end((err: Error, res: Response) => {
132
- pErr(err);
132
+ !!err && logger.err(err);
133
133
  expect(res.status).toBe(OK);
134
134
  done();
135
135
  });
@@ -1,11 +1,12 @@
1
1
  import supertest from 'supertest';
2
2
  import StatusCodes from 'http-status-codes';
3
3
  import { SuperTest, Test, Response } from 'supertest';
4
+ import logger from 'jet-logger';
4
5
 
5
6
  import app from '@server';
6
7
  import userRepo from '@repos/user-repo';
7
8
  import User, { IUser } from '@models/user-model';
8
- import { pErr } from '@shared/functions';
9
+
9
10
  import { p as userPaths } from '@routes/user-router';
10
11
  import loginAgent from '../support/login-agent';
11
12
  import { ParamMissingError, UserNotFoundError, ValidatorFnError } from '@shared/errors';
@@ -98,7 +99,7 @@ describe('user-router', () => {
98
99
  spyOn(userRepo, 'getAll').and.returnValue(ret);
99
100
  // Call API
100
101
  callApi().end((err: Error, res: Response) => {
101
- pErr(err);
102
+ !!err && logger.err(err);
102
103
  expect(res.status).toBe(OK);
103
104
  // Caste instance-objects to 'User' objects
104
105
  const respUsers = res.body.users;
@@ -116,7 +117,7 @@ describe('user-router', () => {
116
117
  // Call API
117
118
  callApi()
118
119
  .end((err: Error, res: Response) => {
119
- pErr(err);
120
+ !!err && logger.err(err);
120
121
  expect(res.status).toBe(BAD_REQUEST);
121
122
  expect(res.body.error).toBe(errMsg);
122
123
  done();
@@ -139,7 +140,7 @@ describe('user-router', () => {
139
140
  spyOn(userRepo, 'add').and.returnValue(Promise.resolve());
140
141
  callApi(dummyUserData)
141
142
  .end((err: Error, res: Response) => {
142
- pErr(err);
143
+ !!err && logger.err(err);
143
144
  expect(res.status).toBe(CREATED);
144
145
  expect(res.body.error).toBeUndefined();
145
146
  done();
@@ -150,7 +151,7 @@ describe('user-router', () => {
150
151
  it(msgs.addUserFailedMissingParam, (done) => {
151
152
  callApi({})
152
153
  .end((err: Error, res: Response) => {
153
- pErr(err);
154
+ !!err && logger.err(err);
154
155
  expect(res.status).toBe(BAD_REQUEST);
155
156
  expect(res.body.error).toBe(ValidatorFnError.Msg + 'instanceOf');
156
157
  done();
@@ -164,7 +165,7 @@ describe('user-router', () => {
164
165
  // Call API
165
166
  callApi(dummyUserData)
166
167
  .end((err: Error, res: Response) => {
167
- pErr(err);
168
+ !!err && logger.err(err);
168
169
  expect(res.status).toBe(BAD_REQUEST);
169
170
  expect(res.body.error).toBe(errMsg);
170
171
  done();
@@ -187,7 +188,7 @@ describe('user-router', () => {
187
188
  // Call api
188
189
  callApi(dummyUserData)
189
190
  .end((err: Error, res: Response) => {
190
- pErr(err);
191
+ !!err && logger.err(err);
191
192
  expect(res.status).toBe(OK);
192
193
  expect(res.body.error).toBeUndefined();
193
194
  done();
@@ -198,7 +199,7 @@ describe('user-router', () => {
198
199
  it(msgs.updateParamMissing, (done) => {
199
200
  callApi({})
200
201
  .end((err: Error, res: Response) => {
201
- pErr(err);
202
+ !!err && logger.err(err);
202
203
  expect(res.status).toBe(BAD_REQUEST);
203
204
  expect(res.body.error).toBe(ValidatorFnError.Msg + 'instanceOf');
204
205
  done();
@@ -209,7 +210,7 @@ describe('user-router', () => {
209
210
  it(msgs.updateUserNotFound, (done) => {
210
211
  callApi(dummyUserData)
211
212
  .end((err: Error, res: Response) => {
212
- pErr(err);
213
+ !!err && logger.err(err);
213
214
  expect(res.status).toBe(UserNotFoundError.HttpStatus);
214
215
  expect(res.body.error).toBe(UserNotFoundError.Msg);
215
216
  done();
@@ -224,7 +225,7 @@ describe('user-router', () => {
224
225
  // Call API
225
226
  callApi(dummyUserData)
226
227
  .end((err: Error, res: Response) => {
227
- pErr(err);
228
+ !!err && logger.err(err);
228
229
  expect(res.status).toBe(BAD_REQUEST);
229
230
  expect(res.body.error).toBe(updateErrMsg);
230
231
  done();
@@ -248,7 +249,7 @@ describe('user-router', () => {
248
249
  // Call api
249
250
  callApi(5)
250
251
  .end((err: Error, res: Response) => {
251
- pErr(err);
252
+ !!err && logger.err(err);
252
253
  expect(res.status).toBe(OK);
253
254
  expect(res.body.error).toBeUndefined();
254
255
  done();
@@ -259,7 +260,7 @@ describe('user-router', () => {
259
260
  it(msgs.deleteUserNotFound, (done) => {
260
261
  callApi(-1)
261
262
  .end((err: Error, res: Response) => {
262
- pErr(err);
263
+ !!err && logger.err(err);
263
264
  expect(res.status).toBe(UserNotFoundError.HttpStatus);
264
265
  expect(res.body.error).toBe(UserNotFoundError.Msg);
265
266
  done();
@@ -274,7 +275,7 @@ describe('user-router', () => {
274
275
  // Call API
275
276
  callApi(1)
276
277
  .end((err: Error, res: Response) => {
277
- pErr(err);
278
+ !!err && logger.err(err);
278
279
  expect(res.status).toBe(BAD_REQUEST);
279
280
  expect(res.body.error).toBe(deleteErrMsg);
280
281
  done();
@@ -1,5 +1,5 @@
1
1
  import { IUser } from '@models/user-model';
2
- import { getRandomInt } from '@shared/functions';
2
+ import sharedFns from '@shared/functions';
3
3
  import orm from './mock-orm';
4
4
 
5
5
 
@@ -44,7 +44,7 @@ async function getAll(): Promise<IUser[]> {
44
44
  */
45
45
  async function add(user: IUser): Promise<void> {
46
46
  const db = await orm.openDb();
47
- user.id = getRandomInt();
47
+ user.id = sharedFns.getRandomInt();
48
48
  db.users.push(user);
49
49
  return orm.saveDb(db);
50
50
  }
@@ -1,20 +1,13 @@
1
- import logger from 'jet-logger';
2
-
3
-
4
- // **** Functions **** //
5
-
6
- /**
7
- * Print an error object if it's truthy. Useful for testing.
8
- */
9
- export function pErr(err?: Error): void {
10
- if (!!err) {
11
- logger.err(err);
12
- }
13
- }
14
-
15
1
  /**
16
2
  * Get a random number between 1 and 1,000,000,000,000
17
3
  */
18
- export function getRandomInt(): number {
4
+ function getRandomInt(): number {
19
5
  return Math.floor(Math.random() * 1_000_000_000_000);
20
6
  }
7
+
8
+
9
+ // **** Export default **** //
10
+
11
+ export default {
12
+ getRandomInt,
13
+ } as const;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-generator-typescript",
3
- "version": "2.0.14",
3
+ "version": "2.0.15",
4
4
  "description": "Generate new Express applications similar to express-generate which but sets it up to use TypeScript instead",
5
5
  "scripts": {
6
6
  "express-generator-typescript": "node bin/cli.js",