UNPKG

miridoo-js-orm

Version:
149 lines (120 loc) 4.15 kB
var DataType = function(){ this.definition = {}; var self = this; this.null = function(isnull){ self.definition.null = isnull; return this; }; this.nullable = function(){ this.null(true); return this; }; this.notNull = function(){ this.null(false); return this; }; this.increment = function(){ self.definition.increment = true; return this; }; this.unsigned = function(){ self.definition.unsigned = true; return this; }; this.pk = function(){ self.definition.pk = true; return this; }; this.fk = function(table, column){ self.definition.fk = true; self.definition.fkTable = table; self.definition.fkColumn = column; return this; }; this.constraint = function(name){ self.definition.constraint = name; return this; }; this.on = function(r){ self.definition.on = r || {}; return this; }; this.default = function(r){ self.definition.default = r || {}; return this; }; this.get = function(){ return self.definition; }; }; var integer = function(size){ DataType.apply(this, arguments); this.definition.type = 'int'; this.definition.size = size || 11; };global['integer'] = function(size){ return new integer(size); }; var inc = function(){ integer.apply(this, arguments); this.unsigned(); this.null(false); this.increment(); this.pk(); };global['id'] = global['inc'] = function(size){ return new inc(); }; var double = function (nb, digit) { DataType.apply(this, arguments); this.definition.type = 'double'; };global['double'] = function(nb, digit){ return new double(nb, digit); }; var float = function(nb, digit){ DataType.apply(this, arguments); this.definition.type = 'float'; };global['float'] = function(nb, digit){ return new float(nb, digit); }; var varchar = function(size){ DataType.apply(this, arguments); this.definition.type = 'string'; this.definition.size = size || 255; this.default = function(str){ this.definition.default = '"'+str+'"'; return this; }; };global['varchar'] = global['string'] = function(size){ return new varchar(size); }; var json = function(){ DataType.apply(this, arguments); this.definition.type = 'text'; this.default = function(str){ this.definition.default = '"'+((typeof str == 'object')?JSON.stringify(str):str)+'"'; return this; }; };global['json'] = global['text'] = function(size){ return new json(); }; var char = function(size){ DataType.apply(this, arguments); this.definition.type = 'char'; this.definition.size = size || 1; };global['char'] = function(size){ return new char(size); }; var blob = function(){ DataType.apply(this, arguments); this.definition.type = 'blob'; this.default = function(str){ this.definition.default = '"'+str+'"'; return this; }; };global['blob'] = function(size){ return new blob(); }; var time = function(){ DataType.apply(this, arguments); this.definition.type = 'time'; };global['time'] = function(size){ return new time(); }; var date = function(){ DataType.apply(this, arguments); this.definition.type = 'date'; };global['date'] = function(size){ return new date() }; var timestamp = function(){ DataType.apply(this, arguments); this.definition.type = 'timestamp'; };global['timestanp'] = function(){ return new timestamp(); }; var datetime = function(){ DataType.apply(this, arguments); this.definition.type = 'datetime'; }; global['datetime'] = function(size){ return new datetime();}; var Enum = function(values){ DataType.apply(this, arguments); this.definition.type = 'enum'; this.definition.values = values; }; global['choice'] = global['Enum'] = function(){ return new Enum(Array.from(arguments)); };