"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChunkerFactory = void 0;
const base_1 = require("./base");
const apexChunker_1 = require("./apexChunker");
const customObjectChunker_1 = require("./customObjectChunker");
// Generic chunker for unsupported types
class GenericChunker extends base_1.BaseChunker {
chunkMetadata(metadata) {
const content = JSON.stringify(metadata, null, 2);
const symbols = this.extractBasicSymbols(content);
const references = this.extractBasicReferences(content);
return [this.createBaseChunk(metadata.fullName || metadata.name || 'unknown', content, 'full_metadata', symbols, references)];
}
}
class ChunkerFactory {
static getChunker(metadataType, context) {
switch (metadataType.toLowerCase()) {
case 'apexclass':
return new apexChunker_1.ApexChunker(context);
case 'customobject':
return new customObjectChunker_1.CustomObjectChunker(context);
case 'apextrigger':
// TODO: Implement TriggerChunker
return new GenericChunker(context);
case 'layout':
// TODO: Implement LayoutChunker
return new GenericChunker(context);
case 'validationrule':
// TODO: Implement ValidationRuleChunker
return new GenericChunker(context);
case 'flow':
// TODO: Implement FlowChunker
return new GenericChunker(context);
case 'profile':
// TODO: Implement ProfileChunker
return new GenericChunker(context);
default:
return new GenericChunker(context);
}
}
}
exports.ChunkerFactory = ChunkerFactory;