Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
@fullerstack/ngx-cfg
Advanced tools
An Angular Configuration Library - Handles local and remote configurations
In general, passing the environment.ts
into your publishable libraries may not be possible unless a relative path is used. However, relative paths will break the dependency graph of your mono-repo stack. This is due to the fact that the libs should not have any knowledge of the applications using them. If so, that will constitute a circular dependency.
Till Angular
natively supports something like, import { environment } from '@angular/core/environment'
, your publishable libs must implement an InjectionToken
to receive the environment
object and provide it with an APP_INITIALIZER
directly during the app's bootstrapping.
Alternatively, you can have a simple lib such as @fullerstack/ngx-cfg
to receive the environment
object and provide it to all other publishable libs via an injectable service such as CfgService
.
@fullerstack/ngx-cfg attempts to streamline the sharing of the content of the environment.ts
while promoting DRY DRY.
npm i @fullerstack/ngx-cfg |OR| yarn add @fullerstack/ngx-cfg
// In your environment{prod,staging}.ts
import { ApplicationCfg, HttpMethod } from '@fullerstack/ngx-cfg';
export const environment: Readonly<ApplicationCfg> = {
// app name
appName: 'FullerStack',
// target (browser, mobile, desktop)
target: TargetPlatform.web,
// production, staging or development
production: false,
// one or more app specific field(s)
logger: {
// Log level, (default = none)
level: LogLevels.info,
},
};
// In your app.module.ts
import { CfgModule } from '@fullerstack/ngx-cfg';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, CfgModule.forRoot(environment)],
bootstrap: [AppComponent],
})
export class AppModule {}
// In your app.component.ts or (some.service.ts)
import { Component } from '@angular/core';
import { CfgService } from '@fullerstack/ngx-cfg';
@Component({
selector: 'app-root',
})
export class AppComponent {
title: string;
constructor(public cfgService: CfgService) {
this.title = this.cfgService.options.appName;
}
}
@fullerstack/ngx-cfg
can also be used to fetch remote configuration prior to start of an Angular app.
// In your environment{prod,staging}.ts
import { ApplicationCfg, HttpMethod } from '@fullerstack/ngx-cfg';
export const environment: ApplicationCfg = {
// production, staging or development
production: true,
// release version
version: '1.0.0',
// app name
appName: 'WebApp',
// remote configuration (from the server prior to ng bootstrap)
remoteCfg: {
// server url to get remote config from (default = null)
endpoint: '/api/cfg',
// GET or POST http method to connect to remote server (default = get)
method: HttpMethod.GET,
// Max timeout of http connection to remote server (default = 2 seconds)
timeout: 3,
// http headers to include in http connection to remote server
headers: { 'Content-Type': 'application/json' }
// body of request when using http POST method (default = {})
body: {
// one or more app specific field(s)
}
}
// one or more app specific field(s)
};
// In your app.module.ts
import { CfgModule } from '@fullerstack/ngx-cfg';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, CfgModule.forRoot(environment)],
bootstrap: [AppComponent],
})
export class AppModule {}
// In your app.component.ts or (some.service.ts)
import { Component } from '@angular/core';
import { CfgService } from '@fullerstack/ngx-cfg';
import { merge } from 'lodash';
@Component({
selector: 'app-root'
})
export class AppComponent {
title: string;
options = {};
constructor(public cfgService: CfgService) {
this.options = merge({ name: 'AppComponent' }, this.cfgService.options};
const remoteCfgData = this.options.remoteData;
}
}
Released under a (MIT) license.
X.Y.Z Version
`MAJOR` version -- making incompatible API changes
`MINOR` version -- adding functionality in a backwards-compatible manner
`PATCH` version -- making backwards-compatible bug fixes
FAQs
A Configuration Utility Library for Angular
The npm package @fullerstack/ngx-cfg receives a total of 0 weekly downloads. As such, @fullerstack/ngx-cfg popularity was classified as not popular.
We found that @fullerstack/ngx-cfg demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.