Skip to content

Commit e68edb5

Browse files
authored
Merge pull request #177 from furality/dependabot/npm_and_yarn/axios-retry-3.9.0
build(deps): bump axios-retry from 3.8.1 to 3.9.0
2 parents 168c8ba + dc732db commit e68edb5

File tree

8 files changed

+655
-102
lines changed

8 files changed

+655
-102
lines changed

.eslintrc.js

Lines changed: 74 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,76 @@
11
module.exports = {
2-
parser: '@typescript-eslint/parser',
3-
parserOptions: {
4-
project: true,
5-
sourceType: 'module',
6-
},
7-
plugins: ['@typescript-eslint/eslint-plugin'],
8-
extends: [
9-
'plugin:@typescript-eslint/eslint-recommended',
10-
'plugin:@typescript-eslint/recommended',
11-
'prettier',
2+
parser: '@typescript-eslint/parser',
3+
parserOptions: {
4+
project: true,
5+
tsconfigRootDir: __dirname,
6+
sourceType: 'module',
7+
},
8+
plugins: [
9+
'@typescript-eslint/eslint-plugin',
10+
'simple-import-sort',
11+
'no-type-assertion',
12+
'import',
13+
],
14+
extends: [
15+
'eslint:recommended',
16+
'plugin:@typescript-eslint/strict-type-checked',
17+
'plugin:@typescript-eslint/eslint-recommended',
18+
'plugin:@typescript-eslint/stylistic-type-checked',
19+
'plugin:@typescript-eslint/strict',
20+
'plugin:prettier/recommended',
21+
'plugin:import/recommended',
22+
'plugin:import/typescript',
23+
],
24+
root: true,
25+
env: {
26+
node: true,
27+
jest: true,
28+
},
29+
rules: {
30+
'simple-import-sort/imports': 'error',
31+
'simple-import-sort/exports': 'error',
32+
eqeqeq: 'error',
33+
'no-lonely-if': 'error',
34+
'no-multi-assign': 'error',
35+
'@typescript-eslint/no-shadow': 'error',
36+
'no-useless-return': 'error',
37+
'no-useless-rename': 'error',
38+
'one-var-declaration-per-line': 'error',
39+
'prefer-object-spread': 'error',
40+
'no-unreachable-loop': 'error',
41+
'no-template-curly-in-string': 'error',
42+
'default-case-last': 'error',
43+
'no-array-constructor': 'error',
44+
'no-else-return': 'error',
45+
'no-negated-condition': 'error',
46+
'array-callback-return': 'error',
47+
'@typescript-eslint/consistent-type-definitions': 'error',
48+
'no-type-assertion/no-type-assertion': 'error',
49+
'@typescript-eslint/ban-ts-comment': 'error',
50+
'@typescript-eslint/no-unnecessary-condition': 'error',
51+
'@typescript-eslint/no-extraneous-class': 'off',
52+
'@typescript-eslint/prefer-nullish-coalescing': 'error',
53+
'@typescript-eslint/no-import-type-side-effects': 'error',
54+
'@typescript-eslint/consistent-type-imports': 'error',
55+
'@typescript-eslint/consistent-type-exports': 'error',
56+
'import/consistent-type-specifier-style': 'error',
57+
'import/no-duplicates': 'error',
58+
'import/no-unresolved': 'error',
59+
curly: 'error',
60+
'no-console': [
61+
'warn',
62+
{
63+
allow: ['warn', 'error'],
64+
},
1265
],
13-
root: true,
14-
env: {
15-
node: true,
16-
jest: true,
17-
},
18-
rules: {
19-
'@typescript-eslint/interface-name-prefix': 'off',
20-
'@typescript-eslint/explicit-function-return-type': 'off',
21-
'@typescript-eslint/no-explicit-any': 'off',
22-
'@typescript-eslint/no-use-before-define': 'off',
23-
'@typescript-eslint/no-non-null-assertion': 'off',
24-
},
25-
};
66+
quotes: [
67+
'error',
68+
'single',
69+
{
70+
avoidEscape: true,
71+
},
72+
],
73+
'prefer-template': 'error',
74+
'@typescript-eslint/return-await': ['error', 'always'],
75+
},
76+
};

lib/http.module.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
import { DynamicModule, Module, Provider } from '@nestjs/common';
1+
import type { DynamicModule, Provider } from '@nestjs/common';
2+
import { Module } from '@nestjs/common';
23
import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util';
3-
import Axios from 'axios';
4+
import axios from 'axios';
5+
import axiosRetry from 'axios-retry';
6+
47
import { AXIOS_INSTANCE_TOKEN, HTTP_MODULE_ID, HTTP_MODULE_OPTIONS } from './http.constants';
58
import { HttpService } from './http.service';
6-
import { HttpModuleAsyncOptions, HttpModuleOptions, HttpModuleOptionsFactory } from './interfaces';
7-
import axiosRetry from 'axios-retry';
9+
import type {
10+
HttpModuleAsyncOptions,
11+
HttpModuleOptions,
12+
HttpModuleOptionsFactory,
13+
} from './interfaces';
814

