UNPKG

@umbraco/json-models-builders

Version:
63 lines 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DocumentBuilder = void 0; const documentValueBuilder_1 = require("./documentValueBuilder"); const documentVariantBuilder_1 = require("./documentVariantBuilder"); class DocumentBuilder { documentValueBuilder; documentVariantBuilder; id; parentId; documentTypeId; templateId; constructor() { this.documentValueBuilder = []; this.documentVariantBuilder = []; } addValue() { const builder = new documentValueBuilder_1.DocumentValueBuilder(this); this.documentValueBuilder.push(builder); return builder; } addVariant() { const builder = new documentVariantBuilder_1.DocumentVariantBuilder(this); this.documentVariantBuilder.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; } withTemplateId(templateId) { this.templateId = templateId; return this; } build() { if (!this.id) { const crypto = require('crypto'); this.id = crypto.randomUUID(); } return { values: this.documentValueBuilder.map((builder) => { return builder.build(); }), variants: this.documentVariantBuilder.map((builder) => { return builder.build(); }), id: this.id, parent: this.parentId ? { id: this.parentId } : null, documentType: { id: this.documentTypeId }, template: this.templateId ? { id: this.templateId } : null, }; } } exports.DocumentBuilder = DocumentBuilder; //# sourceMappingURL=documentBuilder.js.map