Initial commit
This commit is contained in:
135
node_modules/node-mysql/lib/node-mysql.js
generated
vendored
Normal file
135
node_modules/node-mysql/lib/node-mysql.js
generated
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
|
||||
var Class = require('better-js-class');
|
||||
var $U = require('underscore');
|
||||
var _DB = require('./db.js');
|
||||
var $M = require('./model.js');
|
||||
|
||||
var DB = Class(_DB, {
|
||||
_init: function(cfg) {
|
||||
this.parent._init.call(this, cfg);
|
||||
this._models = {};
|
||||
},
|
||||
|
||||
add: function(cfg) {
|
||||
var me = this;
|
||||
|
||||
var model = {};
|
||||
|
||||
var RowTemplate = function(model) {
|
||||
var closedRowClass = Class($M.Row, {
|
||||
_init: function(data) {
|
||||
this.parent._init.call(this, data, {
|
||||
table: model.Table
|
||||
});
|
||||
}
|
||||
});
|
||||
return Class(closedRowClass, cfg.Row || {});
|
||||
};
|
||||
|
||||
var Row = RowTemplate(model);
|
||||
|
||||
$U.extend(model, {
|
||||
Row: Row,
|
||||
_RowTemplate: RowTemplate
|
||||
});
|
||||
|
||||
|
||||
var TableTemplate = function(model) {
|
||||
var closedTableClass = Class($M.Table, {
|
||||
_init: function() {
|
||||
this.parent._init.call(this, {
|
||||
db: me,
|
||||
name: cfg.name,
|
||||
rowClass: model.Row,
|
||||
idFieldName: cfg.idFieldName || 'id',
|
||||
versionFieldName: cfg.versionFieldName || 'version',
|
||||
createdFieldName: cfg.createdFieldName || 'date_created',
|
||||
updatedFieldName: cfg.updatedFieldName || 'last_updated'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return Class(closedTableClass, cfg.Table || {});
|
||||
};
|
||||
|
||||
var TableClass = TableTemplate(model);
|
||||
var Table = new TableClass();
|
||||
|
||||
$U.extend(model, {
|
||||
Table: Table,
|
||||
_TableTemplate: TableTemplate
|
||||
});
|
||||
|
||||
this._models[cfg.name] = model;
|
||||
|
||||
return Table;
|
||||
},
|
||||
|
||||
clone: function() {
|
||||
var tempClass = function() {
|
||||
this._models = $U.clone(this._models);
|
||||
};
|
||||
|
||||
tempClass.prototype = this;
|
||||
return new tempClass();
|
||||
},
|
||||
|
||||
extend: function(cfg) {
|
||||
var _model = this.get(cfg.name);
|
||||
|
||||
if (!_model) {
|
||||
throw new Error('node-mysql-runtime-error: db.extend can not be used on empty model.');
|
||||
}
|
||||
|
||||
var model = {};
|
||||
|
||||
var _RowTemplate = _model._RowTemplate;
|
||||
|
||||
var RowTemplate = function(model) {
|
||||
var superClass = _RowTemplate(model);
|
||||
return Class(superClass, cfg.Row || {});
|
||||
};
|
||||
|
||||
var Row = RowTemplate(model);
|
||||
|
||||
$U.extend(model, {
|
||||
Row: Row,
|
||||
_RowTemplate: RowTemplate
|
||||
});
|
||||
|
||||
var _TableTemplate = _model._TableTemplate;
|
||||
|
||||
var TableTemplate = function(model) {
|
||||
var superClass = _TableTemplate(model);
|
||||
return Class(superClass, cfg.Table || {});
|
||||
};
|
||||
|
||||
var TableClass = TableTemplate(model);
|
||||
|
||||
var Table = new TableClass();
|
||||
|
||||
$U.extend(model, {
|
||||
Table: Table,
|
||||
_TableTemplate: TableTemplate
|
||||
});
|
||||
|
||||
this._models[cfg.name] = model;
|
||||
|
||||
return Table;
|
||||
},
|
||||
|
||||
get: function(name) {
|
||||
return this._models[name];
|
||||
}
|
||||
});
|
||||
|
||||
DB.format = _DB.format;
|
||||
|
||||
module.exports = {
|
||||
DB: DB,
|
||||
Row: $M.Row,
|
||||
Table: $M.Table,
|
||||
OPTIMISTIC_LOCK_EXCEPTION: $M.OPTIMISTIC_LOCK_EXCEPTION
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user