diff --git a/packages/grafana-toolkit/src/cli/utils/execTask.ts b/packages/grafana-toolkit/src/cli/utils/execTask.ts index f404206b7a9..8bbcc4d9dbf 100644 --- a/packages/grafana-toolkit/src/cli/utils/execTask.ts +++ b/packages/grafana-toolkit/src/cli/utils/execTask.ts @@ -9,7 +9,7 @@ export const execTask = (task: Task) => async (options: TOpt await task.exec(); console.groupEnd(); } catch (e) { - console.log(e); + console.trace(e); process.exit(1); } }; diff --git a/packages/grafana-toolkit/src/cli/utils/useSpinner.ts b/packages/grafana-toolkit/src/cli/utils/useSpinner.ts index b901ed96d9c..8f0311cc6ee 100644 --- a/packages/grafana-toolkit/src/cli/utils/useSpinner.ts +++ b/packages/grafana-toolkit/src/cli/utils/useSpinner.ts @@ -10,6 +10,7 @@ export const useSpinner = (spinnerLabel: string, fn: FnToSpin, killProcess await fn(options); spinner.succeed(); } catch (e) { + console.trace(e); spinner.fail(e.message || e); if (killProcess) { process.exit(1); diff --git a/packages/grafana-toolkit/src/config/webpack.plugin.config.test.ts b/packages/grafana-toolkit/src/config/webpack.plugin.config.test.ts new file mode 100644 index 00000000000..2696d7894f4 --- /dev/null +++ b/packages/grafana-toolkit/src/config/webpack.plugin.config.test.ts @@ -0,0 +1,29 @@ +import { findModuleFiles } from './webpack.plugin.config'; +const fs = require('fs'); + +jest.mock('fs'); + +const modulePathsMock = [ + 'some/path/module.ts', + 'some/path/module.ts.whatever', + 'some/path/module.tsx', + 'some/path/module.tsx.whatever', + 'some/path/anotherFile.ts', + 'some/path/anotherFile.tsx', +]; + +describe('Plugin webpack config', () => { + describe('findModuleTs', () => { + beforeAll(() => { + fs.statSync.mockReturnValue({ + isDirectory: () => false, + }); + }); + + it('finds module.ts and module.tsx files', () => { + const moduleFiles = findModuleFiles('/', modulePathsMock); + expect(moduleFiles.length).toBe(2); + expect(moduleFiles).toEqual(['/some/path/module.ts', '/some/path/module.tsx']); + }); + }); +}); diff --git a/packages/grafana-toolkit/src/config/webpack.plugin.config.ts b/packages/grafana-toolkit/src/config/webpack.plugin.config.ts index eb6a5297e55..07b9f350cb8 100644 --- a/packages/grafana-toolkit/src/config/webpack.plugin.config.ts +++ b/packages/grafana-toolkit/src/config/webpack.plugin.config.ts @@ -16,7 +16,7 @@ interface WebpackConfigurationOptions { } type WebpackConfigurationGetter = (options: WebpackConfigurationOptions) => webpack.Configuration; -const findModuleTs = (base: string, files?: string[], result?: string[]) => { +export const findModuleFiles = (base: string, files?: string[], result?: string[]) => { files = files || fs.readdirSync(base); result = result || []; @@ -24,9 +24,10 @@ const findModuleTs = (base: string, files?: string[], result?: string[]) => { files.forEach(file => { const newbase = path.join(base, file); if (fs.statSync(newbase).isDirectory()) { - result = findModuleTs(newbase, fs.readdirSync(newbase), result); + result = findModuleFiles(newbase, fs.readdirSync(newbase), result); } else { - if (file.indexOf('module.ts') > -1) { + const filename = path.basename(file); + if (/^module.tsx?$/.exec(filename)) { // @ts-ignore result.push(newbase); } @@ -37,7 +38,7 @@ const findModuleTs = (base: string, files?: string[], result?: string[]) => { }; const getModuleFiles = () => { - return findModuleTs(path.resolve(process.cwd(), 'src')); + return findModuleFiles(path.resolve(process.cwd(), 'src')); }; const getManualChunk = (id: string) => { @@ -206,11 +207,5 @@ export const getWebpackConfig: WebpackConfigurationGetter = options => { ], }, optimization, - // optimization: { - // splitChunks: { - // chunks: 'all', - // name: 'shared' - // } - // } }; }; diff --git a/packages/grafana-toolkit/tslint.json b/packages/grafana-toolkit/tslint.json index f5129373624..d058db8cd65 100644 --- a/packages/grafana-toolkit/tslint.json +++ b/packages/grafana-toolkit/tslint.json @@ -1,6 +1,7 @@ { "extends": "../../tslint.json", "rules": { - "import-blacklist": [true, ["^@grafana/runtime.*"]] + "import-blacklist": [true, ["^@grafana/runtime.*"]], + "no-console": [true, "debug", "info", "time", "timeEnd"] } }