Socket
Socket
Sign inDemoInstall

angular-scope-types

Package Overview
Dependencies
2
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0-beta.6 to 1.0.0-beta.7

6

CHANGELOG.md

@@ -0,1 +1,7 @@

# 1.0.0-beta.7
## Bug Fixes
- Allowing `replace` in the `ddo` checker.
# 1.0.0-beta.6

@@ -2,0 +8,0 @@

3

dist/angular-scope-types.js

@@ -1,2 +0,2 @@

//! angular-scope-types version 1.0.0-beta.6 built with ♥ by Kent C. Dodds <kent@doddsfamily.us> (http://kent.doddsfamily.us) (ó ì_í)=óò=(ì_í ò)
//! angular-scope-types version 1.0.0-beta.7 built with ♥ by Kent C. Dodds <kent@doddsfamily.us> (http://kent.doddsfamily.us) (ó ì_í)=óò=(ì_í ò)

@@ -374,2 +374,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

restrict: check.oneOf(['A', 'E', 'C', 'AE', 'EA', 'AEC', 'AC', 'EC']).optional,
replace: check.bool.optional,
templateNamespace: check.oneOf(['html', 'svg', 'math']).optional,

@@ -376,0 +377,0 @@ scope: check.oneOfType([check.bool, check.objectOf(check.string)]).optional, // TODO, make an advanced scope checker

@@ -1,3 +0,3 @@

