Files

29 lines
1.1 KiB
TypeScript

import * as path from 'path'
import { extractFunctions } from './parsing/extract-functions'
import { extractImportsAndTypes } from './parsing/extract-imports-and-types'
import { buildFunctionContent } from './io/build-function-content'
import { buildClassWrapper } from './io/build-class-wrapper'
import { buildIndexContent } from './io/build-index-content'
import { writeFileSafely } from './io/write-file'
import { runLintFix } from './workflow/run-lint'
import { FunctionInfo } from './lambda/types'
export async function writeFunctions(
functions: FunctionInfo[],
imports: string[],
types: string[],
functionsDir: string,
result: RefactorResult
) {
for (const func of functions) {
const kebabName = this.toKebabCase(func.name)
const funcFilePath = path.join(functionsDir, `${kebabName}.ts`)
const content = buildFunctionContent(func, imports, types)
await writeFileSafely(funcFilePath, content, this.dryRun)
result.newFiles.push(funcFilePath)
this.log(`${kebabName}.ts`)
}
}