Skip to content

tjwebb/bijection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bijection

NPM version Build status Dependency Status

Map an input Object x to an output Object y via a bijective function f, i.e. f: X -> Y

Install

$ npm install bijection --save

Usage

var Bijection = require('bijection');
var LegacyAccount = {
  identity: 'crmacct',
  attributes: {
    crmacct_id: 'integer',
    crmacct_name: 'string'
  }
};
var Account = {
  identity: 'Account',
  attributes: {
    id: 'integer',
    sobriquet: 'string',
  }
};
var AccountBijection = new Bijection({
  domain: Account,
  codomain: [ LegacyAccount ],
  mapping: {
    id: 'crmacct_id',
    sobriquet: 'crmacct_name'
  }
});
var tjwebbLegacyAccount = AccountBijection.map({ id: 1, sobriquet: 'tjwebb' });
/**
 * tjwebbLegacyAccount = {
 *   crmacct_id: 1,
 *   crmacct_name: 'tjwebb'
 * };
 */

API

new Bijection(f)

Create a new bijection between two domains

@param description
f.domain The input domain
f.codomain The output domain
f.mapping Declarative object that indicates the mapping from X -> Y

.map(x)

Map an input Object x to an output Object y via a bijective function f, i.e. f: X -> Y

@param description
x The input object to map onto codomain Y
@return description
y A particular image of codomain Y resulting from mapping an input x onto it

License

MIT

About

Node.js utility that maps an input Object "x" to an output Object "y" via a bijective function "f"

Resources

License

Stars

Watchers

Forks

Packages

No packages published