Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function updateTemplateInContent(content: string, { Name, Parameters = [], Body }: Template): string {
const resource = LGParser.parse(content);
return resource.updateTemplate(Name, Name, Parameters, Body).toString();
}
export function parse(content: string, id = ''): LGTemplate[] {
const resource = LGParser.parse(content, id);
return get(resource, 'templates', []);
}
export function getLGResources(content: string): LGResource {
return LGParser.parse(content, ' ');
}
function parse(content: string, id: string): LgTemplate[] {
const resource = LGParser.parse(content, id);
const templates = resource.templates.map(t => {
return {
name: t.name,
body: t.body,
parameters: t.parameters,
range: {
startLineNumber: get(t, 'parseTree.start.line', 0),
endLineNumber: get(t, 'parseTree.stop.line', 0),
},
};
});
return templates;
}
export function removeTemplate(content: string, templateName: string): string {
const resource = LGParser.parse(content);
return resource.deleteTemplate(templateName).toString();
}
export function getTemplate(content: string, templateName: string): LGTemplate | undefined {
const resource = LGParser.parse(content);
return resource.templates.find(t => t.name === templateName);
}
export function addTemplateAnyway(
content: string,
{ name = 'TemplateName', parameters = [], body = '-TemplateBody' }: Template
): string {
const resource = LGParser.parse(content);
const newName = increaseNameUtilNotExist(resource.templates, name);
return resource.addTemplate(newName, parameters, body).toString();
}
export function getTemplatePositionOffset(content: string, { Name, Parameters = [], Body }: Template): number {
const resource = LGParser.parse(content).updateTemplate(Name, Name, Parameters, Body);
const template = resource.Templates.find(item => item.Name === Name);
return get(template, 'ParseTree._start.line', 0);
}