Skip to content

Commit

Permalink
Merge pull request #29 from tibber/upgrade-gts-4
Browse files Browse the repository at this point in the history
Upgrade GTS
  • Loading branch information
toini committed Aug 17, 2022
2 parents b29d6e3 + 093c708 commit 49dc96e
Show file tree
Hide file tree
Showing 16 changed files with 218 additions and 392 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## [3.3.1-upgrade-gts-4.1](https://github.com/tibber/tibber-express-utils/compare/v3.3.0...v3.3.1-upgrade-gts-4.1) (2022-08-17)


### Bug Fixes

* upgrade gts to avoid got vulnerability ([b29d6e3](https://github.com/tibber/tibber-express-utils/commit/b29d6e3a7152c086a257512c9669b32c6819af42))

# [3.3.0](https://github.com/tibber/tibber-express-utils/compare/v3.2.0...v3.3.0) (2022-08-15)


Expand Down
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tibber-express-utils",
"version": "3.3.0",
"version": "3.3.1-upgrade-gts-4.1",
"description": "",
"main": "./dist/src/index.js",
"scripts": {
Expand Down Expand Up @@ -36,7 +36,6 @@
"conventional-commits": "^1.6.0",
"cz-conventional-changelog": "^3.3.0",
"dotenv-cli": "^6.0.0",
"eslint": "7.14.0",
"eslint-plugin-jest": "^26.8.2",
"eslint-plugin-node": "^11.1.0",
"express": "^4.18.1",
Expand Down
36 changes: 19 additions & 17 deletions src/handlers/jsonDelete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ import {
Logger,
} from '../types';

export const jsonDelete = <TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) => <TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.delete(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
export const jsonDelete =
<TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) =>
<TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.delete(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
36 changes: 19 additions & 17 deletions src/handlers/jsonGet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ import {
Logger,
} from '../types';

export const jsonGet = <TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) => <TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.get(
path,
jsonMiddleware(
NotFoundIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
export const jsonGet =
<TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) =>
<TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.get(
path,
jsonMiddleware(
NotFoundIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
36 changes: 19 additions & 17 deletions src/handlers/jsonPatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ import {
Logger,
} from '../types';

export const jsonPatch = <TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) => <TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.patch(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
export const jsonPatch =
<TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) =>
<TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.patch(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
36 changes: 19 additions & 17 deletions src/handlers/jsonPost.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ import {
Logger,
} from '../types';

export const jsonPost = <TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) => <TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.post(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
export const jsonPost =
<TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) =>
<TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.post(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
36 changes: 19 additions & 17 deletions src/handlers/jsonPut.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ import {
Logger,
} from '../types';

export const jsonPut = <TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) => <TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.put(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
export const jsonPut =
<TContext>(
jsonRouter: JsonRouter<TContext>,
_contextSelector: ContextSelector<TContext>,
logger?: Logger
) =>
<TPayload>(
path: PathParams,
handler: JsonRequestHandler<TContext, TPayload>
) =>
jsonRouter.put(
path,
jsonMiddleware(
NoContentIfNoCodeOtherwiseOk,
_contextSelector,
handler,
logger
)
);
4 changes: 2 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export * from './HttpResult';
export * from './jsonRouting';
export * from './jsonMiddleware';
export * as Errors from './errors';
export * from './jsonMiddleware';
export * from './jsonRouting';
export * from './types';
5 changes: 2 additions & 3 deletions src/utils/ContextOf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,5 @@ import {ContextSelector} from '../types';
* Given a concrete ContextSelector function, infers the type of the context
* that it selects.
*/
export type ContextOf<
TContextSelector extends ContextSelector<unknown>
> = TContextSelector extends ContextSelector<infer U> ? U : never;
export type ContextOf<TContextSelector extends ContextSelector<unknown>> =
TContextSelector extends ContextSelector<infer U> ? U : never;
2 changes: 1 addition & 1 deletion src/utils/hasOwnProperty.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ export const hasOwnProperty = <
>(
target: TTarget,
propertyKey: TPropertyKey
): target is TTarget & Record<TPropertyKey, unknown> => {
): target is Record<TPropertyKey, unknown> & TTarget => {
return Object.prototype.hasOwnProperty.call(target, propertyKey);
};
36 changes: 19 additions & 17 deletions test/handlers/jsonDelete.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,28 @@ import {JsonRequestHandlerResult} from '../../src';
import {jsonRouting} from '../../src';
import {HttpError, ProblemDetailsError} from '../../src/errors';

const run = <TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload
) => async () => {
const router = Router({});
const jsonRouter = jsonRouting({expressRouter: router});
const run =
<TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload
) =>
async () => {
const router = Router({});
const jsonRouter = jsonRouting({expressRouter: router});

jsonRouter.jsonDelete('/test', () => {
if (type === 'throw') throw result;
return result;
});
jsonRouter.jsonDelete('/test', () => {
if (type === 'throw') throw result;
return result;
});

const app = express();
app.use(jsonRouter);
const app = express();
app.use(jsonRouter);

const response = await request(app).delete('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
};
const response = await request(app).delete('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
};

describe('jsonDelete', () => {
it(
Expand Down
42 changes: 22 additions & 20 deletions test/handlers/jsonGet.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,31 @@ class TestLogger {
}
}

const run = <TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload,
expectLogMsg?: string
) => async () => {
const router = Router({});
const logger = new TestLogger();
const jsonRouter = jsonRouting({expressRouter: router, logger});
const run =
<TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload,
expectLogMsg?: string
) =>
async () => {
const router = Router({});
const logger = new TestLogger();
const jsonRouter = jsonRouting({expressRouter: router, logger});

jsonRouter.jsonGet('/test', () => {
if (type === 'throw') throw result;
return result;
});
jsonRouter.jsonGet('/test', () => {
if (type === 'throw') throw result;
return result;
});

const app = express();
app.use(jsonRouter);
const app = express();
app.use(jsonRouter);

const response = await request(app).get('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
expect(logger.lastError).toBe(expectLogMsg);
};
const response = await request(app).get('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
expect(logger.lastError).toBe(expectLogMsg);
};

describe('jsonGet', () => {
it(
Expand Down
36 changes: 19 additions & 17 deletions test/handlers/jsonPatch.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,28 @@ import {JsonRequestHandlerResult} from '../../src';
import {jsonRouting} from '../../src';
import {HttpError, ProblemDetailsError} from '../../src/errors';

const run = <TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload
) => async () => {
const router = Router({});
const jsonRouter = jsonRouting({expressRouter: router});
const run =
<TResult, TPayload>(
type: 'return' | 'throw',
result: JsonRequestHandlerResult<TResult>,
expectCode: number,
expectPayload: TPayload
) =>
async () => {
const router = Router({});
const jsonRouter = jsonRouting({expressRouter: router});

jsonRouter.jsonPatch('/test', () => {
if (type === 'throw') throw result;
return result;
});
jsonRouter.jsonPatch('/test', () => {
if (type === 'throw') throw result;
return result;
});

const app = express();
app.use(jsonRouter);
const app = express();
app.use(jsonRouter);

const response = await request(app).patch('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
};
const response = await request(app).patch('/test').expect(expectCode);
expect(response.body).toStrictEqual(expectPayload);
};

describe('jsonPatch', () => {
it(
Expand Down
Loading

0 comments on commit 49dc96e

Please sign in to comment.