@acontplus/ng-config 1.0.3 → 1.0.4
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/README.md +14 -9
- package/fesm2022/acontplus-ng-config.mjs +4 -5
- package/fesm2022/acontplus-ng-config.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# @acontplus/ng-config
|
|
2
2
|
|
|
3
|
-
Angular configuration library for AcontPlus applications, providing environment
|
|
3
|
+
Angular configuration library for AcontPlus applications, providing environment
|
|
4
|
+
configuration, authentication constants, and app configuration services.
|
|
4
5
|
|
|
5
6
|
## Installation
|
|
6
7
|
|
|
@@ -10,22 +11,26 @@ npm install @acontplus/ng-config
|
|
|
10
11
|
|
|
11
12
|
## Features
|
|
12
13
|
|
|
13
|
-
- **Environment Configuration**: Type-safe environment token for dependency
|
|
14
|
+
- **Environment Configuration**: Type-safe environment token for dependency
|
|
15
|
+
injection
|
|
14
16
|
- **Authentication Constants**: Predefined constants for authentication settings
|
|
15
|
-
- **App Configuration Service**: Service for managing application-wide
|
|
16
|
-
|
|
17
|
-
- **
|
|
17
|
+
- **App Configuration Service**: Service for managing application-wide
|
|
18
|
+
configuration
|
|
19
|
+
- **Angular Integration**: Seamless integration with Angular's dependency
|
|
20
|
+
injection system
|
|
21
|
+
- **TypeScript Support**: Full type safety with comprehensive TypeScript
|
|
22
|
+
definitions
|
|
18
23
|
|
|
19
24
|
## Usage
|
|
20
25
|
|
|
21
26
|
### Environment Configuration
|
|
22
27
|
|
|
23
28
|
```typescript
|
|
24
|
-
import {
|
|
29
|
+
import { ENVIRONMENT } from '@acontplus/ng-config';
|
|
25
30
|
|
|
26
31
|
@Component({...})
|
|
27
32
|
export class MyComponent {
|
|
28
|
-
constructor(@Inject(
|
|
33
|
+
constructor(@Inject(ENVIRONMENT) private environment: Environment) {
|
|
29
34
|
console.log(this.environment.apiUrl);
|
|
30
35
|
}
|
|
31
36
|
}
|
|
@@ -47,9 +52,9 @@ export class MyComponent {
|
|
|
47
52
|
### Authentication Constants
|
|
48
53
|
|
|
49
54
|
```typescript
|
|
50
|
-
import {
|
|
55
|
+
import { AUTH_API } from '@acontplus/ng-config';
|
|
51
56
|
|
|
52
|
-
const
|
|
57
|
+
const authEndpoint = AUTH_API.AUTH;
|
|
53
58
|
```
|
|
54
59
|
|
|
55
60
|
## Running unit tests
|
|
@@ -3,8 +3,7 @@ import { InjectionToken, inject, Injectable } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
// src/lib/constants/auth.constants.ts
|
|
5
5
|
const AUTH_API = {
|
|
6
|
-
|
|
7
|
-
ACCOUNT: '/account/',
|
|
6
|
+
AUTH: 'auth/',
|
|
8
7
|
};
|
|
9
8
|
|
|
10
9
|
// src/lib/constants/index.ts
|
|
@@ -16,11 +15,11 @@ const AUTH_API = {
|
|
|
16
15
|
const ENVIRONMENT = new InjectionToken('ENVIRONMENT', {
|
|
17
16
|
factory: () => ({
|
|
18
17
|
isProduction: false,
|
|
19
|
-
apiBaseUrl: 'http://localhost:
|
|
18
|
+
apiBaseUrl: 'http://localhost:4200/api/',
|
|
20
19
|
tokenKey: 'access_token',
|
|
21
20
|
refreshTokenKey: 'refresh_token',
|
|
22
|
-
clientId: '
|
|
23
|
-
loginRoute: '
|
|
21
|
+
clientId: 'angular-app',
|
|
22
|
+
loginRoute: 'auth',
|
|
24
23
|
}),
|
|
25
24
|
});
|
|
26
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acontplus-ng-config.mjs","sources":["../tmp-esm2022/lib/constants/auth.constants.js","../tmp-esm2022/lib/constants/index.js","../tmp-esm2022/lib/environment.token.js","../tmp-esm2022/lib/services/app-config.service.js","../tmp-esm2022/acontplus-ng-config.js"],"sourcesContent":["// src/lib/constants/auth.constants.ts\nexport const AUTH_API = {\n
|
|
1
|
+
{"version":3,"file":"acontplus-ng-config.mjs","sources":["../tmp-esm2022/lib/constants/auth.constants.js","../tmp-esm2022/lib/constants/index.js","../tmp-esm2022/lib/environment.token.js","../tmp-esm2022/lib/services/app-config.service.js","../tmp-esm2022/acontplus-ng-config.js"],"sourcesContent":["// src/lib/constants/auth.constants.ts\nexport const AUTH_API = {\n AUTH: 'auth/',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvYXV0aC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsT0FBTztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9hdXRoLmNvbnN0YW50cy50c1xuZXhwb3J0IGNvbnN0IEFVVEhfQVBJID0ge1xuICBBVVRIOiAnYXV0aC8nLFxufSBhcyBjb25zdDtcbiJdfQ==","// src/lib/constants/index.ts\nexport * from './auth.constants';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmNvbnN0YW50cyc7XG4iXX0=","import { InjectionToken } from '@angular/core';\n/**\n * @const ENVIRONMENT\n * Injection token for the environment interface to be provided by the applications.\n */\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT', {\n factory: () => ({\n isProduction: false,\n apiBaseUrl: 'http://localhost:4200/api/',\n tokenKey: 'access_token',\n refreshTokenKey: 'refresh_token',\n clientId: 'angular-app',\n loginRoute: 'auth',\n }),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9lbnZpcm9ubWVudC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLEVBQUU7SUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG4vKipcbiAqIEBjb25zdCBFTlZJUk9OTUVOVFxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0aGUgZW52aXJvbm1lbnQgaW50ZXJmYWNlIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0VOVklST05NRU5UJywge1xuICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgIGlzUHJvZHVjdGlvbjogZmFsc2UsXG4gICAgYXBpQmFzZVVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMC9hcGkvJyxcbiAgICB0b2tlbktleTogJ2FjY2Vzc190b2tlbicsXG4gICAgcmVmcmVzaFRva2VuS2V5OiAncmVmcmVzaF90b2tlbicsXG4gICAgY2xpZW50SWQ6ICdhbmd1bGFyLWFwcCcsXG4gICAgbG9naW5Sb3V0ZTogJ2F1dGgnLFxuICB9KSxcbn0pO1xuIl19","import { Injectable, inject } from '@angular/core';\nimport { ENVIRONMENT } from '../environment.token';\nimport * as i0 from \"@angular/core\";\nexport class AppConfigService {\n environment = inject(ENVIRONMENT);\n defaultTimeout = 30000; // Default timeout\n get apiUrl() {\n return this.environment.apiBaseUrl;\n }\n get apiTimeout() {\n return this.defaultTimeout;\n }\n get enableLogging() {\n return !this.environment.isProduction;\n }\n get production() {\n return this.environment.isProduction;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29uZmlnL3NyYy9saWIvc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFVbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7SUFFM0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDdkMsQ0FBQzt1R0FsQlUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi9lbnZpcm9ubWVudC50b2tlbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcENvbmZpZyB7XG4gIGFwaVVybDogc3RyaW5nO1xuICBhcGlUaW1lb3V0OiBudW1iZXI7XG4gIGVuYWJsZUxvZ2dpbmc6IGJvb2xlYW47XG4gIHByb2R1Y3Rpb246IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElBcHBDb25maWcge1xuICBwcml2YXRlIGVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dCA9IDMwMDAwOyAvLyBEZWZhdWx0IHRpbWVvdXRcblxuICBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBpQmFzZVVybDtcbiAgfVxuXG4gIGdldCBhcGlUaW1lb3V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRpbWVvdXQ7XG4gIH1cblxuICBnZXQgZW5hYmxlTG9nZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG5cbiAgZ2V0IHByb2R1Y3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbmZpZy9zcmMvYWNvbnRwbHVzLW5nLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;AAAA;AACY,MAAC,QAAQ,GAAG;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB;;ACHA;;ACCA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;AAC7D,IAAI,OAAO,EAAE,OAAO;AACpB,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,UAAU,EAAE,4BAA4B;AAChD,QAAQ,QAAQ,EAAE,cAAc;AAChC,QAAQ,eAAe,EAAE,eAAe;AACxC,QAAQ,QAAQ,EAAE,aAAa;AAC/B,QAAQ,UAAU,EAAE,MAAM;AAC1B,KAAK,CAAC;AACN,CAAC;;ACXM,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;AAC1C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;AAC7C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;AAC5C;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC3K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACxBb;AACA;AACA;;;;"}
|
package/index.d.ts
CHANGED
package/package.json
CHANGED