pg-proto-parser
Version:
20 lines (19 loc) • 913 B
JavaScript
import generate from '@babel/generator';
import * as t from '@babel/types';
export const convertAstToCode = (body) => {
const ast = t.file(t.program(body));
// @ts-ignore
const { code } = generate(ast);
return code;
};
export const createDefaultImport = (importName, source) => {
return t.importDeclaration([t.importDefaultSpecifier(t.identifier(importName))], t.stringLiteral(source));
};
export const createNamedImport = (importNames, source) => {
const specifiers = importNames.map(name => t.importSpecifier(t.identifier(name), t.identifier(name)));
return t.importDeclaration(specifiers, t.stringLiteral(source));
};
export const createNamedImportAsSuffix = (importNames, source, suffix) => {
const specifiers = importNames.map(name => t.importSpecifier(t.identifier(name + suffix), t.identifier(name)));
return t.importDeclaration(specifiers, t.stringLiteral(source));
};