This package has been deprecated

Author message:

This package has been deprecated, install @alcadica/contract instead

@alcadica/service.contract
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

@alcadica/service.contract

Coverage Maintainability

Install

npm i --save @alcadica/service.contract

This package provides a simple but powerful way to estabilish a contract between a datasource and an entity. A contract is used to handle data channeling between a caller (application layer) and an owner (data layer, contract provider).

Examples

import contract from '@alcadica/service.contract';

class MyEntity {
  public foo: string = '';
}

let instance = new MyEntity();

let MyEntityContract = contract.create(instance);

MyEntityContract.entity.foo.validate = entity => entity.foo.length > 0;

console.log(MyEntityContract.isFullfilled) // outputs false

instance.foo = '123';

console.log(MyEntityContract.isFullfilled) // outputs true

let newinstance = new MyEntity();

MyEntityContract.update(newinstance);

console.log(MyEntityContract.isFullfilled) // outputs false

Creating a custom validator

import contract from '@alcadica/service.contract';

class Test {
  public constructor (
    public bar: string,
    public foo: number
  ) {};
}

const testContract = contract.createFromClass(Test, 'hello', 100);

testContract.entity.foo.validate = () => {
  return (value: string) => {
    return contract.createValidatorOutput(value.length > 5, 'foo length must be greater than 5');
  }
}

Licence

MIT

Package Sidebar

Install

npm i @alcadica/service.contract

Weekly Downloads

1

Version

1.1.0

License

MIT

Unpacked Size

22.1 kB

Total Files

6

Last publish

Collaborators

  • npm-alcadica
  • octod