Nincompoops Producing Methane
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    joi-transformpublic

    joi-transform

    This module provides a simple, consolidated, promise-based API that extends the Joi object schema validator with functionality for performing transformations (synchronous / asynchronous) on successfully-validated data.

    Lead Maintainer: Tim Ambler

    Example

    In the following example, three arguments are passed to the transform() method, the first two of which should be familiar to those with previous experience using Joi:

    • A payload of data to be validated and transformed
    • A Joi schema object
    • A transformation object

    The third argument - the transformation object - is used to define one or more transformations to be run once Joi's validation process has finished. Each transformation can run synchronously or asynchronously (by returning a promise).

    Transformation functions always receive as their first argument the result of Joi's validation process. They may also specify additional parameters to reference other entries within the transformation object.

    var transform = require('joi-transform');
     
    transform({
        'first_name': 'John',
        'last_name': 'Doe',
        'age': 30
    }, {
        'first_name': Joi.string().required(),
        'last_name': Joi.string().required(),
        'age': Joi.number().integer().positive().required().label('Age')
    }, {
        'name': function(data, something) {
            return `Something: ${something}`;
        },
        'something': function(data) {
            return data.age;
        }
    })
        .spread((data, transforms) => {
     
            console.log('data', data);
            console.log('transforms', transforms);
     
        });

    Related Resources

    Keywords

    none

    install

    npm i joi-transform

    Downloadsweekly downloads

    2

    version

    2.0.0

    license

    ISC

    repository

    github.com

    last publish

    collaborators

    • avatar