From e62618c9198fdc5fb4df1e4f1782e040d36a0167 Mon Sep 17 00:00:00 2001 From: nikek Date: Thu, 2 Apr 2020 11:57:14 +0200 Subject: [PATCH] add separate import and export in createPlugin --- .../commands/create-plugin/createPlugin.ts | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/cli/src/commands/create-plugin/createPlugin.ts b/packages/cli/src/commands/create-plugin/createPlugin.ts index 1b35d99a59..7802f402f9 100644 --- a/packages/cli/src/commands/create-plugin/createPlugin.ts +++ b/packages/cli/src/commands/create-plugin/createPlugin.ts @@ -67,18 +67,21 @@ const sortObjectByKeys = (obj: { [name in string]: string }) => { const capitalize = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1); -async function addExportStatement(file: string, exportStatement: string) { - const contents = await fs.readFile(file, 'utf8'); - const newContents = contents +const addExportStatement = async ( + file: string, + importStatement: string, + exportStatement: string, +) => { + const newContents = fs + .readFileSync(file, 'utf8') .split('\n') .filter(Boolean) // get rid of empty lines - .concat([exportStatement]) - .sort() + .concat([importStatement, exportStatement]) .concat(['']) // newline at end of file .join('\n'); await fs.writeFile(file, newContents, 'utf8'); -} +}; export async function addPluginDependencyToApp( rootDir: string, @@ -118,16 +121,19 @@ export async function addPluginToApp(rootDir: string, pluginName: string) { .split('-') .map(name => capitalize(name)) .join(''); - const pluginExport = `export { default as ${pluginNameCapitalized} } from '${pluginPackage}';`; + const pluginImport = `import { default as ${pluginNameCapitalized} } from '${pluginPackage}';`; + const pluginExport = `export { ${pluginNameCapitalized} };`; const pluginsFilePath = 'packages/app/src/plugins.ts'; const pluginsFile = resolvePath(rootDir, pluginsFilePath); await Task.forItem('processing', pluginsFilePath, async () => { - await addExportStatement(pluginsFile, pluginExport).catch(error => { - throw new Error( - `Failed to import plugin in app: ${pluginsFile}: ${error.message}`, - ); - }); + await addExportStatement(pluginsFile, pluginImport, pluginExport).catch( + error => { + throw new Error( + `Failed to import plugin in app: ${pluginsFile}: ${error.message}`, + ); + }, + ); }); }