@theguild/federation-composition
Version:
Open Source Composition library for Apollo Federation
58 lines (57 loc) • 1.59 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityMove = exports.AbstractMove = exports.FieldMove = void 0;
const helpers_js_1 = require("./helpers.js");
class FieldMove {
typeName;
fieldName;
requires;
provides;
provided;
_toString = (0, helpers_js_1.lazy)(() => {
let str = this.fieldName;
if (this.requires) {
str += ` @require(${this.requires})`;
}
if (this.provides) {
str += ` @provides(${this.provides})`;
}
if (this.provided) {
str += ' @provided';
}
return str;
});
constructor(typeName, fieldName, requires = null, provides = null, provided = false) {
this.typeName = typeName;
this.fieldName = fieldName;
this.requires = requires;
this.provides = provides;
this.provided = provided;
}
toString() {
return this._toString.get();
}
}
exports.FieldMove = FieldMove;
class AbstractMove {
keyFields;
_toString = (0, helpers_js_1.lazy)(() => (this.keyFields ? `🔮 🔑 ${this.keyFields}` : `🔮`));
constructor(keyFields) {
this.keyFields = keyFields;
}
toString() {
return this._toString.get();
}
}
exports.AbstractMove = AbstractMove;
class EntityMove {
keyFields;
_toString = (0, helpers_js_1.lazy)(() => `🔑 ${this.keyFields}`);
constructor(keyFields) {
this.keyFields = keyFields;
}
toString() {
return this._toString.get();
}
}
exports.EntityMove = EntityMove;
;