Skip to content

Commit

Permalink
chore: typescript v3.9 support
Browse files Browse the repository at this point in the history
  • Loading branch information
JozefFlakus committed Jun 7, 2020
1 parent 5da14c8 commit cbdffda
Show file tree
Hide file tree
Showing 17 changed files with 70 additions and 69 deletions.
2 changes: 2 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ module.exports = {
'@typescript-eslint/prefer-interface': 0,
'@typescript-eslint/explicit-function-return-type': 0,
'@typescript-eslint/explicit-member-accessibility': 0,
'@typescript-eslint/explicit-module-boundary-types': 0,
'@typescript-eslint/no-var-requires': 0,
'quotes': ['error', 'single', { allowTemplateLiterals: true }],
'import/order': ['error', {
'groups': [
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@
"@types/node": "^12.7.12",
"@types/rimraf": "^2.0.2",
"@types/supertest": "^2.0.8",
"@typescript-eslint/eslint-plugin": "^2.19.0",
"@typescript-eslint/parser": "^2.19.0",
"@typescript-eslint/eslint-plugin": "^3.1.0",
"@typescript-eslint/parser": "^3.1.0",
"eslint": "^7.0.0",
"eslint-plugin-import": "^2.20.2",
"husky": "^4.2.5",
Expand All @@ -76,8 +76,8 @@
"mock-req": "^0.2.0",
"rimraf": "^3.0.1",
"supertest": "^4.0.2",
"ts-jest": "^25.5.1",
"typescript": "~3.7.2"
"ts-jest": "^26.1.0",
"typescript": "~3.9.5"
},
"workspaces": [
"packages/*"
Expand Down
2 changes: 1 addition & 1 deletion packages/@integration/src/cqrs/domain/Offer.command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { createEvent, EventsUnion } from '@marblejs/core';

export enum OfferCommandType {
GENERATE_OFFER_DOCUMENT = 'GENERATE_OFFER_DOCUMENT',
};
}

export const OfferCommand = {
generateOffer: createEvent(
Expand Down
2 changes: 1 addition & 1 deletion packages/@integration/src/cqrs/domain/Offer.event.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export enum OfferEventType {
OFFER_UPDATED = 'OFFER_UPDATED',
OFFER_DOCUMENT_SAVED = 'OFFER_DOCUMENT_SAVED',
OFFER_DOCUMENT_CREATED = 'OFFER_DOCUMENT_CREATED',
};
}

export const OfferEvent = {
offerCreated: createEvent(
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/+internal/utils/array.util.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { fromNullable } from 'fp-ts/lib/Option';

export const getArrayFromEnum = (E: object) =>
export const getArrayFromEnum = (E: Record<string, unknown>) =>
Object.keys(E).filter(key => typeof E[key as any] === 'number');

export const getHead = <T>(array: T[]) =>
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/error/error.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export class EventError extends NamedError {
constructor(
public readonly event: Event,
public readonly message: string,
public readonly data?: object,
public readonly data?: Record<string, unknown> | Array<any>,
) {
super(ErrorType.EVENT_ERROR, message);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/event/event.factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export function createEvent<T extends string, Payload, Arg1, Arg2, Arg3, Arg4>(
): { type: T } & ((arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => { type: T; payload: Payload; metadata?: EventMetadata });

// Any args & basic definition
export function createEvent<T extends string, Payload extends {}>(
export function createEvent<T extends string, Payload extends unknown>(
type: T, eventPayloadCreator?: (...args: any[]) => Payload,
) {
const creator = (...args: any[]) => ({
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/http/error/http.error.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export class HttpError extends NamedError {
constructor(
public readonly message: string,
public readonly status: HttpStatus,
public readonly data?: object,
public readonly data?: Record<string, unknown> | Array<any>,
public readonly request?: HttpRequest,
public readonly context?: string,
) {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/http/server/http.server.listener.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export interface HttpListenerConfig {
export interface HttpListener {
(req: IncomingMessage, res: OutgoingMessage): void;
config: { routing: Routing };
};
}

export const httpListener = createListener<HttpListenerConfig, HttpListener>(config => ask => {
const {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/logger/logger.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ export const enum LoggerTag {
MESSAGING = 'messaging',
EVENT_BUS = 'event_bus',
WEBSOCKETS = 'websockets',
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export enum AmqpConnectionStatus {
CHANNEL_CONNECTED = 'CHANNEL_CONNECTED',
CONNECTION_LOST = 'CONNECTION_LOST',
CHANNEL_CONNECTION_LOST = 'CHANNEL_CONNECTION_LOST',
};
}

export enum AmqpErrorType {
CANNOT_SET_ACK_FOR_NON_CONSUMER_CONNECTION = 'AmqpCannotSetExpectAckForNonConsumerConnection',
Expand Down
2 changes: 1 addition & 1 deletion packages/middleware-body/src/body.model.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { HttpRequest } from '@marblejs/core';

export type RequestBodyParser = (reqOrContentType: HttpRequest | string) =>
(body: Buffer) => Buffer | object | string | undefined;
(body: Buffer) => Buffer | Record<string, unknown> | Array<any> | string | undefined;
2 changes: 1 addition & 1 deletion packages/middleware-io/src/io.error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export enum ErrorType {
export class IOError extends NamedError {
constructor(
public readonly message: string,
public readonly data: object,
public readonly data: Record<string, unknown> | Array<any>,
public readonly context?: string,
) {
super(ErrorType.IO_ERROR, message);
Expand Down
8 changes: 4 additions & 4 deletions packages/middleware-jwt/src/jwt.factory.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import { Observable } from 'rxjs';
import * as jwt from 'jsonwebtoken';

export type Payload = string | object | Buffer;
export type Payload = string | Record<string, unknown> | Buffer;
export type IssuedAt = { iat: number };
export type ExpiresAt = { exp: number };
export type GenerateOptions = jwt.SignOptions & { secret: jwt.Secret };
export type VerifyOptions = jwt.VerifyOptions & { secret: string | Buffer };

type VerifyTokenHandler = <T extends object>(opts: VerifyOptions) => (token: string) => Observable<T & IssuedAt>;
type VerifyTokenHandler = <T extends Record<string, unknown>>(opts: VerifyOptions) => (token: string) => Observable<T & IssuedAt>;

export const generateExpirationInHours = (hours = 1) =>
Math.floor(Date.now() / 1000) + (60 * 60 * hours);

export const generateToken = ({ secret, ...opts }: GenerateOptions) => (payload: Payload = {}) =>
jwt.sign(payload, secret, opts);

export const verifyToken = <T extends object>({ secret, ...opts }: VerifyOptions) => (token: string) =>
export const verifyToken = <T extends Record<string, unknown>>({ secret, ...opts }: VerifyOptions) => (token: string) =>
jwt.verify(token, secret, opts) as T & IssuedAt;

export const verifyToken$: VerifyTokenHandler = <T extends object>({ secret, ...opts }) => token =>
export const verifyToken$: VerifyTokenHandler = <T extends Record<string, unknown>>({ secret, ...opts }) => token =>
new Observable<T & IssuedAt>(subscriber => {
jwt.verify(token, secret, opts, (error, payload) => {
if (error) {
Expand Down
6 changes: 3 additions & 3 deletions packages/middleware-jwt/src/jwt.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ import { verifyToken$, VerifyOptions } from './jwt.factory';

export type AuthorizeMiddlewareConfig = VerifyOptions;

const assignPayloadToRequest = (req: HttpRequest) => (payload: object) => req.user = payload;
const assignPayloadToRequest = (req: HttpRequest) => (payload: Record<string, unknown>) => req.user = payload;

export const authorize$ = (
config: AuthorizeMiddlewareConfig,
verifyPayload$: (payload: any) => Observable<object>,
verifyPayload$: (payload: any) => Observable<Record<string, unknown>>,
): HttpMiddlewareEffect => req$ =>
req$.pipe(
mergeMap(req => of(req).pipe(
map(parseAuthorizationHeader),
mergeMap(verifyToken$<object>(config)),
mergeMap(verifyToken$<Record<string, unknown>>(config)),
mergeMap(verifyPayload$),
tap(assignPayloadToRequest(req)),
mapTo(req),
Expand Down
2 changes: 1 addition & 1 deletion packages/middleware-multipart/src/multipart.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export interface FileIncomingData {
fieldname: string;
encoding: string;
mimetype: string;
};
}

export interface WithFile<T extends string = string> {
files: Record<T, File>;
Expand Down
91 changes: 45 additions & 46 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1796,47 +1796,48 @@
dependencies:
"@types/yargs-parser" "*"

"@typescript-eslint/eslint-plugin@^2.19.0":
version "2.19.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.19.0.tgz#bf743448a4633e4b52bee0c40148ba072ab3adbd"
integrity sha512-u7IcQ9qwsB6U806LupZmINRnQjC+RJyv36sV/ugaFWMHTbFm/hlLTRx3gGYJgHisxcGSTnf+I/fPDieRMhPSQQ==
"@typescript-eslint/eslint-plugin@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.1.0.tgz#4ac00ecca3bbea740c577f1843bc54fa69c3def2"
integrity sha512-D52KwdgkjYc+fmTZKW7CZpH5ZBJREJKZXRrveMiRCmlzZ+Rw9wRVJ1JAmHQ9b/+Ehy1ZeaylofDB9wwXUt83wg==
dependencies:
"@typescript-eslint/experimental-utils" "2.19.0"
eslint-utils "^1.4.3"
"@typescript-eslint/experimental-utils" "3.1.0"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
semver "^7.3.2"
tsutils "^3.17.1"

"@typescript-eslint/experimental-utils@2.19.0":
version "2.19.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.19.0.tgz#d5ca732f22c009e515ba09fcceb5f2127d841568"
integrity sha512-zwpg6zEOPbhB3+GaQfufzlMUOO6GXCNZq6skk+b2ZkZAIoBhVoanWK255BS1g5x9bMwHpLhX0Rpn5Fc3NdCZdg==
"@typescript-eslint/experimental-utils@3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.1.0.tgz#2d5dba7c2ac2a3da3bfa3f461ff64de38587a872"
integrity sha512-Zf8JVC2K1svqPIk1CB/ehCiWPaERJBBokbMfNTNRczCbQSlQXaXtO/7OfYz9wZaecNvdSvVADt6/XQuIxhC79w==
dependencies:
"@types/json-schema" "^7.0.3"
"@typescript-eslint/typescript-estree" "2.19.0"
"@typescript-eslint/typescript-estree" "3.1.0"
eslint-scope "^5.0.0"
eslint-utils "^2.0.0"

"@typescript-eslint/parser@^2.19.0":
version "2.19.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.19.0.tgz#912160d9425395d09857dcd5382352bc98be11ae"
integrity sha512-s0jZoxAWjHnuidbbN7aA+BFVXn4TCcxEVGPV8lWMxZglSs3NRnFFAlL+aIENNmzB2/1jUJuySi6GiM6uACPmpg==
"@typescript-eslint/parser@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.1.0.tgz#9c02ba5d88ad2355672f39e6cd4176f172dd47f8"
integrity sha512-NcDSJK8qTA2tPfyGiPes9HtVKLbksmuYjlgGAUs7Ld2K0swdWibnCq9IJx9kJN8JJdgUJSorFiGaPHBgH81F/Q==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
"@typescript-eslint/experimental-utils" "2.19.0"
"@typescript-eslint/typescript-estree" "2.19.0"
"@typescript-eslint/experimental-utils" "3.1.0"
"@typescript-eslint/typescript-estree" "3.1.0"
eslint-visitor-keys "^1.1.0"

"@typescript-eslint/typescript-estree@2.19.0":
version "2.19.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.19.0.tgz#6bd7310b9827e04756fe712909f26956aac4b196"
integrity sha512-n6/Xa37k0jQdwpUszffi19AlNbVCR0sdvCs3DmSKMD7wBttKY31lhD2fug5kMD91B2qW4mQldaTEc1PEzvGu8w==
"@typescript-eslint/typescript-estree@3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.1.0.tgz#eaff52d31e615e05b894f8b9d2c3d8af152a5dd2"
integrity sha512-+4nfYauqeQvK55PgFrmBWFVYb6IskLyOosYEmhH3mSVhfBp9AIJnjExdgDmKWoOBHRcPM8Ihfm2BFpZf0euUZQ==
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
glob "^7.1.6"
is-glob "^4.0.1"
lodash "^4.17.15"
semver "^6.3.0"
semver "^7.3.2"
tsutils "^3.17.1"

"@zkochan/cmd-shim@^3.1.0":
Expand Down Expand Up @@ -3471,13 +3472,6 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"

eslint-utils@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
dependencies:
eslint-visitor-keys "^1.1.0"

eslint-utils@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
Expand Down Expand Up @@ -5904,12 +5898,17 @@ mkdirp-promise@^5.0.1:
dependencies:
mkdirp "*"

mkdirp@*, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1:
mkdirp@*, mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"

mkdirp@1.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==

mock-req@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/mock-req/-/mock-req-0.2.0.tgz#749446804d2c006169342ee7be6bba1cffd534c2"
Expand Down Expand Up @@ -7359,11 +7358,16 @@ semver-regex@^2.0.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"

semver@6.3.0, semver@6.x, semver@^6.2.0, semver@^6.3.0:
semver@6.3.0, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==

semver@7.x, semver@^7.2.1, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==

semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
Expand All @@ -7379,11 +7383,6 @@ semver@^6.0.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db"
integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==

semver@^7.2.1, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==

semver@~5.3.0:
version "5.3.0"
resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
Expand Down Expand Up @@ -8146,10 +8145,10 @@ trim-off-newlines@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"

ts-jest@^25.5.1:
version "25.5.1"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.5.1.tgz#2913afd08f28385d54f2f4e828be4d261f4337c7"
integrity sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==
ts-jest@^26.1.0:
version "26.1.0"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.1.0.tgz#e9070fc97b3ea5557a48b67c631c74eb35e15417"
integrity sha512-JbhQdyDMYN5nfKXaAwCIyaWLGwevcT2/dbqRPsQeh6NZPUuXjZQZEfeLb75tz0ubCIgEELNm6xAzTe5NXs5Y4Q==
dependencies:
bs-logger "0.x"
buffer-from "1.x"
Expand All @@ -8158,8 +8157,8 @@ ts-jest@^25.5.1:
lodash.memoize "4.x"
make-error "1.x"
micromatch "4.x"
mkdirp "0.x"
semver "6.x"
mkdirp "1.x"
semver "7.x"
yargs-parser "18.x"

ts-node@^8.6.2:
Expand Down Expand Up @@ -8255,10 +8254,10 @@ typescript@~3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8"

typescript@~3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb"
integrity sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==
typescript@~3.9.5:
version "3.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36"
integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==

uglify-js@^3.1.4:
version "3.7.7"
Expand Down

0 comments on commit cbdffda

Please sign in to comment.