2 import { XmlParser } from './XmlParser';
3 import { Parser } from './Parser';
4 import { VtlParser } from './VtlParser';
5 import { FileExtension } from '../TemplateType';
6 import { JinjaXMLParser } from './JinjaXML';
7 import { VtlYMLParser } from './VtlYMLParser';
8 import { JinjaYMLParser } from './JinjaYML';
10 export class ParserFactory {
12 getParser(fileContent: string, fileExtension: string): Parser {
14 console.log('file extension =' + fileExtension);
16 if (fileExtension === FileExtension.Velocity) {
18 if (this.isXML(fileContent)) {
19 parser = new XmlParser();
20 } else if (this.isJSON(fileContent)) {
21 parser = new VtlParser();
23 parser = new VtlYMLParser();
26 } else if (fileExtension === FileExtension.Jinja) {
28 if (this.isXML(fileContent)) {
29 parser = new JinjaXMLParser();
30 } else if (this.isJSON(fileContent)) {
31 // TODO: implement JSON parser
33 parser = new JinjaYMLParser();
36 } else if (fileExtension === FileExtension.XML) {
37 parser = new XmlParser();
42 private isXML(fileContent: string): boolean {
43 return fileContent.includes('<?xml version="1.0" encoding="UTF-8"?>');
46 private isJSON(fileContent: string): boolean {
48 JSON.parse(fileContent);