UNPKG

codacy-seed

Version:
61 lines (51 loc) 1.5 kB
import fs from "fs" import { promisify } from "util" import { Codacyrc, Pattern, Tool } from "./model/codacyInput" import { PatternSpec, Specification } from "./model/specification" export const readFile = promisify(fs.readFile) export const writeFile = promisify(fs.writeFile) export async function readJsonFile(file: string): Promise<string | undefined> { try { return await readFile(file, "utf8") } catch (e) { console.error(`Error reading ${file} file`) return undefined } } export function parseCodacyrcFile(content: string): Codacyrc { const parsed: Codacyrc = JSON.parse(content) const created: Codacyrc = new Codacyrc( parsed.files, parsed.tools?.map( (tool) => new Tool( tool.name, tool.patterns?.map( (pattern) => new Pattern(pattern.patternId, pattern.parameters) ) ) ), parsed.options ) return JSON.parse(JSON.stringify(created)) } export function parseSpecification(content: string): Specification { const parsed: Specification = JSON.parse(content) const created: Specification = new Specification( parsed.name, parsed.version, parsed.patterns.map( (pattern) => new PatternSpec( pattern.patternId, pattern.level, pattern.category, pattern.subcategory, pattern.scanType, pattern.parameters, pattern.enabled ) ) ) return JSON.parse(JSON.stringify(created)) }