
Security News
Feross on TBPN: How North Korea Hijacked Axios
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.
angular-env
Advanced tools
An useful plugin that allows you to set up different variables such as API Url, Sockets, Paths, etc, based on the context of script execution, which means you can set up (for example) different API endpoints depending if you are working on development, stage or production.
You can install this package either with npm or with bower.
bower install angular-environment
npm install angular-environment
Then add environment as a dependency for your app:
angular.module('yourApp', ['environment']);
Sometimes, during the development of our applications, we need to use different variables depending on what context our application is running.
Let's say you're working on an application that handles an API, and you have a version of your API running locally on your computer or laptop for testing purposes. Besides, you have the final or in-production API running on a server. Certainly, the API endpoints are not the same in both environments, so, this plugin allows you to work with same variable for the same purpose but using different values depending on what context your application is running: development, stage or production.
Even better, you can execute code depending on the running context. In some cases you probably could need run pieces of code only for development environment and not in for production, or vice versa.
Said that, let's go to configure the plugin and learn how to use it.
envServiceProvider into your Angular App config area.domains and vars objects.*) to describe your domains, i.e.: *.domain.com.defaults object within vars, to catch not-defined variables in the environments.envServiceProvider.check() which will automatically set the appropriate environment based on given domains.Here's a full example:
angular.module('yourApp', ['environment']).
config(function(envServiceProvider) {
// set the domains and variables for each environment
envServiceProvider.config({
domains: {
development: ['localhost', 'acme.dev.local'],
production: ['acme.com', '*.acme.com', 'acme.dev.prod'],
test: ['test.acme.com', 'acme.dev.test', 'acme.*.com'],
// anotherStage: ['domain1', 'domain2']
},
vars: {
development: {
apiUrl: '//api.acme.dev.local/v1',
staticUrl: '//static.acme.dev.local',
// antoherCustomVar: 'lorem',
// antoherCustomVar: 'ipsum'
},
test: {
apiUrl: '//api.acme.dev.test/v1',
staticUrl: '//static.acme.dev.test',
// antoherCustomVar: 'lorem',
// antoherCustomVar: 'ipsum'
},
production: {
apiUrl: '//api.acme.com/v1',
staticUrl: '//static.acme.com',
// antoherCustomVar: 'lorem',
// antoherCustomVar: 'ipsum'
},
// anotherStage: {
// customVar: 'lorem',
// customVar: 'ipsum'
// },
defaults: {
apiUrl: '//api.default.com/v1',
staticUrl: '//static.default.com'
}
}
});
// run the environment check, so the comprobation is made
// before controllers and services are built
envServiceProvider.check();
});
In order to read the configured environment variables alongside your Angular App, you need to inject envService into your controllers or services:
controller('SomeController', ['$scope', 'envService', function($scope, envService) {
// ...
}]);
Returns a string with the current environment
var environment = envService.get(); // gets 'development'
Sets desired environment. This will overwrite the settled environment during the automatically check in Angular config process (see Configuration topic).
envService.set('production'); // will set 'production' as current environment
Returns true or false if the given environment matches with the current environment.
if (envService.is('production')) {
// actually, the current environment is production
// so, let's make some logic only for production environment
}
else {
// we're not in production environment
}
Returns the desired environment variable. If no argument is passed, this method will return all variables associated to the current environment.
var apiUrl = envService.read('apiUrl'); // gets '//localhost/api'
var allVars = envService.read(); // gets all variables configured under the current environment
If the desired variable passed as argument doesn't exists in the current environment, the plugin will check into defaults object.
To report bugs or request features, please visit the Issue Tracker.
Please feel free to contribute to the plugin with new issues, requests, unit tests, code fixes or new features. If you want to contribute with some code, create a feature branch and send your pull request.
Copyright 2015-2017, Juan Pablo Barrientos Lagos (juanpablob)
Licensed under The MIT License
Redistributions of files must retain the above copyright notice.
FAQs
AngujarJS Environment Plugin
The npm package angular-env receives a total of 32 weekly downloads. As such, angular-env popularity was classified as not popular.
We found that angular-env 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
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.

Security News
OpenSSF has issued a high-severity advisory warning open source developers of an active Slack-based campaign using impersonation to deliver malware.

Research
/Security News
Malicious packages published to npm, PyPI, Go Modules, crates.io, and Packagist impersonate developer tooling to fetch staged malware, steal credentials and wallets, and enable remote access.