flowgen
Version:
Generate flowtype definition files from TypeScript
60 lines (44 loc) • 1.92 kB
JavaScript
exports.__esModule = true;
exports.flowTypedDirectoryExporter = flowTypedDirectoryExporter;
exports.flowTypedExporter = flowTypedExporter;
var _fs = _interopRequireDefault(require("fs"));
var _shelljs = _interopRequireDefault(require("shelljs"));
var _commander = _interopRequireDefault(require("commander"));
var _util = require("./util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const exists = (0, _util.promisify)(_fs.default.exists);
const writeFile = (0, _util.promisify)(_fs.default.writeFile);
const appendFile = (0, _util.promisify)(_fs.default.appendFile);
async function flowTypedExporter(moduleName, output, _index) {
const opts = _commander.default.opts();
const out = typeof opts.flowTypedFormat === "string" ? opts.flowTypedFormat : "exports";
const folder = `./${out}/${moduleName}_v1.x.x`;
const flowFolder = `${folder}/flow_v0.35.x-`;
const outputFile = `${folder}/flow_v0.35.x-/${moduleName}.js`;
const testfilePath = `${folder}/test_${moduleName}.js`;
if (!(await exists(flowFolder))) {
_shelljs.default.mkdir("-p", flowFolder);
}
await writeFile(testfilePath, "");
await writeFile(outputFile, output);
return testfilePath;
}
async function flowTypedDirectoryExporter({
rootModuleName
}, output, index) {
const opts = _commander.default.opts();
const out = typeof opts.flowTypedFormat === "string" ? opts.flowTypedFormat : "exports";
const flowFolder = `${out}/flow_v0.35.x-`;
const outputFile = `${out}/flow_v0.35.x-/${rootModuleName}.js`;
const testfilePath = `${out}/test_${rootModuleName}.js`;
if (!(await exists(flowFolder))) {
_shelljs.default.mkdir("-p", flowFolder);
}
if (index === 0 && (await exists(outputFile))) {
await writeFile(outputFile, "");
}
await writeFile(testfilePath, "");
await appendFile(outputFile, output);
return testfilePath;
}
;