
Security News
Package Maintainers Call for Improvements to GitHub’s New npm Security Plan
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
@fullerstack/ngx-config
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-config
to receive the environment
object and provide it to all other publishable libs via an injectable service such as ConfigService
.
@fullerstack/ngx-config attempts to streamline the sharing of the content of the environment.ts
while promoting DRY.
npm i @fullerstack/ngx-config |OR| yarn add @fullerstack/ngx-config
// In your environment{prod,staging}.ts
import { ApplicationConfig, HttpMethod } from '@fullerstack/ngx-config';
export const environment: Readonly<ApplicationConfig> = {
// production, staging or development
production: false,
// one or more app specific field(s)
version: '1.0.0',
};
// In your app.module.ts
import { ConfigModule } from '@fullerstack/ngx-config';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, ConfigModule.forRoot(environment)],
bootstrap: [AppComponent],
})
export class AppModule {}
// In your app.component.ts or (some.service.ts)
import { Component } from '@angular/core';
import { ConfigService } from '@fullerstack/ngx-config';
@Component({
selector: 'fullerstack-root',
})
export class AppComponent {
title: string;
constructor(public config: ConfigService) {
this.title = this.config.options.appName;
}
}
@fullerstack/ngx-config
can also be used to fetch remote configuration prior to start of an Angular app.
// In your environment{prod,staging}.ts
import { ApplicationConfig, HttpMethod } from '@fullerstack/ngx-config';
export const environment: ApplicationConfig = {
// production, staging or development
production: true,
// release version
version: '1.0.0',
// remote configuration (from the server prior to ng bootstrap)
remoteConfig: {
// server url to get remote config from (default = null)
endpoint: '/api/config',
// 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 { ConfigModule } from '@fullerstack/ngx-config';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, ConfigModule.forRoot(environment)],
bootstrap: [AppComponent],
})
export class AppModule {}
// In your app.component.ts or (some.service.ts)
import { Component } from '@angular/core';
import { ConfigService } from '@fullerstack/ngx-config';
import { merge } from 'lodash';
@Component({
selector: 'fullerstack-root'
})
export class AppComponent {
title: string;
options = {};
constructor(public config: ConfigService) {
this.options = merge({ name: 'AppComponent' }, this.config.options};
const remoteConfigData = 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
We found that @fullerstack/ngx-config 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
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.