angular-cn/modules/rtts_assert
Alex Eagle 3c77855b39 chore(build): Remove .es6 files which shadow .ts files.
This removes .es6 files which are pure duplicates of a
.ts file in the same folder.
Next we need to remove .js files as well, and remove karma preprocessors for dart.
2015-05-01 09:51:03 -07:00
..
src Don't use the for..of syntax in AtScript. 2015-02-27 15:26:53 -08:00
test chore(build): Remove .es6 files which shadow .ts files. 2015-05-01 09:51:03 -07:00
README.js.md feat(publish): update files to publish to npm 2015-02-24 16:53:44 -08:00
package.json fix(build): finally publish to `rtts_assert` on npm 2015-02-18 12:52:27 -08:00
rtts_assert.es6 refactor(build): explicitly mention `src` folder in imports 2015-02-05 11:55:48 -08:00

README.js.md

Rtts-Assert

A run-time type assertion library for JavaScript. Designed to be used with Traceur.

All sources are in ES6 format and have the suffix .es6. They don't depend on any runtime and can be used by any modern ES6 -> ES5 transpiler.

As a convenience, we provide you with es5build.js, a script to transpile the sources into es5 using Google Traceur.

License: Apache MIT 2.0

API

// Asserting APIs:
// - generated by Traceur (based on type annotations)
// - can be also used in tests for instance
assert.type(something, Type);
assert.returnType(returnValue, Type);
assert.argumentTypes(firstArg, Type, secondArg, Type);

// this can be used anywhere in the code
// (useful inside test, when we don't wanna define an interface)
assert(value).is(...)


// Custom type assert:
// - i have a custom type
// - adding an assert methos
assert.define(MyUser, function(value) {
  assert(value).is(Type, Type2); // or
  assert(value, 'name').is(assert.string);
  assert(value, 'contact').is(assert.structure({
    email: assert.string,
    cell: assert.string
  }));
  assert(value, 'contacts').is(assert.arrayOf(assert.structure({email: assert.string})));
});


// Define interface (an empty type with assert method)
// - returns an empty class with assert method
var Email = assert.define('IEmail', function(value) {
  assert(value).is(String);

  if (value.indexOf('@') !== -1) {
    assert.fail('has to contain "@"');
  }
});


// Predefined types
assert.string
assert.number
assert.boolean
assert.arrayOf(...types)
assert.structure(object)