2014-09-18 2 views
0

Рамка приложения Meteor имеет пакет под названием check, который может использоваться для assert boundaries on your inputs и связанных с ним материалов. Это действительно отвратительно и очень полезно иметь простые способы проверки того, что строка соответствует стандарту ISO8601 или что объект содержит определенные поля.Vanilla JS утверждение lib альтернатива чеку Meteor's check

К сожалению, это специальный пакет Meteor, и я хотел бы иметь что-то подобное для автономного использования в vanilla js. Какие альтернативы стоит упомянуть?

ответ

1

Существует отличная библиотека валидации схемы ванильи, которая называется js-schema. Это позволяет писать схему очень чистым способом. Это здорово, когда вам нужно писать большие схемы, а также точно видеть, из каких ошибок пути.

var Duck = schema({    // A duck 
    swim : Function,    // - can swim 
    quack : Function,    // - can quack 
    age : Number.min(0).max(5), // - is 0 to 5 years old 
    color : ['yellow', 'brown'] // - has either yellow or brown color 
}); 

var result = Duck.errors({ 
    swim: function() {}, 
    quack: function() {}, 
    age: 6, 
    color: 'green' 
}); 

console.dir(result) 

{ 
    age: 'number = 6 is bigger than required maximum = 5', 
    color: 'string = green is not reference to string = yellow AND 
      string = green is not reference to string = brown' 
} 
// ######################### 
// source : js-schema README 

js-schema is also packaged for meteor

Отказ от ответственности: Я вклад в эту библиотеку, написав Schema.errors() функцию и созданный пакет для него.

1

Вы знаете, что в своем проекте вы можете использовать только выбранный пакет Meteor, вам не нужно загружать всю платформу?

В случае check это довольно просто, так как оно не имеет много зависимостей, поэтому вы можете просто использовать код пакета как библиотеку. См its package.json file:

Package.on_use(function (api) { 
    api.use(['underscore', 'ejson'], ['client', 'server']); 
    api.export(['check', 'Match']); 
    api.add_files('match.js', ['client', 'server']); 
}); 

Единственные зависимостей underscore и ejson, и есть только один файл. Итак, пока вы подчеркиваете и заботитесь о EJSON, вы можете просто добавить this file в свой проект и иметь check в vanilla JS. Пакет ejson можно обрабатывать аналогичным образом, или вы можете просто предшествовать файлу EJSON = JSON; и ограничить свои чеки на ванильные объекты JSON.

+0

Приятно знать, но принял другой ответ, так как у него нет внешних депо. Хотя я не слишком увлечен прототипами расширений, которые они используют ... – oligofren