env-prompt
Version:
A dependency-free utility that prompts you for your project's environment variables.
33 lines (30 loc) • 1.03 kB
text/typescript
import readline from "readline"
import fs from "fs"
import path from "path"
import { getOptionsFromEnvironment } from "lib/options"
import { StdIoReader } from "lib/std-io-reader"
import { CliPrompter } from "lib/cli"
import { analyzeEnvSourceCode } from "lib/env/lexer"
import { parseEnvTokens } from "lib/env/parser"
import { render } from "lib/env/renderer"
import { Merger } from "lib/env/merger"
const readLineFactory = () => readline.createInterface(process.stdin, process.stdout)
const stdIoReader = new StdIoReader(readLineFactory)
const cliPrompter = new CliPrompter(console, stdIoReader)
const merger = new Merger()
.setCliPrompter(cliPrompter)
.setAnalyzeEnvSourceCode(analyzeEnvSourceCode)
.setParseEnvTokens(parseEnvTokens)
.setRender(render)
.setFs(fs)
.setPath(path)
const main = async () => {
try {
const options = getOptionsFromEnvironment(process)
await merger.merge(options)
} catch (e) {
cliPrompter.printError(e)
process.exit(1)
}
}
main()