From 6589938099b8f0ae6ac257f0e79f36dbeeaca730 Mon Sep 17 00:00:00 2001 From: Brian Chen Date: Fri, 14 Jan 2022 05:24:01 +1100 Subject: [PATCH] can create defs that have scopes --- cli/src/commands/create-def.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/cli/src/commands/create-def.js b/cli/src/commands/create-def.js index 1d7afe2b06..29ca9015db 100644 --- a/cli/src/commands/create-def.js +++ b/cli/src/commands/create-def.js @@ -35,22 +35,37 @@ export async function run({libName, ver}: Args): Promise { return 1; } - const definitionsPath = path.join(process.cwd(), '/definitions/npm'); - const rootDefDir = `${definitionsPath}/${libName}_v${ver}`; + const scope = libName.startsWith('@') ? libName.split('/')[0] : ''; + const packageName = scope ? libName.split('/')[1] : libName; + const definitionsPath = path.join( + process.cwd(), + '/definitions/npm', + scope ?? '', + ); + const rootDefDir = `${definitionsPath}/${packageName}_v${ver}`; const defDir = `${rootDefDir}/flow_v${flowVersion}-`; + if (scope) { + try { + fs.mkdirSync(definitionsPath); + } catch (err) { + if (err.code !== 'EEXIST') { + throw err; + } + } + } fs.mkdirSync(rootDefDir); fs.mkdirSync(defDir); fs.writeFileSync( - `${defDir}/${libName}_v${ver}.js`, + `${defDir}/${packageName}_v${ver}.js`, `declare module '${libName}' { declare module.exports: any; }`, ); fs.writeFileSync( - `${defDir}/test_${libName}_v${ver}.js`, + `${defDir}/test_${packageName}_v${ver}.js`, `// @flow import { describe, it } from 'flow-typed-test'; // import library from '${libName}';