ArgsType
Deep function arguments type check
Example Пример
var argstype = ; // define function, making module-specific errors// определение функции, создающей экземпляры ошибок текущего модуляvar { return '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; // define function, which arguments should be checked// определим функцию для которой надо провести проверку аргументовvar { var error; // use predefined checker // здесь производится проверка посредством ранее созданной функции проверки error = ; // or checking in place // но можно воспользоваться и длинным путем error = argstype; if error ; return; // superstar code // тело супер-функции ;}; // valid arguments example// пример валидных входных аргументовvar validOptions = provider: {} {} {} {} views: test: // optional view: name: 'test' //optional // необязательное поле template: 'test.tpl' config: {} view: {} vids: //optional // необязательное поле a: 'foo' 'bar' templatePath: '/dev/random/' templateTimeout: '100';var {}; // run your function// запуск функции с валидными аргументами;