passoire

2.0.3 • Public • Published

Passoire

CircleCI codecov Dependencies

How to use it

const {Cleaner, Schema} = require('passoire');

const cleaner = new Cleaner();

const Tag = new Schema({
  id: {},
  label: {},
});

const Account = new Schema({
  id: {},
  password: {views: []},
  firstName: {
    views: ['public', 'user', 'admin'],
    transform: (value) => value.toLowerCase(),
  },
  lastName: {views: ['user', 'admin']},
  email: {views: ['user', 'admin']},
  tags: {array: true, schema: 'tag', views: ['user', 'admin']},
});

const account = {
  id: 1,
  password: 'such a funny password',
  firstName: 'Jean',
  lastName: 'Luc',
  email: 'jean-luc@gmail.com',
  tags: [
    {id: 1, label: 'french'},
    {id: 2, label: 'rider'},
  ],
};

cleaner.register('account', Account);
cleaner.register('tag', Tag);

// eslint-disable-next-line
console.log(cleaner.clean('account', account));
// eslint-disable-next-line
console.log(cleaner.clean('account', account, 'public'));

Will output

{ id: 1,
  password: 'such a funny password',
  firstName: 'jean',
  lastName: 'Luc',
  email: 'jean-luc@gmail.com',
  tags: [ { id: 1, label: 'french' }, { id: 2, label: 'rider' } ] }
{ id: 1, firstName: 'jean' }

Readme

Keywords

none

Package Sidebar

Install

npm i passoire

Weekly Downloads

1

Version

2.0.3

License

ISC

Last publish

Collaborators

  • jdrouet