This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch feat/bun-turborepo-poc in repository https://gitbox.apache.org/repos/asf/superset.git
commit d0575ceb29d07b637d71d512cd3dd2ce38e67453 Author: Evan Rusackas <[email protected]> AuthorDate: Tue Feb 10 10:25:06 2026 -0800 feat(build): POC - add Turborepo for cached package builds This PR adds Turborepo as a build orchestration tool for the frontend monorepo, providing intelligent caching for package builds. Changes: - Add turbo.json with task pipeline configuration - Add turbo devDependency to root package.json - Add packageManager field for Turborepo compatibility - Add build/clean/type-check scripts to all packages and plugins - Add .turbo to .gitignore New scripts: - npm run turbo:build - Build all packages with caching - npm run turbo:build:force - Build without cache - npm run turbo:type-check - Type check all packages - npm run turbo:clean - Clean all build artifacts Benefits: - Cached builds: 5s → 314ms (16x faster) on unchanged packages - Parallel builds across packages - Only rebuilds what changed - Local-only caching (no cloud dependencies) Note: Lerna is preserved for versioning and publishing. Turborepo handles build orchestration, not package publishing. Co-Authored-By: Claude Opus 4.5 <[email protected]> --- superset-frontend/.gitignore | 2 + superset-frontend/package-lock.json | 103 +++++++++++++++++++++ superset-frontend/package.json | 10 +- .../packages/superset-core/package.json | 2 +- .../superset-ui-chart-controls/package.json | 5 + .../packages/superset-ui-core/package.json | 5 + .../packages/superset-ui-switchboard/package.json | 5 + .../legacy-plugin-chart-calendar/package.json | 5 + .../plugins/legacy-plugin-chart-chord/package.json | 5 + .../legacy-plugin-chart-country-map/package.json | 5 + .../legacy-plugin-chart-horizon/package.json | 5 + .../legacy-plugin-chart-map-box/package.json | 5 + .../legacy-plugin-chart-paired-t-test/package.json | 5 + .../package.json | 5 + .../legacy-plugin-chart-partition/package.json | 5 + .../plugins/legacy-plugin-chart-rose/package.json | 5 + .../legacy-plugin-chart-world-map/package.json | 5 + .../legacy-preset-chart-deckgl/package.json | 5 + .../plugins/legacy-preset-chart-nvd3/package.json | 5 + .../plugin-chart-ag-grid-table/package.json | 5 + .../plugins/plugin-chart-cartodiagram/package.json | 5 + .../plugins/plugin-chart-echarts/package.json | 5 + .../plugins/plugin-chart-handlebars/package.json | 5 + .../plugins/plugin-chart-pivot-table/package.json | 5 + .../plugins/plugin-chart-table/package.json | 5 + .../plugins/plugin-chart-word-cloud/package.json | 5 + superset-frontend/turbo.json | 46 +++++++++ 27 files changed, 271 insertions(+), 2 deletions(-) diff --git a/superset-frontend/.gitignore b/superset-frontend/.gitignore index 71eded30927..55e8390f69d 100644 --- a/superset-frontend/.gitignore +++ b/superset-frontend/.gitignore @@ -12,3 +12,5 @@ src/temp **/lib/* **/storybook-static/* migration-storybook.log +# Turborepo cache +.turbo diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index 3c56d90a230..0f195794d82 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -285,6 +285,7 @@ "ts-jest": "^29.4.6", "tscw-config": "^1.1.2", "tsx": "^4.21.0", + "turbo": "^2.8.4", "typescript": "5.4.5", "unzipper": "^0.12.3", "vm-browserify": "^1.1.2", @@ -51939,6 +51940,108 @@ "node": "*" } }, + "node_modules/turbo": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.8.4.tgz", + "integrity": "sha512-yf0DFQBoR0DCOg11pYRAX5/CvXwTUwJsIFTHTOpHbUy3GnEpGBfE5E4440nmn8g6FpXXpy8Im2UEpmmv0fz67g==", + "dev": true, + "license": "MIT", + "bin": { + "turbo": "bin/turbo" + }, + "optionalDependencies": { + "turbo-darwin-64": "2.8.4", + "turbo-darwin-arm64": "2.8.4", + "turbo-linux-64": "2.8.4", + "turbo-linux-arm64": "2.8.4", + "turbo-windows-64": "2.8.4", + "turbo-windows-arm64": "2.8.4" + } + }, + "node_modules/turbo-darwin-64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.8.4.tgz", + "integrity": "sha512-xVkkgQMRyLdKodZ0NU0lkjcLDm7J9R0zDNY61H4K38F94ZuspjeM1zaVB9HNM/7m4/7QvAPrvO/vCBr2qWmKKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/turbo-darwin-arm64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.8.4.tgz", + "integrity": "sha512-ycg5jmWIV9hFScbb7bOhBc0A8jiKfOdP5SAige6FUJDnSTkL29qpLIZxcE5/J/5NNys7hVifHocDCT08ELcJ5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/turbo-linux-64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.8.4.tgz", + "integrity": "sha512-RzH0bTRRCobvBs6mLxporuF/L2MhPJlYZ/rwfzMfwWX/TnNYUcOROgNqHIH6MK4eBAjQ7YliBDrstHnFrO8C7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-linux-arm64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.8.4.tgz", + "integrity": "sha512-7HPdZjqZqq/3eg16oQMmEguZLrl4BGGVlXNpiy2mIhNjXheJjtSJ7rvgnpxMHXAFsaOPytSEkvgydB2qsYtM3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/turbo-windows-64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.8.4.tgz", + "integrity": "sha512-cKo42yFeEixPz3rljG4rSHTjCLsNSxdS3HUDen5CpoyXu+eGxAeO50wUnGIzvkXRRLJTkG9rhIITNdqUzlrijA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/turbo-windows-arm64": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.8.4.tgz", + "integrity": "sha512-9g6P11SIIQSRlDqwd9QITR82hPeUjHenSYVsULrK7X57x+dmQIAkenZahSaMRDts9fRQygF5xBMoH0uZGwUvoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index aaf6dcad08a..1c22cba448d 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -1,6 +1,7 @@ { "name": "superset", "version": "0.0.0-dev", + "packageManager": "[email protected]", "description": "Superset is a data exploration platform designed to be visual, intuitive, and interactive.", "keywords": [ "big", @@ -68,6 +69,12 @@ "plugins:publish-all": "npm run prune && npm run plugins:build && lerna publish from-package --force-publish --yes", "plugins:release-conventional": "npm run prune && npm run plugins:build && lerna publish --conventional-commits --create-release github --yes", "plugins:release-from-tag": "npm run prune && npm run plugins:build && lerna publish from-package --yes", + "turbo:build": "turbo run build", + "turbo:build:force": "turbo run build --force", + "turbo:type-check": "turbo run type-check", + "turbo:lint": "turbo run lint", + "turbo:test": "turbo run test", + "turbo:clean": "turbo run clean && rm -rf .turbo", "plugins:storybook": "cd packages/superset-ui-demo && npm run storybook", "playwright:test": "playwright test", "playwright:ui": "playwright test --ui", @@ -187,11 +194,11 @@ "markdown-to-jsx": "^9.7.3", "match-sorter": "^6.3.4", "memoize-one": "^5.2.1", - "pretty-ms": "^9.3.0", "mousetrap": "^1.6.5", "mustache": "^4.2.0", "nanoid": "^5.1.6", "ol": "^7.5.2", + "pretty-ms": "^9.3.0", "query-string": "9.3.1", "re-resizable": "^6.11.2", "react": "^17.0.2", @@ -367,6 +374,7 @@ "ts-jest": "^29.4.6", "tscw-config": "^1.1.2", "tsx": "^4.21.0", + "turbo": "^2.8.4", "typescript": "5.4.5", "unzipper": "^0.12.3", "vm-browserify": "^1.1.2", diff --git a/superset-frontend/packages/superset-core/package.json b/superset-frontend/packages/superset-core/package.json index 6d75d70c8d0..531f7cd7abe 100644 --- a/superset-frontend/packages/superset-core/package.json +++ b/superset-frontend/packages/superset-core/package.json @@ -47,7 +47,7 @@ "scripts": { "clean": "rm -rf lib tsconfig.tsbuildinfo", "build": "npm run clean && npx tsc --build", - "type": "npx tsc --noEmit" + "type-check": "npx tsc --noEmit" }, "publishConfig": { "access": "public" diff --git a/superset-frontend/packages/superset-ui-chart-controls/package.json b/superset-frontend/packages/superset-ui-chart-controls/package.json index 061eba7bd4a..aed549e376d 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/package.json +++ b/superset-frontend/packages/superset-ui-chart-controls/package.json @@ -47,5 +47,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/packages/superset-ui-core/package.json b/superset-frontend/packages/superset-ui-core/package.json index 425e90aaa06..7cac32f1685 100644 --- a/superset-frontend/packages/superset-ui-core/package.json +++ b/superset-frontend/packages/superset-ui-core/package.json @@ -131,5 +131,10 @@ "require": "./lib/utils/*.js", "types": "./lib/utils/*.d.ts" } + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/packages/superset-ui-switchboard/package.json b/superset-frontend/packages/superset-ui-switchboard/package.json index 58298fd41e9..11c45b18255 100644 --- a/superset-frontend/packages/superset-ui-switchboard/package.json +++ b/superset-frontend/packages/superset-ui-switchboard/package.json @@ -30,5 +30,10 @@ "homepage": "https://github.com/apache/superset#readme", "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json index 99966ea0d0b..adb4727912a 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json @@ -37,5 +37,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json index 03ecfd5d7f8..e81d8deae63 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json @@ -37,5 +37,10 @@ "@superset-ui/chart-controls": "*", "@superset-ui/core": "*", "@apache-superset/core": "*" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json index 1a5d8f09003..33ff3ac8d80 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json @@ -35,5 +35,10 @@ "@superset-ui/chart-controls": "*", "@superset-ui/core": "*", "react": "^17.0.2" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json index 5f7cbc4ed2a..9180cbc5ced 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json @@ -35,5 +35,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json b/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json index 90b77fece55..e1b12872a49 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json @@ -40,5 +40,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json index 3272f943d62..a8579497e5b 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json @@ -35,5 +35,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json index 42900f5382e..6d5469baf84 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json @@ -37,5 +37,10 @@ "@superset-ui/core": "*", "@apache-superset/core": "*", "react": "^17.0.2" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json index ce7d12ebf9e..a0ca3e415c1 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json @@ -38,5 +38,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json index c6607a37951..02460762446 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json @@ -36,5 +36,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json index bb132c0f4f8..d0a3ebc97aa 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json +++ b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json @@ -40,5 +40,10 @@ "@superset-ui/core": "*", "@apache-superset/core": "*", "react": "^17.0.2" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json b/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json index e40690c12df..073e470c5c7 100644 --- a/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json +++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json @@ -72,5 +72,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json index 640a338a831..747f67bf40c 100644 --- a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json +++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json @@ -44,5 +44,10 @@ "@superset-ui/core": "*", "dayjs": "^1.11.19", "react": "^17.0.2" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json index 6d23f8bd241..84f528d5855 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json @@ -52,5 +52,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json index abca2cc0ab0..5946db0c61b 100644 --- a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json +++ b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json @@ -49,5 +49,10 @@ "polished": "*", "react": "^17.0.2", "react-dom": "^17.0.2" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-echarts/package.json b/superset-frontend/plugins/plugin-chart-echarts/package.json index 3bba8cfea3e..1ed5d509f37 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/package.json +++ b/superset-frontend/plugins/plugin-chart-echarts/package.json @@ -40,5 +40,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-handlebars/package.json b/superset-frontend/plugins/plugin-chart-handlebars/package.json index fd990ed955b..6108a49a673 100644 --- a/superset-frontend/plugins/plugin-chart-handlebars/package.json +++ b/superset-frontend/plugins/plugin-chart-handlebars/package.json @@ -46,5 +46,10 @@ "@types/jest": "^30.0.0", "@types/lodash": "^4.17.23", "jest": "^30.2.0" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/package.json b/superset-frontend/plugins/plugin-chart-pivot-table/package.json index b20f5970919..667f8d19e24 100644 --- a/superset-frontend/plugins/plugin-chart-pivot-table/package.json +++ b/superset-frontend/plugins/plugin-chart-pivot-table/package.json @@ -41,5 +41,10 @@ "@babel/types": "^7.29.0", "@types/jest": "^30.0.0", "jest": "^30.2.0" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-table/package.json b/superset-frontend/plugins/plugin-chart-table/package.json index 27b073ec388..6dc47da4f46 100644 --- a/superset-frontend/plugins/plugin-chart-table/package.json +++ b/superset-frontend/plugins/plugin-chart-table/package.json @@ -52,5 +52,10 @@ }, "publishConfig": { "access": "public" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/package.json b/superset-frontend/plugins/plugin-chart-word-cloud/package.json index 54bb2d7c55b..537ea35e66d 100644 --- a/superset-frontend/plugins/plugin-chart-word-cloud/package.json +++ b/superset-frontend/plugins/plugin-chart-word-cloud/package.json @@ -43,5 +43,10 @@ }, "devDependencies": { "@types/d3-cloud": "^1.2.9" + }, + "scripts": { + "clean": "rm -rf lib esm tsconfig.tsbuildinfo", + "build": "npm run clean && npx tsc --build", + "type-check": "npx tsc --noEmit" } } diff --git a/superset-frontend/turbo.json b/superset-frontend/turbo.json new file mode 100644 index 00000000000..8ee8dcbda19 --- /dev/null +++ b/superset-frontend/turbo.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "build": { + "dependsOn": ["^build"], + "inputs": ["src/**", "package.json", "tsconfig.json", "tsconfig.*.json"], + "outputs": ["lib/**", "esm/**", "dist/**", "tsconfig.tsbuildinfo"], + "cache": true + }, + "build:esm": { + "dependsOn": ["^build:esm"], + "inputs": ["src/**", "package.json", "tsconfig.json"], + "outputs": ["esm/**"], + "cache": true + }, + "build:cjs": { + "dependsOn": ["^build:cjs"], + "inputs": ["src/**", "package.json", "tsconfig.json"], + "outputs": ["lib/**"], + "cache": true + }, + "type-check": { + "dependsOn": ["^build"], + "inputs": ["src/**", "*.ts", "*.tsx", "tsconfig.json"], + "outputs": [], + "cache": true + }, + "lint": { + "inputs": ["src/**", "*.ts", "*.tsx", "*.js", "*.jsx"], + "outputs": [], + "cache": true + }, + "test": { + "dependsOn": ["^build"], + "inputs": ["src/**", "test/**", "spec/**", "**/*.test.*", "**/*.spec.*"], + "outputs": ["coverage/**"], + "cache": true + }, + "clean": { + "cache": false + } + }, + "ui": "tui", + "daemon": true, + "cacheDir": ".turbo" +}
