rethinkts
Version:
A model system for RethinkDB, written in and for TypeScript.
35 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const model_1 = require("./model");
var Relationship;
(function (Relationship) {
Relationship[Relationship["HasMany"] = 0] = "HasMany";
Relationship[Relationship["BelongsTo"] = 1] = "BelongsTo";
Relationship[Relationship["HasOne"] = 2] = "HasOne";
})(Relationship = exports.Relationship || (exports.Relationship = {}));
function HasMany(model, foreignKey) {
return RelationshipDecorator(Relationship.HasMany, model, foreignKey);
}
exports.HasMany = HasMany;
function HasOne(model, foreignKey) {
return RelationshipDecorator(Relationship.HasOne, model, foreignKey);
}
exports.HasOne = HasOne;
function BelongsTo(model, localKey) {
return RelationshipDecorator(Relationship.BelongsTo, model, localKey);
}
exports.BelongsTo = BelongsTo;
function RelationshipDecorator(kind, model, foreignKey) {
return (target, key) => {
const relationship = {
kind,
model,
key: key,
foreignKey,
};
model_1.createModelInfo(target.constructor, {
relationships: [relationship]
});
};
}
//# sourceMappingURL=relationships.js.map