Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

angular-scope-types

alianza-dev130MIT1.0.0-beta.7

checkers and other utilities for using api-check with angular

api-check, angular-scope-types, react propTypes, angular scopeTypes, angular, angularjs, apiCheck.js

readme

angular-scope-types

npm version npm downloads Build Status Code Coverage Gitter

Demo

This is still in the early stages. This is currently available as a beta on npm. Basically this is intended to bring a concept like React propTypes to Angular.

This is based on trying to support this issue with as clean an api as possible.

Usage

angular-scope-types uses api-check to do api checking. api-check is basically React propTypes without React. So you'll need to install api-check into your project and include the script first. It is available on npm via npm install --save api-check

You will then create your own instance of apiCheck and use that to create your own instance of angular-scope-types. (Note, you don't have to create your own instance, but it is recommended).

Both api-check and angular-scope-types are exported as UMD modules meaning you can use them with CommonJS, AMD, or as globals (apiCheck and angularScopeTypes respectively).

Here's a quick example for recommended usage (uses globals):


// create your apiCheckInstance
var myApiCheck = apiCheck({
  output: {
    prefix: 'Global prefix',
    suffix: 'global suffix',
    docsBaseUrl: 'https://example.com/errors-and-warnings#'
  },
  disabled: SOME_VARIABLE_THAT_SAYS_YOU_ARE_ON_PRODUCTION
}, {
  /* custom checkers if you wanna */
});


// create your angularScopeTypesInstance
var myScopeTypes = angularScopeTypes({
  disabled: SOME_VARIABLE_THAT_SAYS_YOU_ARE_ON_PRODUCTION,
  apiCheckInstance: myApiCheck
});

// get your angular module
var yourModule = angular.module('yourModule');

// add your instance's `directive` function to your module to make it injectable
yourModule.constant('myScopeTypesDirective', myScopeTypes.directive);


// later in your code for a directive:
yourModule.directive('myDirective', function(myScopeTypesDirective) {
  return myScopeTypesDirective({
    templateUrl: '/my-directive.html',
    scope: {foo: '=', bar: '@'},
    scopeTypes: getScopeTypes
  });

  function getScopeTypes(check) {
    return {
      foo: check.shape({
        isFoo: check.bool,
        isBar: check.bool,
        someNum: check.number,
        someOptional: check.object.optional
      }).strict.optional,
      bar: check.oneOf(['fooString', 'barString'])
    };
  }
});

See and play with the demo for a live example.

LICENSE MIT

changelog

1.0.0-beta.7

Bug Fixes

  • Allowing replace in the ddo checker.

1.0.0-beta.6

Other

  • Fixing link in README.md

1.0.0-beta.5

Breaking Changes

  • Now, if a checker is not optional, the api-check for it will be evaluated immediately.

New Features

  • Adding displayName for the wrapper controller for error messaging and debugging.
  • Adding scopeTypesFunction to the ddo to allow you to specify warn or throw.

1.0.0-beta.4

New Features

  • Adding ability to specify your own instance of an apiCheck which allows you to use your own checkers.

Bug Fixes

  • Fixing the prefix for the scopeTypes instance of an apiCheck to be angular-scope-types rather than api-check-angular

1.0.0-beta.3

Bug Fixes

  • Fixing issue where a new instance of the controller was created and the properties were not bound to that instance.

1.0.0-beta.2

Other

  • Adding .npmignore

1.0.0-beta.1

Breaking changes

  • scopeTypes must be a function that accepts the api-check instance and returns the api (perf improvement)
  • Changing what is exported to be the scopeTypesFactory function.

New Features

  • Adding disabled option.
  • Improved the API, adding more tests, adding example.

1.0.0-beta.0

  • Initial release