@kubb/parser-ts
Version:
TypeScript parsing and manipulation utilities for Kubb, enabling code generation with proper TypeScript syntax and formatting.
52 lines (47 loc) • 2 kB
JavaScript
;
var chunkFIHRQE7D_cjs = require('./chunk-FIHRQE7D.cjs');
var ts = require('typescript');
var prettier = require('prettier');
var pluginTypescript = require('prettier/plugins/typescript');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var ts__default = /*#__PURE__*/_interopDefault(ts);
var pluginTypescript__default = /*#__PURE__*/_interopDefault(pluginTypescript);
var { factory } = ts__default.default;
var escapeNewLines = (code) => code.replace(/\n\n/g, "\n/* :newline: */");
var restoreNewLines = (code) => code.replace(/\/\* :newline: \*\//g, "\n");
function print(elements, { source = "", baseName = "print.ts", removeComments, noEmitHelpers, newLine = ts__default.default.NewLineKind.LineFeed, scriptKind = ts__default.default.ScriptKind.TS } = {}) {
const sourceFile = ts__default.default.createSourceFile(baseName, escapeNewLines(source), ts__default.default.ScriptTarget.ES2022, false, scriptKind);
const printer = ts__default.default.createPrinter({
omitTrailingSemicolon: true,
newLine,
removeComments,
noEmitHelpers
});
const nodes = (Array.isArray(elements) ? elements : [elements]).filter(Boolean).sort((a, b) => (a.pos ?? 0) - (b.pos ?? 0));
const output = printer.printList(ts__default.default.ListFormat.MultiLine, factory.createNodeArray(nodes), sourceFile);
return restoreNewLines(output).replace(/\r\n/g, "\n");
}
var formatOptions = {
tabWidth: 2,
printWidth: 160,
parser: "typescript",
singleQuote: true,
semi: false,
bracketSameLine: false,
endOfLine: "auto",
plugins: [pluginTypescript__default.default]
};
async function format(source) {
if (!source) {
return "";
}
return prettier.format(source, formatOptions);
}
Object.defineProperty(exports, "factory", {
enumerable: true,
get: function () { return chunkFIHRQE7D_cjs.factory_exports; }
});
exports.format = format;
exports.print = print;
//# sourceMappingURL=index.cjs.map
//# sourceMappingURL=index.cjs.map