From 3643faf3d47d445fc0961b1e6c77435edcbefe29 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 16 May 2020 15:56:32 +0200 Subject: [PATCH] packages/cli: switch bundling config to use sucrase --- packages/cli/package.json | 2 ++ packages/cli/src/lib/bundle/config.ts | 15 +++++++--- packages/core/src/api/navTargets/index.ts | 2 +- packages/core/src/components/Table/index.ts | 3 +- packages/core/src/index.ts | 6 ++-- packages/core/src/layout/BottomLink/index.ts | 3 +- packages/core/src/layout/Page/index.ts | 3 +- yarn.lock | 30 ++++++++++++++++++-- 8 files changed, 51 insertions(+), 13 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 7183320136..c74b6b502b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -35,6 +35,7 @@ "@rollup/plugin-json": "^4.0.2", "@rollup/plugin-node-resolve": "^7.1.1", "@spotify/web-scripts": "^6.0.0", + "@sucrase/webpack-loader": "^2.0.0", "chalk": "^4.0.0", "chokidar": "^3.3.1", "commander": "^4.1.1", @@ -61,6 +62,7 @@ "rollup-plugin-peer-deps-external": "^2.2.2", "rollup-plugin-postcss": "^3.1.1", "rollup-plugin-typescript2": "^0.26.0", + "sucrase": "^3.14.0", "tar": "^6.0.1", "ts-loader": "^7.0.4", "webpack": "^4.41.6", diff --git a/packages/cli/src/lib/bundle/config.ts b/packages/cli/src/lib/bundle/config.ts index 031b1effe3..f172746ce3 100644 --- a/packages/cli/src/lib/bundle/config.ts +++ b/packages/cli/src/lib/bundle/config.ts @@ -67,12 +67,19 @@ export function createConfig(options: BundlingOptions): webpack.Configuration { }, }, { - test: /\.(tsx?|jsx?|mjs)$/, + test: /\.(tsx?)$/, exclude: /node_modules/, - loader: 'ts-loader', + loader: '@sucrase/webpack-loader', options: { - // disable type checker - handled by ForkTsCheckerWebpackPlugin - transpileOnly: true, + transforms: ['typescript', 'jsx'], + }, + }, + { + test: /\.(jsx?|mjs)$/, + exclude: /node_modules/, + loader: '@sucrase/webpack-loader', + options: { + transforms: ['jsx'], }, }, { diff --git a/packages/core/src/api/navTargets/index.ts b/packages/core/src/api/navTargets/index.ts index 6c2c899f89..c5d0cc4289 100644 --- a/packages/core/src/api/navTargets/index.ts +++ b/packages/core/src/api/navTargets/index.ts @@ -14,5 +14,5 @@ * limitations under the License. */ -export type { NavTarget, NavTargetConfig, NavTargetOverrideConfig } from './types'; +export * from './types'; export { createNavTarget } from './NavTarget'; diff --git a/packages/core/src/components/Table/index.ts b/packages/core/src/components/Table/index.ts index 7ea3ead808..b46d3e3c2b 100644 --- a/packages/core/src/components/Table/index.ts +++ b/packages/core/src/components/Table/index.ts @@ -15,5 +15,6 @@ */ export { default } from './Table'; -export type { TableColumn } from './Table'; +import type { TableColumn } from './Table'; +export type { TableColumn }; export { default as SubvalueCell } from './SubvalueCell'; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 1bd35f67c3..41cb4c7906 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -17,7 +17,8 @@ export * from './api'; export { default as Page } from './layout/Page'; export { gradients, pageTheme } from './layout/Page'; -export type { PageTheme } from './layout/Page'; +import type { PageTheme } from './layout/Page'; +export type { PageTheme }; export { default as Content } from './layout/Content/Content'; export { default as ContentHeader } from './layout/ContentHeader/ContentHeader'; export { default as Header } from './layout/Header/Header'; @@ -37,7 +38,8 @@ export { OAuthRequestDialog } from './components/OAuthRequestDialog'; export { AlphaLabel, BetaLabel } from './components/Lifecycle'; export { default as SupportButton } from './components/SupportButton'; export { default as Table, SubvalueCell } from './components/Table'; -export type { TableColumn } from './components/Table/Table'; +import type { TableColumn } from './components/Table/Table'; +export type { TableColumn }; export { default as StructuredMetadataTable } from './components/StructuredMetadataTable'; export { default as TrendLine } from './components/TrendLine'; export { FeatureCalloutCircular } from './components/FeatureDiscovery/FeatureCalloutCircular'; diff --git a/packages/core/src/layout/BottomLink/index.ts b/packages/core/src/layout/BottomLink/index.ts index 6f2055f4f7..d622ce0fe9 100644 --- a/packages/core/src/layout/BottomLink/index.ts +++ b/packages/core/src/layout/BottomLink/index.ts @@ -15,4 +15,5 @@ */ export { default } from './BottomLink'; -export type { Props } from './BottomLink'; +import type { Props } from './BottomLink'; +export type { Props }; diff --git a/packages/core/src/layout/Page/index.ts b/packages/core/src/layout/Page/index.ts index 50899fa036..38fc349e95 100644 --- a/packages/core/src/layout/Page/index.ts +++ b/packages/core/src/layout/Page/index.ts @@ -16,4 +16,5 @@ export { default } from './Page'; export { gradients, pageTheme } from './PageThemeProvider'; -export type { PageTheme } from './PageThemeProvider'; +import type { PageTheme } from './PageThemeProvider'; +export type { PageTheme }; diff --git a/yarn.lock b/yarn.lock index 08a530db89..123ea40293 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3628,6 +3628,13 @@ "@styled-system/core" "^5.1.2" "@styled-system/css" "^5.1.5" +"@sucrase/webpack-loader@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@sucrase/webpack-loader/-/webpack-loader-2.0.0.tgz#b8a70b8d3df3eeb570e6a3315e1a9c6b723e4a37" + integrity sha512-KUfWr83g70Qm+ZqjGL+M4tX01taDP3BldQcI6NSMlDf7WTDfuo0RvLlS0ekF6dPVslNyZhbFFBy2OBTB6Sa6+Q== + dependencies: + loader-utils "^1.1.0" + "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" @@ -7152,7 +7159,7 @@ commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.1, commander@^4.1.1: +commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== @@ -10555,7 +10562,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -15049,7 +15056,7 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.5.0: +mz@^2.5.0, mz@^2.7.0: version "2.7.0" resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -20353,6 +20360,18 @@ stylis@3.5.0: resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" integrity sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw== +sucrase@^3.14.0: + version "3.14.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.14.0.tgz#4364f4da5d57465acba364ef65b14ca78672d500" + integrity sha512-sWyDtHMD0Q1wv4GpL3Jp10Pxi8ht4qrYeo1tAtHJ21BaMjl3PCrIM22FudoKRVY90r+lj3ytvIcf6WkYqt7TJg== + dependencies: + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + superagent@^3.8.3: version "3.8.3" resolved "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" @@ -20950,6 +20969,11 @@ ts-easing@^0.2.0: resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== +ts-interface-checker@^0.1.9: + version "0.1.10" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz#b68a49e37e90a05797e590f08494dd528bf383cf" + integrity sha512-UJYuKET7ez7ry0CnvfY6fPIUIZDw+UI3qvTUQeS2MyI4TgEeWAUBqy185LeaHcdJ9zG2dgFpPJU/AecXU0Afug== + ts-jest@^25.2.1: version "25.2.1" resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d"