@umbraco/json-models-builders
Version:
Builders and models for Umbraco Sites
55 lines • 1.73 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ElementBuilder = void 0;
const elementValueBuilder_1 = require("./elementValueBuilder");
const elementVariantBuilder_1 = require("./elementVariantBuilder");
const BuilderUtils_1 = require("../../helpers/BuilderUtils");
class ElementBuilder {
elementValueBuilder;
elementVariantBuilder;
id;
parentId;
documentTypeId;
constructor() {
this.elementValueBuilder = [];
this.elementVariantBuilder = [];
}
addValue() {
const builder = new elementValueBuilder_1.ElementValueBuilder(this);
this.elementValueBuilder.push(builder);
return builder;
}
addVariant() {
const builder = new elementVariantBuilder_1.ElementVariantBuilder(this);
this.elementVariantBuilder.push(builder);
return builder;
}
withId(id) {
this.id = id;
return this;
}
withParentId(parentId) {
this.parentId = parentId;
return this;
}
withDocumentTypeId(documentTypeId) {
this.documentTypeId = documentTypeId;
return this;
}
build() {
this.id = (0, BuilderUtils_1.ensureIdExists)(this.id);
return {
values: this.elementValueBuilder.map((builder) => {
return builder.build();
}),
variants: this.elementVariantBuilder.map((builder) => {
return builder.build();
}),
id: this.id,
parent: this.parentId ? { id: this.parentId } : null,
documentType: { id: this.documentTypeId }
};
}
}
exports.ElementBuilder = ElementBuilder;
//# sourceMappingURL=elementBuilder.js.map