Naughty Pterodactyl Maid
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    argstypepublic

    This package has been deprecated

    Author message:

    No longer supported

    ArgsType

    Deep function arguments type check

    Example Пример

    var argstype = require('argstype');
     
     
     
    // define function, making module-specific errors 
    // определение функции, создающей экземпляры ошибок текущего модуля 
    var errorProvider = function( text ){
        return ( new Error( 'Module name: ' + text ) );
    };
     
     
     
    // supported types: 
    // поддерживаемые типы в правилах: 
    //  'b' - boolean 
    //  'n' - number 
    //  's' - string 
    //  'f' - function 
    //  'o' - object 
    //  'a' - array 
     
    // define rule 
    // пример правила 
    var rules = [
        // rule pattern: 
        // name, required, type, child type (child type may be a string, rule, array of rules) 
        // name is used to access to object property and generate error messages 
        // правило состоит из 4 частей: 
        // имя, обязательность, тип, тип дочерних элементов (может быть строкой, правилом или массивом правил) 
        // имя используется для доступа к параметру и генерации ошибок 
        ['options', true, 'o', [
            ['provider', true, 'o', [
                // array of rules; rules are applied by name (to object) or by position (to array) 
                // это массив правил; правила применяются по имени (в объекте) или по позиции (в массиве) 
                ['find', true, 'f'],
                ['insert', true, 'f'],
                ['modify', true, 'f'],
                ['delete', true, 'f']
            ]],
            ['views', true, 'o', [
                // rule with name '*' means that this rule should be applied to every element of object/array 
                // правило с именем '*' означает, что правило должно быть применено ко всем элементам массива/объекта 
                '*', false, 'o', [
                    ['view', true, 'o', [
                        ['name', true, 's'],
                        ['template', false, 's'],
                        ['config', true, 'o'],
                        ['view', true, 'o']
                    ]],
                    ['vids', true, 'o', [
                        '*', false, 'a', [
                            ['flexo', true, 's'],
                            ['field', true, 's']
                        ]
                    ]]
                ]
            ]],
            ['templatePath', true, 's'],
            ['templateTimeout', false, 'n']
        ]],
        // if last rule has name 'callback' AND 
        // if it is required AND 
        // if it's type is a function AND 
        // if there's no callback in arguments THAN 
        // module throws an exception 
        // если имя последнего правила 'callback' И 
        // если аргумент является обязательным И 
        // если он должен быть фукцией 
        // если в аргументах вызова функции его нет, ТО 
        // модуль выкидывает исключение 
        ['callback', true, 'f']
    ];
     
     
     
    // make a specialized checker 
    // можно получить функцию проверки аргументов, к которой прикреплены провайдер ошибок и правила 
    var checker = argstype.getChecker( errorProvider, rules );
     
     
     
    // define function, which arguments should be checked 
    // определим функцию для которой надо провести проверку аргументов 
    var myFunction = function( options, callback ){
        var error;
     
        // use predefined checker 
        // здесь производится проверка посредством ранее созданной функции проверки 
        error = checker( arguments );
     
        // or checking in place 
        // но можно воспользоваться и длинным путем 
        error = argstype.check( arguments, rules, errorProvider );
     
        if( error ){
            callback( error );
            return;
        }
     
        // superstar code 
        // тело супер-функции 
     
        callback( null, true );
    };
     
     
     
    // valid arguments example 
    // пример валидных входных аргументов 
    var validOptions = {
        provider: {
            find: function(){},
            insert: function(){},
            modify: function(){},
            delete: function(){}
        },
        views: {
            test: { // optional 
                view: {
                    name: 'test',
                    //optional 
                    // необязательное поле 
                    template: 'test.tpl',
                    config: {},
                    view: {}
                },
                vids: {
                    //optional 
                    // необязательное поле 
                    a: [ 'foo', 'bar' ]
                }
            }
        },
        templatePath: '/dev/random/',
        templateTimeout: '100'
    };
    var validCallback = function(error, result){};
     
     
     
    // run your function 
    // запуск функции с валидными аргументами 
    myFunction( validOptions, validCallback );

    Keywords

    none

    install

    npm i argstype

    Downloadsweekly downloads

    1

    version

    0.0.1

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar