Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"pre-push"
],
"devDependencies": {
"@types/node": "^22",
"chalk": "^4.1.0",
"chokidar": "^4.0.3",
"pre-push": "^0.1.4",
Expand Down
17 changes: 17 additions & 0 deletions packages/config-tsconfig/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# `@elastic/eui-config-tsconfig`

**This is an internal shared configuration package.**

Base TypeScript configuration for EUI monorepo packages.

## Usage

1. Add the following to your package's `tsconfig.json`:

```json
{
"extends": "@elastic/eui-config-tsconfig"
}
```

2. Configure `include`, `exclude` and other fields as needed.
14 changes: 14 additions & 0 deletions packages/config-tsconfig/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "@elastic/eui-config-tsconfig",
"version": "0.0.0",
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/elastic/eui.git",
"directory": "packages/config-tsconfig"
},
"files": [
"tsconfig.json"
],
"main": "tsconfig.json"
}
21 changes: 21 additions & 0 deletions packages/config-tsconfig/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"declaration": true,
"incremental": true,
"noUnusedLocals": true,
"strict": true,
"module": "esnext",
"target": "esnext",
"allowSyntheticDefaultImports": true,
"jsx": "react",
"esModuleInterop": true,
"resolveJsonModule": true,
"moduleResolution": "node",
"forceConsistentCasingInFileNames": true,
"lib": [
"esnext",
"dom"
]
}
}
1 change: 1 addition & 0 deletions packages/eui-theme-borealis/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
"@babel/preset-env": "^7.21.5",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.21.5",
"@elastic/eui-config-tsconfig": "workspace:*",
"@elastic/eui-theme-common": "workspace:*",
"@types/chroma-js": "^2.4.0",
"@types/jest": "^29.5.12",
Expand Down
13 changes: 1 addition & 12 deletions packages/eui-theme-borealis/tsconfig.cjs.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "./tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "lib/cjs",
"target": "es6",
"module": "CommonJS",
"lib": [
"es6",
"DOM"
],
"moduleResolution": "Node",
"declaration": true,
"noEmitHelpers": true,
"incremental": true,
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"tsBuildInfoFile": "lib/cjs/.tsbuildinfo",
"importHelpers": false,
},
Expand Down
12 changes: 1 addition & 11 deletions packages/eui-theme-borealis/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@elastic/eui-config-tsconfig",
"compilerOptions": {
"rootDir": "src",
"outDir": "lib/esm",
"target": "ES2020",
"module": "ESNext",
"lib": [
"ESNext",
"DOM"
],
"moduleResolution": "Node",
"declaration": true,
"noEmitHelpers": true,
"incremental": true,
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"tsBuildInfoFile": "lib/esm/.tsbuildinfo"
},
Expand Down
16 changes: 6 additions & 10 deletions packages/eui-theme-borealis/tsconfig.types.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
{
"extends": "./tsconfig.cjs.json",
"compilerOptions": {
"outDir": "lib/cjs",
"declaration": true,
"isolatedModules": false,
"noEmit": false,
"allowJs": false,
"emitDeclarationOnly": true
},
"exclude": ["node_modules", "**/*.test.ts"]
"extends": "./tsconfig.cjs.json",
"compilerOptions": {
"isolatedModules": false,
"emitDeclarationOnly": true
},
"exclude": ["node_modules", "**/*.test.ts"]
}
1 change: 1 addition & 0 deletions packages/eui-theme-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"@babel/preset-env": "^7.21.5",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.21.5",
"@elastic/eui-config-tsconfig": "workspace:*",
"@emotion/react": "^11.11.0",
"@types/chroma-js": "^2.4.0",
"@types/jest": "^29.5.12",
Expand Down
18 changes: 3 additions & 15 deletions packages/eui-theme-common/tsconfig.cjs.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,16 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "./tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "lib/cjs",
"target": "es6",
"module": "CommonJS",
"lib": [
"es6",
"DOM"
],
"moduleResolution": "Node",
"declaration": true,
"noEmitHelpers": true,
"incremental": true,
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"tsBuildInfoFile": "lib/cjs/.tsbuildinfo",
"importHelpers": false,
"tsBuildInfoFile": "lib/cjs/.tsbuildinfo"
},
"include": [
"src"
],
"exclude": [
"node_modules"
],
]
}
12 changes: 1 addition & 11 deletions packages/eui-theme-common/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@elastic/eui-config-tsconfig",
"compilerOptions": {
"rootDir": "src",
"outDir": "lib/esm",
"target": "ES2020",
"module": "ESNext",
"lib": [
"ESNext",
"DOM"
],
"moduleResolution": "Node",
"declaration": true,
"noEmitHelpers": true,
"incremental": true,
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"tsBuildInfoFile": "lib/esm/.tsbuildinfo"
},
"include": [
Expand Down
1 change: 1 addition & 0 deletions packages/eui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
"@elastic/charts": "^64.1.0",
"@elastic/datemath": "^5.0.3",
"@elastic/eslint-plugin-eui": "workspace:*",
"@elastic/eui-config-tsconfig": "workspace:*",
"@elastic/eui-theme-borealis": "workspace:*",
"@emotion/babel-preset-css-prop": "^11.11.0",
"@emotion/cache": "^11.11.0",
Expand Down
70 changes: 11 additions & 59 deletions packages/eui/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,66 +1,18 @@
{
"extends": "@elastic/eui-config-tsconfig",
"compilerOptions": {
"baseUrl": ".",
"rootDir": ".",

// emit files to the `types` dir, these are ignored by everything but TS needs _somewhere_ to emit
"outDir": "types",

// generate declaration files
"declaration": true,

// re-use info from previous runs to improve performance
"incremental": true,

// don't allow un-used variables
"noUnusedLocals": true,

// Enables all strict type checking options.
"strict": true,

// Output as ES Modules & esnext code, webpack will handle further conversion
"module": "esnext",
"target": "esnext",

// Allows default imports from modules with no default export. This does not affect code emit, just type checking.
// We have to enable this option explicitly since `esModuleInterop` doesn't enable it automatically when ES2015 or
// ESNext module format is used.
"allowSyntheticDefaultImports": true,

// Support .tsx files and transform JSX into calls to React.createElement
"jsx": "react",

// Emits __importStar and __importDefault helpers for runtime babel ecosystem compatibility.
"esModuleInterop": true,

// Allow importing JSON files
"resolveJsonModule": true,

// Resolve modules in the same way as Node.js. Aka make `require` works the
// same in TypeScript as it does in Node.js.
"moduleResolution": "node",

// Skip type checking node_modules
"skipLibCheck": true,

// Disallow inconsistently-cased references to the same file.
"forceConsistentCasingInFileNames": true,

// enables "core language features"
"lib": [
// ESNext auto includes previous versions all the way back to es5
"esnext",
// includes support for browser APIs
"dom"
],

// Specifies where to find library definitions. When this is explicitly set,
// it has to include the default location i.e. node_modules/@types
"typeRoots": ["../../node_modules/@types", "node_modules/@types", "src/custom_typings"]
"typeRoots": [
"src/custom_typings"
]
},
"include": [
"./src/**/*",
"./.storybook/*.d.ts"
"src/**/*",
".storybook/*.d.ts"
],
"exclude": ["node_modules", "**/*/*.spec.tsx", "**/*/*.a11y.tsx"]
"exclude": [
"node_modules",
"**/*.spec.tsx",
"**/*.a11y.tsx"
]
}
1 change: 1 addition & 0 deletions packages/release-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"directory": "packages/release-cli"
},
"devDependencies": {
"@elastic/eui-config-tsconfig": "workspace:*",
"@types/prompts": "^2.4.9",
"typescript": "^5.7.3"
},
Expand Down
7 changes: 3 additions & 4 deletions packages/release-cli/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@elastic/eui-config-tsconfig",
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": false,
"outDir": "dist",
"strictBuiltinIteratorReturn": false,
"noUnusedLocals": false
},
"include": [
"src"
Expand Down
27 changes: 27 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7027,6 +7027,12 @@ __metadata:
languageName: unknown
linkType: soft

"@elastic/eui-config-tsconfig@workspace:*, @elastic/eui-config-tsconfig@workspace:packages/config-tsconfig":
version: 0.0.0-use.local
resolution: "@elastic/eui-config-tsconfig@workspace:packages/config-tsconfig"
languageName: unknown
linkType: soft

"@elastic/eui-docgen@workspace:^, @elastic/eui-docgen@workspace:packages/eui-docgen":
version: 0.0.0-use.local
resolution: "@elastic/eui-docgen@workspace:packages/eui-docgen"
Expand Down Expand Up @@ -7095,6 +7101,7 @@ __metadata:
resolution: "@elastic/eui-monorepo@workspace:."
dependencies:
"@elastic/eui-release-cli": "link:packages/release-cli"
"@types/node": "npm:^22"
chalk: "npm:^4.1.0"
chokidar: "npm:^4.0.3"
pre-push: "npm:^0.1.4"
Expand All @@ -7112,6 +7119,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@elastic/eui-release-cli@workspace:packages/release-cli"
dependencies:
"@elastic/eui-config-tsconfig": "workspace:*"
"@types/prompts": "npm:^2.4.9"
chalk: "npm:^4"
glob: "npm:^11.0.1"
Expand All @@ -7137,6 +7145,7 @@ __metadata:
"@babel/preset-env": "npm:^7.21.5"
"@babel/preset-react": "npm:^7.18.6"
"@babel/preset-typescript": "npm:^7.21.5"
"@elastic/eui-config-tsconfig": "workspace:*"
"@elastic/eui-theme-common": "workspace:*"
"@types/chroma-js": "npm:^2.4.0"
"@types/jest": "npm:^29.5.12"
Expand Down Expand Up @@ -7170,6 +7179,7 @@ __metadata:
"@babel/preset-env": "npm:^7.21.5"
"@babel/preset-react": "npm:^7.18.6"
"@babel/preset-typescript": "npm:^7.21.5"
"@elastic/eui-config-tsconfig": "workspace:*"
"@emotion/react": "npm:^11.11.0"
"@types/chroma-js": "npm:^2.4.0"
"@types/jest": "npm:^29.5.12"
Expand Down Expand Up @@ -7285,6 +7295,7 @@ __metadata:
"@elastic/charts": "npm:^64.1.0"
"@elastic/datemath": "npm:^5.0.3"
"@elastic/eslint-plugin-eui": "workspace:*"
"@elastic/eui-config-tsconfig": "workspace:*"
"@elastic/eui-theme-borealis": "workspace:*"
"@elastic/eui-theme-common": "workspace:*"
"@elastic/prismjs-esql": "npm:^1.1.2"
Expand Down Expand Up @@ -11082,6 +11093,15 @@ __metadata:
languageName: node
linkType: hard

"@types/node@npm:^22":
version: 22.19.19
resolution: "@types/node@npm:22.19.19"
dependencies:
undici-types: "npm:~6.21.0"
checksum: 10c0/402e0f088c94cabda3cd721546bd8e4e75e098e0b342f6e03b90ca1e19c28986f9650112c64fcfd09fc8cebc0f8b20291a513153e90489331cf666e1e5503e16
languageName: node
linkType: hard

"@types/node@npm:^22.0.0":
version: 22.9.1
resolution: "@types/node@npm:22.9.1"
Expand Down Expand Up @@ -39321,6 +39341,13 @@ __metadata:
languageName: node
linkType: hard

"undici-types@npm:~6.21.0":
version: 6.21.0
resolution: "undici-types@npm:6.21.0"
checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04
languageName: node
linkType: hard

"undici@npm:^6.21.1":
version: 6.21.1
resolution: "undici@npm:6.21.1"
Expand Down
Loading