@verisoft/core 18.0.1-0 → 18.1.0
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.
- package/.eslintrc.json +43 -43
- package/README.md +7 -7
- package/jest.config.ts +22 -22
- package/ng-package.json +7 -7
- package/package.json +1 -1
- package/project.json +36 -36
- package/src/index.ts +6 -6
- package/src/lib/base/models/all-item.datasource.ts +5 -5
- package/src/lib/base/models/base-http.models.ts +96 -96
- package/src/lib/base/models/table-datasource.models.ts +9 -9
- package/src/lib/models/lazy-load.model.ts +3 -3
- package/src/lib/services/base-http.service.ts +104 -104
- package/src/lib/utils/array.utils.ts +9 -9
- package/src/lib/utils/clear.utils.ts +53 -53
- package/src/lib/utils/data.utils.ts +33 -33
- package/src/lib/utils/keyOrFn.utils.ts +15 -15
- package/src/test-setup.ts +8 -8
- package/tsconfig.json +29 -29
- package/tsconfig.lib.json +17 -17
- package/tsconfig.lib.prod.json +9 -9
- package/tsconfig.spec.json +16 -16
package/.eslintrc.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": ["../../../.eslintrc.base.json"],
|
|
3
|
-
"ignorePatterns": ["!**/*"],
|
|
4
|
-
"overrides": [
|
|
5
|
-
{
|
|
6
|
-
"files": ["*.ts"],
|
|
7
|
-
"extends": [
|
|
8
|
-
"plugin:@nx/angular",
|
|
9
|
-
"plugin:@angular-eslint/template/process-inline-templates"
|
|
10
|
-
],
|
|
11
|
-
"rules": {
|
|
12
|
-
"@angular-eslint/directive-selector": [
|
|
13
|
-
"error",
|
|
14
|
-
{
|
|
15
|
-
"type": "attribute",
|
|
16
|
-
"prefix": "v",
|
|
17
|
-
"style": "camelCase"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"@angular-eslint/component-selector": [
|
|
21
|
-
"error",
|
|
22
|
-
{
|
|
23
|
-
"type": "element",
|
|
24
|
-
"prefix": "v",
|
|
25
|
-
"style": "kebab-case"
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"files": ["*.html"],
|
|
32
|
-
"extends": ["plugin:@nx/angular-template"],
|
|
33
|
-
"rules": {}
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"files": ["*.json"],
|
|
37
|
-
"parser": "jsonc-eslint-parser",
|
|
38
|
-
"rules": {
|
|
39
|
-
"@nx/dependency-checks": "error"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": ["../../../.eslintrc.base.json"],
|
|
3
|
+
"ignorePatterns": ["!**/*"],
|
|
4
|
+
"overrides": [
|
|
5
|
+
{
|
|
6
|
+
"files": ["*.ts"],
|
|
7
|
+
"extends": [
|
|
8
|
+
"plugin:@nx/angular",
|
|
9
|
+
"plugin:@angular-eslint/template/process-inline-templates"
|
|
10
|
+
],
|
|
11
|
+
"rules": {
|
|
12
|
+
"@angular-eslint/directive-selector": [
|
|
13
|
+
"error",
|
|
14
|
+
{
|
|
15
|
+
"type": "attribute",
|
|
16
|
+
"prefix": "v",
|
|
17
|
+
"style": "camelCase"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"@angular-eslint/component-selector": [
|
|
21
|
+
"error",
|
|
22
|
+
{
|
|
23
|
+
"type": "element",
|
|
24
|
+
"prefix": "v",
|
|
25
|
+
"style": "kebab-case"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"files": ["*.html"],
|
|
32
|
+
"extends": ["plugin:@nx/angular-template"],
|
|
33
|
+
"rules": {}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"files": ["*.json"],
|
|
37
|
+
"parser": "jsonc-eslint-parser",
|
|
38
|
+
"rules": {
|
|
39
|
+
"@nx/dependency-checks": "error"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# core
|
|
2
|
-
|
|
3
|
-
This library was generated with [Nx](https://nx.dev).
|
|
4
|
-
|
|
5
|
-
## Running unit tests
|
|
6
|
-
|
|
7
|
-
Run `nx test core` to execute the unit tests.
|
|
1
|
+
# core
|
|
2
|
+
|
|
3
|
+
This library was generated with [Nx](https://nx.dev).
|
|
4
|
+
|
|
5
|
+
## Running unit tests
|
|
6
|
+
|
|
7
|
+
Run `nx test core` to execute the unit tests.
|
package/jest.config.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
export default {
|
|
3
|
-
displayName: 'core',
|
|
4
|
-
preset: '../../../jest.preset.js',
|
|
5
|
-
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
|
|
6
|
-
coverageDirectory: '../../../coverage/src/libs/core',
|
|
7
|
-
transform: {
|
|
8
|
-
'^.+\\.(ts|mjs|js|html)$': [
|
|
9
|
-
'jest-preset-angular',
|
|
10
|
-
{
|
|
11
|
-
tsconfig: '<rootDir>/tsconfig.spec.json',
|
|
12
|
-
stringifyContentPathRegex: '\\.(html|svg)$',
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
},
|
|
16
|
-
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
|
|
17
|
-
snapshotSerializers: [
|
|
18
|
-
'jest-preset-angular/build/serializers/no-ng-attributes',
|
|
19
|
-
'jest-preset-angular/build/serializers/ng-snapshot',
|
|
20
|
-
'jest-preset-angular/build/serializers/html-comment',
|
|
21
|
-
],
|
|
22
|
-
};
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
export default {
|
|
3
|
+
displayName: 'core',
|
|
4
|
+
preset: '../../../jest.preset.js',
|
|
5
|
+
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
|
|
6
|
+
coverageDirectory: '../../../coverage/src/libs/core',
|
|
7
|
+
transform: {
|
|
8
|
+
'^.+\\.(ts|mjs|js|html)$': [
|
|
9
|
+
'jest-preset-angular',
|
|
10
|
+
{
|
|
11
|
+
tsconfig: '<rootDir>/tsconfig.spec.json',
|
|
12
|
+
stringifyContentPathRegex: '\\.(html|svg)$',
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
|
|
17
|
+
snapshotSerializers: [
|
|
18
|
+
'jest-preset-angular/build/serializers/no-ng-attributes',
|
|
19
|
+
'jest-preset-angular/build/serializers/ng-snapshot',
|
|
20
|
+
'jest-preset-angular/build/serializers/html-comment',
|
|
21
|
+
],
|
|
22
|
+
};
|
package/ng-package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
|
|
3
|
-
"dest": "../../../dist/src/libs/core",
|
|
4
|
-
"lib": {
|
|
5
|
-
"entryFile": "src/index.ts"
|
|
6
|
-
}
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
|
|
3
|
+
"dest": "../../../dist/src/libs/core",
|
|
4
|
+
"lib": {
|
|
5
|
+
"entryFile": "src/index.ts"
|
|
6
|
+
}
|
|
7
|
+
}
|
package/package.json
CHANGED
package/project.json
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "core",
|
|
3
|
-
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
-
"sourceRoot": "src/libs/core/src",
|
|
5
|
-
"prefix": "lib",
|
|
6
|
-
"projectType": "library",
|
|
7
|
-
"tags": [],
|
|
8
|
-
"targets": {
|
|
9
|
-
"build": {
|
|
10
|
-
"executor": "@nx/angular:package",
|
|
11
|
-
"outputs": ["{workspaceRoot}/dist/{projectRoot}"],
|
|
12
|
-
"options": {
|
|
13
|
-
"project": "src/libs/core/ng-package.json"
|
|
14
|
-
},
|
|
15
|
-
"configurations": {
|
|
16
|
-
"production": {
|
|
17
|
-
"tsConfig": "src/libs/core/tsconfig.lib.prod.json"
|
|
18
|
-
},
|
|
19
|
-
"development": {
|
|
20
|
-
"tsConfig": "src/libs/core/tsconfig.lib.json"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"defaultConfiguration": "production"
|
|
24
|
-
},
|
|
25
|
-
"test": {
|
|
26
|
-
"executor": "@nx/jest:jest",
|
|
27
|
-
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
28
|
-
"options": {
|
|
29
|
-
"jestConfig": "src/libs/core/jest.config.ts"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"lint": {
|
|
33
|
-
"executor": "@nx/eslint:lint"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "core",
|
|
3
|
+
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "src/libs/core/src",
|
|
5
|
+
"prefix": "lib",
|
|
6
|
+
"projectType": "library",
|
|
7
|
+
"tags": [],
|
|
8
|
+
"targets": {
|
|
9
|
+
"build": {
|
|
10
|
+
"executor": "@nx/angular:package",
|
|
11
|
+
"outputs": ["{workspaceRoot}/dist/{projectRoot}"],
|
|
12
|
+
"options": {
|
|
13
|
+
"project": "src/libs/core/ng-package.json"
|
|
14
|
+
},
|
|
15
|
+
"configurations": {
|
|
16
|
+
"production": {
|
|
17
|
+
"tsConfig": "src/libs/core/tsconfig.lib.prod.json"
|
|
18
|
+
},
|
|
19
|
+
"development": {
|
|
20
|
+
"tsConfig": "src/libs/core/tsconfig.lib.json"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"defaultConfiguration": "production"
|
|
24
|
+
},
|
|
25
|
+
"test": {
|
|
26
|
+
"executor": "@nx/jest:jest",
|
|
27
|
+
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
28
|
+
"options": {
|
|
29
|
+
"jestConfig": "src/libs/core/jest.config.ts"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"lint": {
|
|
33
|
+
"executor": "@nx/eslint:lint"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './lib/base/models/base-http.models';
|
|
2
|
-
export * from './lib/base/models/all-item.datasource';
|
|
3
|
-
export * from './lib/models/lazy-load.model';
|
|
4
|
-
|
|
5
|
-
export * from './lib/services/base-http.service';
|
|
6
|
-
|
|
1
|
+
export * from './lib/base/models/base-http.models';
|
|
2
|
+
export * from './lib/base/models/all-item.datasource';
|
|
3
|
+
export * from './lib/models/lazy-load.model';
|
|
4
|
+
|
|
5
|
+
export * from './lib/services/base-http.service';
|
|
6
|
+
|
|
7
7
|
export * from './lib/utils';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
export interface AllItemDatasource<T> {
|
|
4
|
-
getData$: () => Observable<T[]>
|
|
5
|
-
}
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
export interface AllItemDatasource<T> {
|
|
4
|
+
getData$: () => Observable<T[]>
|
|
5
|
+
}
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { HttpParams, HttpResponse } from '@angular/common/http';
|
|
3
|
-
import { InjectionToken } from '@angular/core';
|
|
4
|
-
|
|
5
|
-
export const BASE_URL_PATH = new InjectionToken("BASE_URL_PATH");
|
|
6
|
-
|
|
7
|
-
export function requestParamsToHttpParams<T>(
|
|
8
|
-
requestParams: RequestParams<T>,
|
|
9
|
-
httpParams: HttpParams = new HttpParams()
|
|
10
|
-
): HttpParams {
|
|
11
|
-
httpParams = httpParams
|
|
12
|
-
.append('Limit', requestParams.size.toString())
|
|
13
|
-
.append('Offset', (requestParams.page * requestParams.size).toString());
|
|
14
|
-
if (requestParams.id != '' && requestParams.id != undefined) {
|
|
15
|
-
httpParams = httpParams.append('Id', requestParams.id as any);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
httpParams = getFilter(requestParams, httpParams);
|
|
19
|
-
httpParams = getSort(requestParams, httpParams);
|
|
20
|
-
|
|
21
|
-
return httpParams;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function getFilter<T>(
|
|
25
|
-
requestParams: RequestParams<any>,
|
|
26
|
-
httpParams: HttpParams
|
|
27
|
-
): HttpParams {
|
|
28
|
-
if (!requestParams.filter) {
|
|
29
|
-
return httpParams;
|
|
30
|
-
}
|
|
31
|
-
Object.keys(requestParams?.filter).forEach((key) => {
|
|
32
|
-
if (requestParams.filter?.[key as keyof Partial<T>]) {
|
|
33
|
-
httpParams = httpParams.append(
|
|
34
|
-
'Filter.' + key,
|
|
35
|
-
requestParams.filter?.[key as keyof Partial<T>]
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return httpParams;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function getSort(
|
|
43
|
-
requestParams: RequestParams<any>,
|
|
44
|
-
httpParams: HttpParams
|
|
45
|
-
): HttpParams {
|
|
46
|
-
if (!requestParams.sort) {
|
|
47
|
-
return httpParams;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
requestParams.sort?.forEach((sort) => {
|
|
51
|
-
httpParams = httpParams
|
|
52
|
-
.append('Sort.Field', sort.field)
|
|
53
|
-
.append('Sort.Direction', sort.direction === -1 ? 'Desc' : 'Asc');
|
|
54
|
-
});
|
|
55
|
-
return httpParams;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function saveFile(response: HttpResponse<Blob>) {
|
|
59
|
-
const fileName = response.headers
|
|
60
|
-
.get('Content-Disposition')
|
|
61
|
-
?.split(';')[1]
|
|
62
|
-
.split('=')[1];
|
|
63
|
-
const blob: Blob = response.body as Blob;
|
|
64
|
-
const a = document.createElement('a');
|
|
65
|
-
a.download = fileName ?? 'undefined';
|
|
66
|
-
a.href = window.URL.createObjectURL(blob);
|
|
67
|
-
a.click();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export declare interface Sort<T> {
|
|
71
|
-
field: string;
|
|
72
|
-
direction: number;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface RequestParams<T> {
|
|
76
|
-
page: number;
|
|
77
|
-
size: number;
|
|
78
|
-
id?: string;
|
|
79
|
-
filter?: Partial<T>;
|
|
80
|
-
sort?: Sort<T>[];
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface Page<T> {
|
|
84
|
-
data: T[];
|
|
85
|
-
total: number;
|
|
86
|
-
size: number;
|
|
87
|
-
number: number;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export const DEFAULT_SEARCH_LIMIT = 50;
|
|
91
|
-
|
|
92
|
-
export const DEFAULT_SEARCH_PARAMS: RequestParams<any> = {
|
|
93
|
-
page: 0,
|
|
94
|
-
size: DEFAULT_SEARCH_LIMIT,
|
|
95
|
-
id: '',
|
|
96
|
-
};
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { HttpParams, HttpResponse } from '@angular/common/http';
|
|
3
|
+
import { InjectionToken } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
export const BASE_URL_PATH = new InjectionToken("BASE_URL_PATH");
|
|
6
|
+
|
|
7
|
+
export function requestParamsToHttpParams<T>(
|
|
8
|
+
requestParams: RequestParams<T>,
|
|
9
|
+
httpParams: HttpParams = new HttpParams()
|
|
10
|
+
): HttpParams {
|
|
11
|
+
httpParams = httpParams
|
|
12
|
+
.append('Limit', requestParams.size.toString())
|
|
13
|
+
.append('Offset', (requestParams.page * requestParams.size).toString());
|
|
14
|
+
if (requestParams.id != '' && requestParams.id != undefined) {
|
|
15
|
+
httpParams = httpParams.append('Id', requestParams.id as any);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
httpParams = getFilter(requestParams, httpParams);
|
|
19
|
+
httpParams = getSort(requestParams, httpParams);
|
|
20
|
+
|
|
21
|
+
return httpParams;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function getFilter<T>(
|
|
25
|
+
requestParams: RequestParams<any>,
|
|
26
|
+
httpParams: HttpParams
|
|
27
|
+
): HttpParams {
|
|
28
|
+
if (!requestParams.filter) {
|
|
29
|
+
return httpParams;
|
|
30
|
+
}
|
|
31
|
+
Object.keys(requestParams?.filter).forEach((key) => {
|
|
32
|
+
if (requestParams.filter?.[key as keyof Partial<T>]) {
|
|
33
|
+
httpParams = httpParams.append(
|
|
34
|
+
'Filter.' + key,
|
|
35
|
+
requestParams.filter?.[key as keyof Partial<T>]
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return httpParams;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getSort(
|
|
43
|
+
requestParams: RequestParams<any>,
|
|
44
|
+
httpParams: HttpParams
|
|
45
|
+
): HttpParams {
|
|
46
|
+
if (!requestParams.sort) {
|
|
47
|
+
return httpParams;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
requestParams.sort?.forEach((sort) => {
|
|
51
|
+
httpParams = httpParams
|
|
52
|
+
.append('Sort.Field', sort.field)
|
|
53
|
+
.append('Sort.Direction', sort.direction === -1 ? 'Desc' : 'Asc');
|
|
54
|
+
});
|
|
55
|
+
return httpParams;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function saveFile(response: HttpResponse<Blob>) {
|
|
59
|
+
const fileName = response.headers
|
|
60
|
+
.get('Content-Disposition')
|
|
61
|
+
?.split(';')[1]
|
|
62
|
+
.split('=')[1];
|
|
63
|
+
const blob: Blob = response.body as Blob;
|
|
64
|
+
const a = document.createElement('a');
|
|
65
|
+
a.download = fileName ?? 'undefined';
|
|
66
|
+
a.href = window.URL.createObjectURL(blob);
|
|
67
|
+
a.click();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export declare interface Sort<T> {
|
|
71
|
+
field: string;
|
|
72
|
+
direction: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface RequestParams<T> {
|
|
76
|
+
page: number;
|
|
77
|
+
size: number;
|
|
78
|
+
id?: string;
|
|
79
|
+
filter?: Partial<T>;
|
|
80
|
+
sort?: Sort<T>[];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface Page<T> {
|
|
84
|
+
data: T[];
|
|
85
|
+
total: number;
|
|
86
|
+
size: number;
|
|
87
|
+
number: number;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export const DEFAULT_SEARCH_LIMIT = 50;
|
|
91
|
+
|
|
92
|
+
export const DEFAULT_SEARCH_PARAMS: RequestParams<any> = {
|
|
93
|
+
page: 0,
|
|
94
|
+
size: DEFAULT_SEARCH_LIMIT,
|
|
95
|
+
id: '',
|
|
96
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { RequestParams } from "./base-http.models";
|
|
2
|
-
|
|
3
|
-
export const DEFAULT_SEARCH_LIMIT = 50;
|
|
4
|
-
|
|
5
|
-
export const DEFAULT_SEARCH_PARAMS: RequestParams<any> = {
|
|
6
|
-
page: 0,
|
|
7
|
-
size: DEFAULT_SEARCH_LIMIT,
|
|
8
|
-
id: '',
|
|
9
|
-
};
|
|
1
|
+
import { RequestParams } from "./base-http.models";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_SEARCH_LIMIT = 50;
|
|
4
|
+
|
|
5
|
+
export const DEFAULT_SEARCH_PARAMS: RequestParams<any> = {
|
|
6
|
+
page: 0,
|
|
7
|
+
size: DEFAULT_SEARCH_LIMIT,
|
|
8
|
+
id: '',
|
|
9
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface LazyLoad {
|
|
2
|
-
offset: number;
|
|
3
|
-
limit: number;
|
|
1
|
+
export interface LazyLoad {
|
|
2
|
+
offset: number;
|
|
3
|
+
limit: number;
|
|
4
4
|
}
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { Inject, Injectable } from '@angular/core';
|
|
4
|
-
import { map, Observable } from 'rxjs';
|
|
5
|
-
import {
|
|
6
|
-
BASE_URL_PATH,
|
|
7
|
-
Page,
|
|
8
|
-
RequestParams,
|
|
9
|
-
requestParamsToHttpParams,
|
|
10
|
-
} from '../base/models/base-http.models';
|
|
11
|
-
import { DEFAULT_SEARCH_PARAMS } from '../base/models/table-datasource.models';
|
|
12
|
-
import { LazyLoad } from '../models/lazy-load.model';
|
|
13
|
-
import { ClearUtils } from '../utils/clear.utils';
|
|
14
|
-
|
|
15
|
-
@Injectable({ providedIn: 'root' })
|
|
16
|
-
export abstract class BaseHttpService<T, TKey = number> {
|
|
17
|
-
basePath = '';
|
|
18
|
-
entityName!: string;
|
|
19
|
-
constructor(
|
|
20
|
-
readonly http: HttpClient,
|
|
21
|
-
@Inject(BASE_URL_PATH) basePath: string
|
|
22
|
-
) {
|
|
23
|
-
this.basePath = basePath;
|
|
24
|
-
}
|
|
25
|
-
fetchList(requestParams: RequestParams<T>): Observable<Page<T>> {
|
|
26
|
-
const params = requestParamsToHttpParams<T>(requestParams);
|
|
27
|
-
return this.http
|
|
28
|
-
.get<Page<T>>(this.basePath + this.entityName, { params })
|
|
29
|
-
.pipe(
|
|
30
|
-
map((response: Page<T>) => {
|
|
31
|
-
response.size = requestParams.size;
|
|
32
|
-
return response;
|
|
33
|
-
})
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
getData$(
|
|
38
|
-
entityName: keyof T,
|
|
39
|
-
searchTerm?: string | undefined,
|
|
40
|
-
lazyLoad?: LazyLoad
|
|
41
|
-
): Observable<T[]> {
|
|
42
|
-
const filter: Partial<T> = { [entityName]: searchTerm } as Partial<T>;
|
|
43
|
-
const params = lazyLoad
|
|
44
|
-
? requestParamsToHttpParams<T>({
|
|
45
|
-
...DEFAULT_SEARCH_PARAMS,
|
|
46
|
-
page: Math.round(lazyLoad.offset / lazyLoad.limit),
|
|
47
|
-
size: lazyLoad.limit,
|
|
48
|
-
filter,
|
|
49
|
-
})
|
|
50
|
-
: requestParamsToHttpParams<T>({
|
|
51
|
-
...DEFAULT_SEARCH_PARAMS,
|
|
52
|
-
filter,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
return this.http.get<T[]>(this.basePath + this.entityName, { params });
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
get(id: TKey, url?: string): Observable<T> {
|
|
59
|
-
const newUrl = url ? `/${url}/${id}` : `/${id}`;
|
|
60
|
-
return this.http.get<T>(newUrl);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
post(entity: Partial<T>, url?: string): Observable<T> {
|
|
64
|
-
const newUrl = url ? this.basePath + `/${url}` : this.basePath;
|
|
65
|
-
return this.http.post<T>(newUrl, entity);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
put(id: TKey, entity: Partial<T>, url?: string): Observable<T> {
|
|
69
|
-
const newUrl = this.basePath + (url ? `/${url}/${id}` : `/${id}`);
|
|
70
|
-
return this.http.put<T>(newUrl, entity);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
removeRange(entity: string[]) {
|
|
74
|
-
return this.http.delete(this.basePath + this.entityName, {
|
|
75
|
-
body: entity,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
createParams<T>(requestParams: RequestParams<T>): any {
|
|
80
|
-
const sorter = this.createSorter(requestParams);
|
|
81
|
-
const filter = JSON.parse(JSON.stringify(requestParams.filter));
|
|
82
|
-
const transformedFilter = filter;
|
|
83
|
-
ClearUtils.recursiveObjectAttributesDeletation(transformedFilter);
|
|
84
|
-
return {
|
|
85
|
-
paging: {
|
|
86
|
-
page: requestParams.page,
|
|
87
|
-
size: requestParams.size,
|
|
88
|
-
},
|
|
89
|
-
...(sorter && { sorting: sorter }),
|
|
90
|
-
...(transformedFilter && { filter: transformedFilter }),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
private createSorter<T>(requestParams: RequestParams<T>) {
|
|
95
|
-
if (requestParams?.sort?.length === 1) {
|
|
96
|
-
const sorter = requestParams.sort[0];
|
|
97
|
-
return {
|
|
98
|
-
sortField: sorter.field,
|
|
99
|
-
sortOrder: sorter.direction,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { Inject, Injectable } from '@angular/core';
|
|
4
|
+
import { map, Observable } from 'rxjs';
|
|
5
|
+
import {
|
|
6
|
+
BASE_URL_PATH,
|
|
7
|
+
Page,
|
|
8
|
+
RequestParams,
|
|
9
|
+
requestParamsToHttpParams,
|
|
10
|
+
} from '../base/models/base-http.models';
|
|
11
|
+
import { DEFAULT_SEARCH_PARAMS } from '../base/models/table-datasource.models';
|
|
12
|
+
import { LazyLoad } from '../models/lazy-load.model';
|
|
13
|
+
import { ClearUtils } from '../utils/clear.utils';
|
|
14
|
+
|
|
15
|
+
@Injectable({ providedIn: 'root' })
|
|
16
|
+
export abstract class BaseHttpService<T, TKey = number> {
|
|
17
|
+
basePath = '';
|
|
18
|
+
entityName!: string;
|
|
19
|
+
constructor(
|
|
20
|
+
readonly http: HttpClient,
|
|
21
|
+
@Inject(BASE_URL_PATH) basePath: string
|
|
22
|
+
) {
|
|
23
|
+
this.basePath = basePath;
|
|
24
|
+
}
|
|
25
|
+
fetchList(requestParams: RequestParams<T>): Observable<Page<T>> {
|
|
26
|
+
const params = requestParamsToHttpParams<T>(requestParams);
|
|
27
|
+
return this.http
|
|
28
|
+
.get<Page<T>>(this.basePath + this.entityName, { params })
|
|
29
|
+
.pipe(
|
|
30
|
+
map((response: Page<T>) => {
|
|
31
|
+
response.size = requestParams.size;
|
|
32
|
+
return response;
|
|
33
|
+
})
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
getData$(
|
|
38
|
+
entityName: keyof T,
|
|
39
|
+
searchTerm?: string | undefined,
|
|
40
|
+
lazyLoad?: LazyLoad
|
|
41
|
+
): Observable<T[]> {
|
|
42
|
+
const filter: Partial<T> = { [entityName]: searchTerm } as Partial<T>;
|
|
43
|
+
const params = lazyLoad
|
|
44
|
+
? requestParamsToHttpParams<T>({
|
|
45
|
+
...DEFAULT_SEARCH_PARAMS,
|
|
46
|
+
page: Math.round(lazyLoad.offset / lazyLoad.limit),
|
|
47
|
+
size: lazyLoad.limit,
|
|
48
|
+
filter,
|
|
49
|
+
})
|
|
50
|
+
: requestParamsToHttpParams<T>({
|
|
51
|
+
...DEFAULT_SEARCH_PARAMS,
|
|
52
|
+
filter,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
return this.http.get<T[]>(this.basePath + this.entityName, { params });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get(id: TKey, url?: string): Observable<T> {
|
|
59
|
+
const newUrl = url ? `/${url}/${id}` : `/${id}`;
|
|
60
|
+
return this.http.get<T>(newUrl);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
post(entity: Partial<T>, url?: string): Observable<T> {
|
|
64
|
+
const newUrl = url ? this.basePath + `/${url}` : this.basePath;
|
|
65
|
+
return this.http.post<T>(newUrl, entity);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
put(id: TKey, entity: Partial<T>, url?: string): Observable<T> {
|
|
69
|
+
const newUrl = this.basePath + (url ? `/${url}/${id}` : `/${id}`);
|
|
70
|
+
return this.http.put<T>(newUrl, entity);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
removeRange(entity: string[]) {
|
|
74
|
+
return this.http.delete(this.basePath + this.entityName, {
|
|
75
|
+
body: entity,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
createParams<T>(requestParams: RequestParams<T>): any {
|
|
80
|
+
const sorter = this.createSorter(requestParams);
|
|
81
|
+
const filter = JSON.parse(JSON.stringify(requestParams.filter));
|
|
82
|
+
const transformedFilter = filter;
|
|
83
|
+
ClearUtils.recursiveObjectAttributesDeletation(transformedFilter);
|
|
84
|
+
return {
|
|
85
|
+
paging: {
|
|
86
|
+
page: requestParams.page,
|
|
87
|
+
size: requestParams.size,
|
|
88
|
+
},
|
|
89
|
+
...(sorter && { sorting: sorter }),
|
|
90
|
+
...(transformedFilter && { filter: transformedFilter }),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
private createSorter<T>(requestParams: RequestParams<T>) {
|
|
95
|
+
if (requestParams?.sort?.length === 1) {
|
|
96
|
+
const sorter = requestParams.sort[0];
|
|
97
|
+
return {
|
|
98
|
+
sortField: sorter.field,
|
|
99
|
+
sortOrder: sorter.direction,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
type ArrayIntersectionType = (string | number)[]
|
|
2
|
-
|
|
3
|
-
export function isArrayIntersected(
|
|
4
|
-
array1: ArrayIntersectionType,
|
|
5
|
-
array2: ArrayIntersectionType,
|
|
6
|
-
) {
|
|
7
|
-
const filteredArray = array1.filter(value => array2.includes(value));
|
|
8
|
-
return filteredArray.length > 0;
|
|
9
|
-
}
|
|
1
|
+
type ArrayIntersectionType = (string | number)[]
|
|
2
|
+
|
|
3
|
+
export function isArrayIntersected(
|
|
4
|
+
array1: ArrayIntersectionType,
|
|
5
|
+
array2: ArrayIntersectionType,
|
|
6
|
+
) {
|
|
7
|
+
const filteredArray = array1.filter(value => array2.includes(value));
|
|
8
|
+
return filteredArray.length > 0;
|
|
9
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
export class ClearUtils {
|
|
2
|
-
|
|
3
|
-
static recursiveObjectAttributesTransformation(obj: any): void {
|
|
4
|
-
ClearUtils.recursiveObjectAttributesTraversal(
|
|
5
|
-
obj,
|
|
6
|
-
ClearUtils.transformEmptyStringToNullStringFn
|
|
7
|
-
);
|
|
8
|
-
}
|
|
9
|
-
static recursiveObjectAttributesDeletation(obj: any): void {
|
|
10
|
-
ClearUtils.recursiveObjectAttributesTraversal(
|
|
11
|
-
obj,
|
|
12
|
-
ClearUtils.deleteEmptyStringToNullStringFn
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
static transformEmptyStringToNullStringFn(obj: any, key: string) {
|
|
17
|
-
if (typeof obj[key] === 'string' && obj[key] === '') {
|
|
18
|
-
obj[key] = null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
static deleteEmptyStringToNullStringFn(obj: any, key: string) {
|
|
22
|
-
if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {
|
|
23
|
-
delete obj[key]
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static recursiveObjectAttributesTraversal(
|
|
29
|
-
obj: any,
|
|
30
|
-
transformationFn: (obj: any, key: string) => void
|
|
31
|
-
) {
|
|
32
|
-
if (
|
|
33
|
-
obj === null ||
|
|
34
|
-
transformationFn === null ||
|
|
35
|
-
typeof transformationFn !== 'function'
|
|
36
|
-
) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
Object.keys(obj).forEach((key) => {
|
|
41
|
-
transformationFn(obj, key);
|
|
42
|
-
|
|
43
|
-
if (typeof obj[key] === 'object') {
|
|
44
|
-
this.recursiveObjectAttributesTraversal(obj[key], transformationFn);
|
|
45
|
-
|
|
46
|
-
if (!Object.keys(obj[key]).length) {
|
|
47
|
-
delete obj[key];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
}
|
|
1
|
+
export class ClearUtils {
|
|
2
|
+
|
|
3
|
+
static recursiveObjectAttributesTransformation(obj: any): void {
|
|
4
|
+
ClearUtils.recursiveObjectAttributesTraversal(
|
|
5
|
+
obj,
|
|
6
|
+
ClearUtils.transformEmptyStringToNullStringFn
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
static recursiveObjectAttributesDeletation(obj: any): void {
|
|
10
|
+
ClearUtils.recursiveObjectAttributesTraversal(
|
|
11
|
+
obj,
|
|
12
|
+
ClearUtils.deleteEmptyStringToNullStringFn
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static transformEmptyStringToNullStringFn(obj: any, key: string) {
|
|
17
|
+
if (typeof obj[key] === 'string' && obj[key] === '') {
|
|
18
|
+
obj[key] = null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static deleteEmptyStringToNullStringFn(obj: any, key: string) {
|
|
22
|
+
if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {
|
|
23
|
+
delete obj[key]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
static recursiveObjectAttributesTraversal(
|
|
29
|
+
obj: any,
|
|
30
|
+
transformationFn: (obj: any, key: string) => void
|
|
31
|
+
) {
|
|
32
|
+
if (
|
|
33
|
+
obj === null ||
|
|
34
|
+
transformationFn === null ||
|
|
35
|
+
typeof transformationFn !== 'function'
|
|
36
|
+
) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Object.keys(obj).forEach((key) => {
|
|
41
|
+
transformationFn(obj, key);
|
|
42
|
+
|
|
43
|
+
if (typeof obj[key] === 'object') {
|
|
44
|
+
this.recursiveObjectAttributesTraversal(obj[key], transformationFn);
|
|
45
|
+
|
|
46
|
+
if (!Object.keys(obj[key]).length) {
|
|
47
|
+
delete obj[key];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import moment from 'moment';
|
|
2
|
-
|
|
3
|
-
export function transformData(data: any){
|
|
4
|
-
if (data) {
|
|
5
|
-
if (moment.isMoment(data)) {
|
|
6
|
-
return moment(data)
|
|
7
|
-
.toDate()
|
|
8
|
-
.toISOString();
|
|
9
|
-
}
|
|
10
|
-
else if (data instanceof Date) {
|
|
11
|
-
return data.toISOString();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return data;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function convertToDate(data: any){
|
|
18
|
-
if (data) {
|
|
19
|
-
if (!isNaN(Date.parse(data))) {
|
|
20
|
-
return new Date(data);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return data;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function convertToDateTime(data: any){
|
|
27
|
-
if (data) {
|
|
28
|
-
if (!isNaN(Date.parse(data))) {
|
|
29
|
-
const date = new Date(data);
|
|
30
|
-
return moment(date).format('DD.MM.yyyy HH:mm');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return data;
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
|
|
3
|
+
export function transformData(data: any){
|
|
4
|
+
if (data) {
|
|
5
|
+
if (moment.isMoment(data)) {
|
|
6
|
+
return moment(data)
|
|
7
|
+
.toDate()
|
|
8
|
+
.toISOString();
|
|
9
|
+
}
|
|
10
|
+
else if (data instanceof Date) {
|
|
11
|
+
return data.toISOString();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function convertToDate(data: any){
|
|
18
|
+
if (data) {
|
|
19
|
+
if (!isNaN(Date.parse(data))) {
|
|
20
|
+
return new Date(data);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function convertToDateTime(data: any){
|
|
27
|
+
if (data) {
|
|
28
|
+
if (!isNaN(Date.parse(data))) {
|
|
29
|
+
const date = new Date(data);
|
|
30
|
+
return moment(date).format('DD.MM.yyyy HH:mm');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return data;
|
|
34
34
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any){
|
|
2
|
-
if (keyOrFn instanceof Function) {
|
|
3
|
-
return keyOrFn(row);
|
|
4
|
-
}
|
|
5
|
-
else if (typeof keyOrFn === 'string') {
|
|
6
|
-
const value = row[keyOrFn];
|
|
7
|
-
if (value){
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
else if (typeof keyOrFn === 'boolean') {
|
|
12
|
-
return keyOrFn;
|
|
13
|
-
}
|
|
14
|
-
return '';
|
|
15
|
-
}
|
|
1
|
+
export function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any){
|
|
2
|
+
if (keyOrFn instanceof Function) {
|
|
3
|
+
return keyOrFn(row);
|
|
4
|
+
}
|
|
5
|
+
else if (typeof keyOrFn === 'string') {
|
|
6
|
+
const value = row[keyOrFn];
|
|
7
|
+
if (value){
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else if (typeof keyOrFn === 'boolean') {
|
|
12
|
+
return keyOrFn;
|
|
13
|
+
}
|
|
14
|
+
return '';
|
|
15
|
+
}
|
package/src/test-setup.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
|
|
2
|
-
globalThis.ngJest = {
|
|
3
|
-
testEnvironmentOptions: {
|
|
4
|
-
errorOnUnknownElements: true,
|
|
5
|
-
errorOnUnknownProperties: true,
|
|
6
|
-
},
|
|
7
|
-
};
|
|
8
|
-
import 'jest-preset-angular/setup-jest';
|
|
1
|
+
// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
|
|
2
|
+
globalThis.ngJest = {
|
|
3
|
+
testEnvironmentOptions: {
|
|
4
|
+
errorOnUnknownElements: true,
|
|
5
|
+
errorOnUnknownProperties: true,
|
|
6
|
+
},
|
|
7
|
+
};
|
|
8
|
+
import 'jest-preset-angular/setup-jest';
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es2022",
|
|
4
|
-
"useDefineForClassFields": false,
|
|
5
|
-
"forceConsistentCasingInFileNames": true,
|
|
6
|
-
"strict": true,
|
|
7
|
-
"noImplicitOverride": true,
|
|
8
|
-
"noPropertyAccessFromIndexSignature": true,
|
|
9
|
-
"noImplicitReturns": true,
|
|
10
|
-
"noFallthroughCasesInSwitch": true
|
|
11
|
-
},
|
|
12
|
-
"files": [],
|
|
13
|
-
"include": [],
|
|
14
|
-
"references": [
|
|
15
|
-
{
|
|
16
|
-
"path": "./tsconfig.lib.json"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"path": "./tsconfig.spec.json"
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
"extends": "../../../tsconfig.base.json",
|
|
23
|
-
"angularCompilerOptions": {
|
|
24
|
-
"enableI18nLegacyMessageIdFormat": false,
|
|
25
|
-
"strictInjectionParameters": true,
|
|
26
|
-
"strictInputAccessModifiers": true,
|
|
27
|
-
"strictTemplates": true
|
|
28
|
-
}
|
|
29
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2022",
|
|
4
|
+
"useDefineForClassFields": false,
|
|
5
|
+
"forceConsistentCasingInFileNames": true,
|
|
6
|
+
"strict": true,
|
|
7
|
+
"noImplicitOverride": true,
|
|
8
|
+
"noPropertyAccessFromIndexSignature": true,
|
|
9
|
+
"noImplicitReturns": true,
|
|
10
|
+
"noFallthroughCasesInSwitch": true
|
|
11
|
+
},
|
|
12
|
+
"files": [],
|
|
13
|
+
"include": [],
|
|
14
|
+
"references": [
|
|
15
|
+
{
|
|
16
|
+
"path": "./tsconfig.lib.json"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "./tsconfig.spec.json"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"extends": "../../../tsconfig.base.json",
|
|
23
|
+
"angularCompilerOptions": {
|
|
24
|
+
"enableI18nLegacyMessageIdFormat": false,
|
|
25
|
+
"strictInjectionParameters": true,
|
|
26
|
+
"strictInputAccessModifiers": true,
|
|
27
|
+
"strictTemplates": true
|
|
28
|
+
}
|
|
29
|
+
}
|
package/tsconfig.lib.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "../../../dist/out-tsc",
|
|
5
|
-
"declaration": true,
|
|
6
|
-
"declarationMap": true,
|
|
7
|
-
"inlineSources": true,
|
|
8
|
-
"types": []
|
|
9
|
-
},
|
|
10
|
-
"exclude": [
|
|
11
|
-
"src/**/*.spec.ts",
|
|
12
|
-
"src/test-setup.ts",
|
|
13
|
-
"jest.config.ts",
|
|
14
|
-
"src/**/*.test.ts"
|
|
15
|
-
],
|
|
16
|
-
"include": ["src/**/*.ts"]
|
|
17
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "../../../dist/out-tsc",
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"declarationMap": true,
|
|
7
|
+
"inlineSources": true,
|
|
8
|
+
"types": []
|
|
9
|
+
},
|
|
10
|
+
"exclude": [
|
|
11
|
+
"src/**/*.spec.ts",
|
|
12
|
+
"src/test-setup.ts",
|
|
13
|
+
"jest.config.ts",
|
|
14
|
+
"src/**/*.test.ts"
|
|
15
|
+
],
|
|
16
|
+
"include": ["src/**/*.ts"]
|
|
17
|
+
}
|
package/tsconfig.lib.prod.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.lib.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"declarationMap": false
|
|
5
|
-
},
|
|
6
|
-
"angularCompilerOptions": {
|
|
7
|
-
"compilationMode": "partial"
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.lib.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"declarationMap": false
|
|
5
|
+
},
|
|
6
|
+
"angularCompilerOptions": {
|
|
7
|
+
"compilationMode": "partial"
|
|
8
|
+
}
|
|
9
|
+
}
|
package/tsconfig.spec.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "../../../dist/out-tsc",
|
|
5
|
-
"module": "commonjs",
|
|
6
|
-
"target": "es2016",
|
|
7
|
-
"types": ["jest", "node"]
|
|
8
|
-
},
|
|
9
|
-
"files": ["src/test-setup.ts"],
|
|
10
|
-
"include": [
|
|
11
|
-
"jest.config.ts",
|
|
12
|
-
"src/**/*.test.ts",
|
|
13
|
-
"src/**/*.spec.ts",
|
|
14
|
-
"src/**/*.d.ts"
|
|
15
|
-
]
|
|
16
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "../../../dist/out-tsc",
|
|
5
|
+
"module": "commonjs",
|
|
6
|
+
"target": "es2016",
|
|
7
|
+
"types": ["jest", "node"]
|
|
8
|
+
},
|
|
9
|
+
"files": ["src/test-setup.ts"],
|
|
10
|
+
"include": [
|
|
11
|
+
"jest.config.ts",
|
|
12
|
+
"src/**/*.test.ts",
|
|
13
|
+
"src/**/*.spec.ts",
|
|
14
|
+
"src/**/*.d.ts"
|
|
15
|
+
]
|
|
16
|
+
}
|