915
const createAxiosInstance = (config?: HttpModuleOptions) => {
10-
const axiosInstance = Axios.create(config);
16+
const axiosInstance = axios.create(config);
1117
axiosRetry(axiosInstance, config);
1218
return axiosInstance;
1319
};
@@ -54,23 +60,24 @@ export class HttpModule {
5460
provide: HTTP_MODULE_ID,
5561
useValue: randomStringGenerator(),
5662
},
57-
...(options.extraProviders || []),
63+
...(options.extraProviders ?? []),
5864
],
5965
};
6066
}
6167

6268
private static createAsyncProviders(options: HttpModuleAsyncOptions): Provider[] {
63-
if (options.useExisting || options.useFactory) {
69+
if (!!options.useExisting || !!options.useFactory) {
6470
return [this.createAsyncOptionsProvider(options)];
6571
}
6672

6773
const providers = [this.createAsyncOptionsProvider(options)];
6874

69-
if (options.useClass)
75+
if (options.useClass) {
7076
providers.push({
7177
provide: options.useClass,
7278
useClass: options.useClass,
7379
});
80+
}
7481

7582
return providers;
7683
}
@@ -80,18 +87,21 @@ export class HttpModule {
8087
return {
8188
provide: HTTP_MODULE_OPTIONS,
8289
useFactory: options.useFactory,
83-
inject: options.inject || [],
90+
inject: options.inject ?? [],
8491
};
8592
}
8693

8794
let inject;
88-
if (options.useExisting) inject = [options.useExisting];
89-
else if (options.useClass) inject = [options.useClass];
95+
if (options.useExisting) {
96+
inject = [options.useExisting];
97+
} else if (options.useClass) {
98+
inject = [options.useClass];
99+
}
90100

91101
return {
92102
provide: HTTP_MODULE_OPTIONS,
93103
useFactory: async (optionsFactory: HttpModuleOptionsFactory) =>
94-
optionsFactory.createHttpOptions(),
104+
await optionsFactory.createHttpOptions(),
95105
...(inject && { inject }),
96106
};
97107
}

lib/http.service.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
import { Injectable } from '@nestjs/common';
2-
import { Inject } from '@nestjs/common';
3-
import Axios, { AxiosInstance } from 'axios';
1+
/* eslint-disable @typescript-eslint/unbound-method */
2+
3+
import { Inject, Injectable } from '@nestjs/common';
4+
import axios, { AxiosInstance } from 'axios';
5+
46
import { AXIOS_INSTANCE_TOKEN } from './http.constants';
57

68
@Injectable()
79
export class HttpService {
8-
public readonly put: typeof Axios.put;
9-
public readonly post: typeof Axios.post;
10-
public readonly patch: typeof Axios.patch;
11-
public readonly head: typeof Axios.patch;
12-
public readonly delete: typeof Axios.delete;
13-
public readonly get: typeof Axios.get;
14-
public readonly request: typeof Axios.request;
10+
public readonly put: typeof axios.put;
11+
public readonly post: typeof axios.post;
12+
public readonly patch: typeof axios.patch;
13+
public readonly head: typeof axios.patch;
14+
public readonly delete: typeof axios.delete;
15+
public readonly get: typeof axios.get;
16+
public readonly request: typeof axios.request;
1517

1618
constructor(
1719
@Inject(AXIOS_INSTANCE_TOKEN)
18-
private readonly instance: AxiosInstance = Axios,
20+
private readonly instance: AxiosInstance = axios,
1921
) {
2022
this.put = this.instance.put;
2123
this.post = this.instance.post;
2224
this.patch = this.instance.patch;
23-
this.head = this.instance.head as typeof Axios.patch;
25+
// eslint-disable-next-line no-type-assertion/no-type-assertion
26+
this.head = this.instance.head as typeof axios.patch;
2427
this.delete = this.instance.delete;
2528
this.get = this.instance.get;
2629
this.request = this.instance.request;

lib/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export { HttpService } from './http.service';
21
export { HttpModule } from './http.module';
2+
export { HttpService } from './http.service';
33
export * from './interfaces';
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { ModuleMetadata, Provider, Type } from '@nestjs/common';
2-
import { AxiosRequestConfig } from 'axios';
3-
import { IAxiosRetryConfig } from 'axios-retry';
1+
import type { ModuleMetadata, Provider, Type } from '@nestjs/common';
2+
import type { AxiosRequestConfig } from 'axios';
3+
import type IAxiosRetry from 'axios-retry';
44

55
export type HttpModuleOptions = AxiosRequestConfig &
6-
IAxiosRetryConfig & { isBetterStackTraceEnabled?: boolean };
6+
IAxiosRetry.IAxiosRetryConfig & { isBetterStackTraceEnabled?: boolean };
77

88
export interface HttpModuleOptionsFactory {
99
createHttpOptions(): Promise<HttpModuleOptions> | HttpModuleOptions;
@@ -12,7 +12,9 @@ export interface HttpModuleOptionsFactory {
1212
export interface HttpModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
1313
useExisting?: Type<HttpModuleOptionsFactory>;
1414
useClass?: Type<HttpModuleOptionsFactory>;
15+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
1516
useFactory?: (...args: any[]) => Promise<HttpModuleOptions> | HttpModuleOptions;
17+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
1618
inject?: any[];
1719
extraProviders?: Provider[];
1820
}

0 commit comments

Comments
 (0)