Я только запускаю новое веб-приложение и хочу реализовать некоторую форму проверки стиля контракта в моем JavaScript. Я быстро прогуглил и наткнулся на JsContact , но синтаксис не совсем то, что я имел в виду. Кто-нибудь знает о других библиотеках?
Я думаю, я хочу, чтобы синтаксис был что-то вроде
String.prototype.padLeft = function(c, width) {
Verify.value(c).isRequired().isNotNull().isChar();
Verify.value(width).isRequired().isNotNull().isNumber().greaterThan(0);
...
Verify.value(result).isNotNull();
return result;
};
Хотя сборка моей собственной библиотеки с синтаксисом / методами, которые мне нужны, не займет много времени, если кто-то уже выполнил эту работу и она достаточно близка, это сэкономит мне время. Заранее спасибо.
UPDATE
У меня не будет времени работать над этим до сегодняшнего дня, поэтому я дам ему еще несколько часов, чтобы посмотреть, есть ли у кого-нибудь какие-либо рекомендации. Если нет, то я опубликую то, что создаю где-нибудь, в качестве ответа ниже, чтобы другие люди могли ссылаться на него, если они захотят.
Я также немного подумал об API, который имел бы смысл, и сейчас я думаю о чем-то вроде (надуманные примеры):
function searchUser(firstName, middleInit, lastName) {
Verify.value(firstName).isString().matching(/\w+/); // Must have value
Verify.value(middleInit).whenNotNull().isChar(); // May be null, but not undefined
Verify.value(lastName).isString().withMinimumLengthOf(2); // Must have value
...
}
function syncTime(serverTime, now) {
Verify.value(serverTime).isDate(); // Must have value.
Verify.value(now).whenDefined().isDate(); // May be undefined, but not null.
}
Моя текущая мысль заключается в том, что допуск значений NULL или UNDEFINED является нетипичным (по крайней мере, для меня?) Как таковым, вместо того, чтобы явно указывать, что для значения .isNotNull () вы фактически отключите правило для .whenDefined () или. whenNotNull (), как показано выше. Я могу сделать .whenNotNull () не ошибкой для UNDEFINED, но я вижу NULL против UNDEFINED как важное различие; посмотрим ... все остальные методы будут довольно типичными ... мысли? комментарии?