//! angular-scope-types version 1.0.0-beta.6 built with ♥ by Kent C. Dodds <kent@doddsfamily.us> (http://kent.doddsfamily.us) (ó ì_í)=óò=(ì_í ò)
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("api-check"),require("angular")):"function"==typeof define&&define.amd?define(["api-check","angular"],t):"object"==typeof exports?exports.angularScopeTypes=t(require("api-check"),require("angular")):e.angularScopeTypes=t(e.apiCheck,e.angular)}(this,function(e,t){return function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(7),a=n(r);t["default"]=a["default"],e.exports=t["default"]},function(t,o){t.exports=e},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(8);n.version||(n=window.angular),t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function o(){}Object.defineProperty(t,"__esModule",{value:!0}),o.nullable=o,o.nullable.optional=o,t["default"]={noopChecker:o},e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=void 0===arguments[0]?{strictDi:!1,disabled:!1}:arguments[0],t=e.scopeTypes,o=(e.strictDi,e.disabled),n=void 0===o?!1:o;if(n)return i["default"].noopChecker;var r=t;if(!r)throw new Error("Must provide an instance of scopeTypes");var a=t.oneOfType([r.string,r.func]),u=r.shape({priority:r.number.optional,template:r.shape.ifNot("templateUrl",a).optional,templateUrl:r.shape.ifNot("template",r.string).optional,transclude:r.bool.optional,restrict:r.oneOf(["A","E","C","AE","EA","AEC","AC","EC"]).optional,templateNamespace:r.oneOf(["html","svg","math"]).optional,scope:r.oneOfType([r.bool,r.objectOf(r.string)]).optional,controller:r.injectableFunction.optional,controllerAs:r.string.optional,bindToController:r.oneOfType([r.bool,r.objectOf(r.string)]).optional,require:r.typeOrArrayOf(r.string).optional,compile:r.func.optional,link:r.oneOfType([r.func,r.shape({pre:r.func.optional,post:r.func.optional}).strict]).optional,scopeTypes:r.func,scopeTypesFunction:r.oneOf(["warn","throw"]).optional,data:r.object.optional}).strict;return r.oneOfType([r.func,u])}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r;var a=o(3),i=n(a);e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(6),a=n(r),i=o(4),u=n(i);t["default"]={injectableFunction:a["default"],ddo:u["default"]},e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=void 0===arguments[0]?{strictDi:!1,disabled:!1}:arguments[0],t=e.strictDi,o=void 0===t?!1:t,n=e.disabled,r=void 0===n?!1:n,a=i["default"].func.withProperties({$inject:i["default"].arrayOf(i["default"].string)}),u=i["default"].utils.checkerHelpers.setupChecker(function(e,t,o){if(!Array.isArray(e))return i["default"].utils.getError(t,o,i["default"].array.type);var n=e.slice(),r=n.pop(),a=i["default"].arrayOf(i["default"].string),u=a(n);return i["default"].utils.isError(u)?i["default"].utils.getError(t,o,a.type):"function"!=typeof r?i["default"].utils.getError(t,o,i["default"].func.type):void 0},{type:"angular injectable function (array syntax)"},r),l=[a,u];return o||l.push(i["default"].func),i["default"].oneOfType(l)}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r;var a=o(1),i=n(a);e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){function e(e){function t(t){function o(o,a){t.$scopeTypesResults[a]=u[e.scopeTypesFunction||"warn"](o,r[a],{prefix:""+e.name+'Directive for "'+a+'"'}),n()}function n(){var e=0,o=0,n=["__passed","__failed"];i["default"].forEach(t.$scopeTypesResults,function(t,r){-1===n.indexOf(r)&&(t.passed?e++:o++)}),t.$scopeTypesResults.__passed=e,t.$scopeTypesResults.__failed=o}var r=t;e.bindToController&&(r=r[e.controllerAs]);var a=e.scopeTypes(u);s.warn(s.objectOf(s.func).optional,a,{prefix:"getting scope types for "+e.name}),t.$scopeTypesResults={__passed:0,__failed:0},i["default"].forEach(a,function(n,a){!i["default"].isDefined(r[a])&&n.isOptional?!function(){var r=e.controllerAs?e.controllerAs+".":"",i=t.$watch(""+r+a,function(e,t){e!==t&&(i(),o(n,a))})}():o(n,a)})}function o(e,t){function o(o,n,r,a,i,u){var l={$scope:o,$element:r,$attrs:a,$transclude:i};u.invoke(t,this,l),u.invoke(e,this,l)}return i["default"].isDefined(e)?(o.$inject=["$scope","$controller","$element","$attrs","$transclude","$injector"],o.displayName=n(e),o):t}function n(e){var t=e.displayName||e.name,o="angular-scope-types controller wrapper";return t&&(o=""+o+" for "+t),o}return s.config.disabled||u.config.disabled?e:(s.warn(s.ddo,e,{prefix:"creating directive with scopeTypes"}),e.controller=o(e.controller,t),t.$inject=["$scope"],e)}var t=void 0===arguments[0]?{disabled:!1,output:f,apiCheckInstance:void 0}:arguments[0],o=t.disabled,n=void 0===o?!1:o,r=t.output,a=void 0===r?f:r,u=t.apiCheckInstance,s=l["default"]({output:a,disabled:n});return i["default"].forEach(c["default"],function(e,t){s[t]=e({scopeTypes:s,disabled:n})}),s.directive=e,u=u||s,s}Object.defineProperty(t,"__esModule",{value:!0});var a=o(2),i=n(a),u=o(1),l=n(u),s=o(5),c=n(s),f={prefix:"angular-scope-types"};t["default"]=r,e.exports=t["default"]},function(e,o){e.exports=t}])});
//! angular-scope-types version 1.0.0-beta.7 built with ♥ by Kent C. Dodds <kent@doddsfamily.us> (http://kent.doddsfamily.us) (ó ì_í)=óò=(ì_í ò)
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("api-check"),require("angular")):"function"==typeof define&&define.amd?define(["api-check","angular"],t):"object"==typeof exports?exports.angularScopeTypes=t(require("api-check"),require("angular")):e.angularScopeTypes=t(e.apiCheck,e.angular)}(this,function(e,t){return function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(7),a=n(r);t["default"]=a["default"],e.exports=t["default"]},function(t,o){t.exports=e},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(8);n.version||(n=window.angular),t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function o(){}Object.defineProperty(t,"__esModule",{value:!0}),o.nullable=o,o.nullable.optional=o,t["default"]={noopChecker:o},e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=void 0===arguments[0]?{strictDi:!1,disabled:!1}:arguments[0],t=e.scopeTypes,o=(e.strictDi,e.disabled),n=void 0===o?!1:o;if(n)return i["default"].noopChecker;var r=t;if(!r)throw new Error("Must provide an instance of scopeTypes");var a=t.oneOfType([r.string,r.func]),u=r.shape({priority:r.number.optional,template:r.shape.ifNot("templateUrl",a).optional,templateUrl:r.shape.ifNot("template",r.string).optional,transclude:r.bool.optional,restrict:r.oneOf(["A","E","C","AE","EA","AEC","AC","EC"]).optional,replace:r.bool.optional,templateNamespace:r.oneOf(["html","svg","math"]).optional,scope:r.oneOfType([r.bool,r.objectOf(r.string)]).optional,controller:r.injectableFunction.optional,controllerAs:r.string.optional,bindToController:r.oneOfType([r.bool,r.objectOf(r.string)]).optional,require:r.typeOrArrayOf(r.string).optional,compile:r.func.optional,link:r.oneOfType([r.func,r.shape({pre:r.func.optional,post:r.func.optional}).strict]).optional,scopeTypes:r.func,scopeTypesFunction:r.oneOf(["warn","throw"]).optional,data:r.object.optional}).strict;return r.oneOfType([r.func,u])}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r;var a=o(3),i=n(a);e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=o(6),a=n(r),i=o(4),u=n(i);t["default"]={injectableFunction:a["default"],ddo:u["default"]},e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=void 0===arguments[0]?{strictDi:!1,disabled:!1}:arguments[0],t=e.strictDi,o=void 0===t?!1:t,n=e.disabled,r=void 0===n?!1:n,a=i["default"].func.withProperties({$inject:i["default"].arrayOf(i["default"].string)}),u=i["default"].utils.checkerHelpers.setupChecker(function(e,t,o){if(!Array.isArray(e))return i["default"].utils.getError(t,o,i["default"].array.type);var n=e.slice(),r=n.pop(),a=i["default"].arrayOf(i["default"].string),u=a(n);return i["default"].utils.isError(u)?i["default"].utils.getError(t,o,a.type):"function"!=typeof r?i["default"].utils.getError(t,o,i["default"].func.type):void 0},{type:"angular injectable function (array syntax)"},r),l=[a,u];return o||l.push(i["default"].func),i["default"].oneOfType(l)}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r;var a=o(1),i=n(a);e.exports=t["default"]},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){function e(e){function t(t){function o(o,a){t.$scopeTypesResults[a]=u[e.scopeTypesFunction||"warn"](o,r[a],{prefix:""+e.name+'Directive for "'+a+'"'}),n()}function n(){var e=0,o=0,n=["__passed","__failed"];i["default"].forEach(t.$scopeTypesResults,function(t,r){-1===n.indexOf(r)&&(t.passed?e++:o++)}),t.$scopeTypesResults.__passed=e,t.$scopeTypesResults.__failed=o}var r=t;e.bindToController&&(r=r[e.controllerAs]);var a=e.scopeTypes(u);s.warn(s.objectOf(s.func).optional,a,{prefix:"getting scope types for "+e.name}),t.$scopeTypesResults={__passed:0,__failed:0},i["default"].forEach(a,function(n,a){!i["default"].isDefined(r[a])&&n.isOptional?!function(){var r=e.controllerAs?e.controllerAs+".":"",i=t.$watch(""+r+a,function(e,t){e!==t&&(i(),o(n,a))})}():o(n,a)})}function o(e,t){function o(o,n,r,a,i,u){var l={$scope:o,$element:r,$attrs:a,$transclude:i};u.invoke(t,this,l),u.invoke(e,this,l)}return i["default"].isDefined(e)?(o.$inject=["$scope","$controller","$element","$attrs","$transclude","$injector"],o.displayName=n(e),o):t}function n(e){var t=e.displayName||e.name,o="angular-scope-types controller wrapper";return t&&(o=""+o+" for "+t),o}return s.config.disabled||u.config.disabled?e:(s.warn(s.ddo,e,{prefix:"creating directive with scopeTypes"}),e.controller=o(e.controller,t),t.$inject=["$scope"],e)}var t=void 0===arguments[0]?{disabled:!1,output:f,apiCheckInstance:void 0}:arguments[0],o=t.disabled,n=void 0===o?!1:o,r=t.output,a=void 0===r?f:r,u=t.apiCheckInstance,s=l["default"]({output:a,disabled:n});return i["default"].forEach(c["default"],function(e,t){s[t]=e({scopeTypes:s,disabled:n})}),s.directive=e,u=u||s,s}Object.defineProperty(t,"__esModule",{value:!0});var a=o(2),i=n(a),u=o(1),l=n(u),s=o(5),c=n(s),f={prefix:"angular-scope-types"};t["default"]=r,e.exports=t["default"]},function(e,o){e.exports=t}])});
//# sourceMappingURL=angular-scope-types.min.js.map
{
"name": "angular-scope-types",
"version": "1.0.0-beta.6",
"version": "1.0.0-beta.7",
"description": "checkers and other utilities for using api-check with angular",

@@ -5,0 +5,0 @@ "main": "dist/angular-scope-types.js",

@@ -9,8 +9,78 @@ # angular-scope-types

## [Demo](http://angular-scope-types.surge.sh/)
## [Demo](https://jsbin.com/kuqeye/edit?html,js,output)
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.
to bring a concept like
[React `propTypes`](https://facebook.github.io/react/docs/reusable-components.html#prop-validation) to Angular.
This is based on trying to support [this issue](https://github.com/angular/angular.js/issues/11657) with as clean an api
as possible.
## Usage
angular-scope-types uses [api-check](https://github.com/kentcdodds/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):
```javascript
// 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](https://jsbin.com/kuqeye/edit?html,js,output) for a live example.
## LICENSE MIT

@@ -23,2 +23,3 @@ import checkerUtils from './checkerUtils';

restrict: check.oneOf(['A', 'E', 'C', 'AE', 'EA', 'AEC', 'AC', 'EC']).optional,
replace: check.bool.optional,
templateNamespace: check.oneOf(['html', 'svg', 'math']).optional,

@@ -25,0 +26,0 @@ scope: check.oneOfType([check.bool, check.objectOf(check.string)]).optional, // TODO, make an advanced scope checker

@@ -32,2 +32,3 @@ import {expectPass, expectFail, link, controllers} from '../test.utils';

bindToController: true,
replace: true,
/* istanbul ignore next */

@@ -34,0 +35,0 @@ scopeTypes: st => ({foo: st.shape({})})

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc