0.1.38 • Published 8 years ago
flyber-types v0.1.38
#FT Runtime Type Check System For Javascript
Install
npm install flyber-types
Type Definition Example ('./examples/System.ft')
#Simple Types
String : /.?/
Integer : Global.Integer
Int : Integer
Boolean : Global.Boolean
Bool : Boolean
Double : Global.Double
Numeric : Double | Integer
Null : Global.Null
Undefined : Global.Undefined
Email : /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i
Strings : [String]
#Type Extensions
String...
Min min : /^.{#{min},}$/
Max max : /^.{,#{max}}$/
Range min max : /^.{#{min},#{max}}$/
Integer...
Min min : @ >= min
Max max : @ <= max
#Enums
Status : "active" | "inactive"
Missing : Null | Undefined
#Complex Types
User
------------
email : Email
picture : String
firstname : String Range(5,20)
lastname : String Min(5) Max(20)
status : Status
bio : String | Missing
tags : [String]
Use
var types = require("flyber-types");
var fs = require("fs");
var validate = types({
System: fs.readFileSync("./examples/System.ft").toString("utf8")
});
var user = {
email: 'a.stegno@gmail.com',
picture: 'http://some-website.com/picture.png',
firstname: 'Andrey',
lastname: 'Test',
status: 'active',
bio: 'Ho',
tags: ["user"]
};
validate("System.User", user); //true
0.1.38
8 years ago
0.1.37
8 years ago
0.1.36
8 years ago
0.1.35
8 years ago
0.1.34
8 years ago
0.1.33
8 years ago
0.1.32
8 years ago
0.1.31
8 years ago
0.1.30
8 years ago
0.1.29
8 years ago
0.1.28
8 years ago
0.1.27
8 years ago
0.1.26
8 years ago
0.1.25
8 years ago
0.1.24
8 years ago
0.1.23
8 years ago
0.1.22
8 years ago
0.1.21
8 years ago
0.1.20
8 years ago
0.1.19
8 years ago
0.1.18
8 years ago
0.1.17
8 years ago
0.1.16
8 years ago
0.1.15
8 years ago
0.1.14
8 years ago
0.1.13
8 years ago
0.1.12
8 years ago
0.1.11
8 years ago
0.1.10
8 years ago
0.1.9
8 years ago
0.1.8
8 years ago
0.1.7
8 years ago
0.1.6
8 years ago
0.1.5
8 years ago
0.1.4
8 years ago
0.1.3
8 years ago
0.1.2
8 years ago
0.0.1
8 years ago