2014-09-18 5 views
0

응용 프로그램 프레임 워크 Meteor에는 check이라는 패키지가 있으며 assert boundaries on your inputs 및 관련 자료에 사용할 수 있습니다. ISO8601을 따르거나 객체에 특정 필드가 포함되어 있는지 확인하는 쉬운 방법을 사용하는 것은 매우 멋지며 매우 유용합니다.Vanilla JS assertion lib Meteor의 체크 패키지 대신

유감 스럽지만 이것은 Meteor 전용 패키지이며 바닐라 js에서 독립 실행 형으로 사용하기 위해 비슷한 것을 사용하고 싶습니다. 언급 할 가치가있는 대안?

답변

1

바닐라 js 스키마 유효성 검사 라이브러리는 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

프로젝트에서 선택한 유성기 패키지 만 사용할 수 있다는 것을 알고 계시다면 전체 플랫폼을로드 할 필요가 없습니다.

의 경우 많은 종속성이 없으므로 매우 간단하므로 패키지 코드를 라이브러리로 사용할 수 있습니다. 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']); 
}); 

유일한 종속성 underscoreejson, 그리고 하나의 파일이 있습니다. 따라서 EJSON에 밑줄을 긋고 돌보는 한, this file을 프로젝트에 추가하고 vanilla JS에 check을 넣을 수 있습니다. ejson 패키지도 비슷하게 처리 할 수 ​​있습니다. 또는 파일 앞에 EJSON = JSON;을 붙이고 바닐라 JSON 개체로 검사를 제한 할 수 있습니다.

+0

알아두면 좋지만 다른 답변은 받아 들여지지 않습니다. 외부 응답자가 없기 때문입니다. 나는 그들이 사용하는 프로토 타입 확장에 너무 열중하지 않지만 ... – oligofren