mysql-live-client
Version:
The client side script of mysql-live package.
55 lines (54 loc) • 2.08 kB
JavaScript
var Joiner_1 = require("./Joiner");
var CollectionJoinerBuilder = (function () {
function CollectionJoinerBuilder(primaryCollection, joinedCollection) {
this.traveler = {};
this.traveler.primaryCollection = primaryCollection;
this.traveler.joinedCollection = joinedCollection;
}
CollectionJoinerBuilder.prototype.as = function (property) {
this.traveler.as = property;
return new JoinThisKeyBuilder(this.traveler);
};
return CollectionJoinerBuilder;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = CollectionJoinerBuilder;
var JoinThisKeyBuilder = (function () {
function JoinThisKeyBuilder(traveler) {
this.traveler = traveler;
}
JoinThisKeyBuilder.prototype.thisKey = function (thisKeyProperty) {
this.traveler.thisKey = thisKeyProperty;
return new JoinForeignKeyBuilder(this.traveler);
};
return JoinThisKeyBuilder;
})();
exports.JoinThisKeyBuilder = JoinThisKeyBuilder;
var JoinForeignKeyBuilder = (function () {
function JoinForeignKeyBuilder(traveler) {
this.traveler = traveler;
}
JoinForeignKeyBuilder.prototype.foreignKey = function (foreignKeyProperty) {
this.traveler.foreignKey = foreignKeyProperty;
return new JoinerBuilder(this.traveler);
};
return JoinForeignKeyBuilder;
})();
exports.JoinForeignKeyBuilder = JoinForeignKeyBuilder;
var JoinerBuilder = (function () {
function JoinerBuilder(traveler) {
this.traveler = traveler;
}
JoinerBuilder.prototype.asList = function () {
this.traveler.isArray = true;
this.traveler.primaryCollection.addTask(new Joiner_1.Joiner(this.traveler));
return this.traveler.primaryCollection;
};
JoinerBuilder.prototype.asObject = function () {
this.traveler.isArray = false;
this.traveler.primaryCollection.addTask(new Joiner_1.Joiner(this.traveler));
return this.traveler.primaryCollection;
};
return JoinerBuilder;
})();
exports.JoinerBuilder = JoinerBuilder;