Skip to content

A simple way to enforce required method parameters in angular

License

Notifications You must be signed in to change notification settings

schnogz/ng-required-params

Repository files navigation

ng-required-params

NPM Version Dependencies Contributions Welcome

A tiny angular module that enforces required parameters on function calls by utilizing ES6 default parameters.

Install

Install using npm or bower:

$ npm install ng-required-params --save
$ bower install ng-required-params --save

ng-required-params has no dependencies other than an ES6 codebase and Angular itself.

Usage

Simply require ng-required-params as a dependency for your app or any angular module.

angular
  .module('MyApp', ['ng-required-params'])
  .controller('MyController', ['$scope', 'ngRequired', function ($scope, ngRequired) {
    $scope.incrementCounter = (counter = ngRequired`counter`) => {
      console.log('Current count: ' + counter++);
    };
      
    $scope.incrementCounter(5); // Logs ==> Current count: 6
    $scope.incrementCounter();  // Error ==> Missing parameter: counter
}]);

Since required parameters are fundamental and may be often used, it makes sense to make the call to the service as short and easy-to-type as possible. Therefore it is recommended to use template literal syntax foo´string´ for calling ngRequired instead of the normal round brackets syntax foo('string'). You may also want to name the imported module as "ngReg" or "req" instead of "ngRequired" to save even more keystrokes.

Use with a module loader

If you are using a module loader, you can import the module name when requiring it in angular. This works with any AMD/UMD/CommonJS module loader.

import ngRequiredParamsModule from 'ng-required-params';

angular.module('myModule', [ngRequiredParamsModule.name]);