diff --git a/bin/tsconfig.json b/bin/tsconfig.json
index 4baf899c9dce9e..9a97bd05e84a6d 100644
--- a/bin/tsconfig.json
+++ b/bin/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
diff --git a/docs/manifest.json b/docs/manifest.json
index 94610061e430b5..16f2ad6f00a74c 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -1961,6 +1961,12 @@
"markdown_source": "../packages/token-list/README.md",
"parent": "packages"
},
+ {
+ "title": "@wordpress/ts-config",
+ "slug": "packages-ts-config",
+ "markdown_source": "../packages/ts-config/README.md",
+ "parent": "packages"
+ },
{
"title": "@wordpress/undo-manager",
"slug": "packages-undo-manager",
diff --git a/package-lock.json b/package-lock.json
index 8c8ec35e2c3a99..7772d323f40c23 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16149,6 +16149,10 @@
"resolved": "packages/token-list",
"link": true
},
+ "node_modules/@wordpress/ts-config": {
+ "resolved": "packages/ts-config",
+ "link": true
+ },
"node_modules/@wordpress/undo-manager": {
"resolved": "packages/undo-manager",
"link": true
@@ -52645,6 +52649,15 @@
"npm": ">=8.19.2"
}
},
+ "packages/ts-config": {
+ "name": "@wordpress/ts-config",
+ "version": "1.0.0-prerelease",
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"packages/undo-manager": {
"name": "@wordpress/undo-manager",
"version": "1.17.0",
diff --git a/packages/README.md b/packages/README.md
index 9a3d077ba671b9..d53531c4fa393d 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -236,7 +236,7 @@ A `tsconfig.json` file should look like the following (comments are not necessar
```jsonc
{
// Extends a base configuration common to most packages
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
// Options for the TypeScript compiler
// We'll usually set our `rootDir` and `declarationDir` as follows, which is specific
diff --git a/packages/a11y/tsconfig.json b/packages/a11y/tsconfig.json
index 13229eadde8f21..8a631f903fcdb7 100644
--- a/packages/a11y/tsconfig.json
+++ b/packages/a11y/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../dom-ready" }, { "path": "../i18n" } ]
}
diff --git a/packages/api-fetch/tsconfig.json b/packages/api-fetch/tsconfig.json
index 635fe4a8c0d353..2232591c5b3b65 100644
--- a/packages/api-fetch/tsconfig.json
+++ b/packages/api-fetch/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../i18n" }, { "path": "../url" } ],
"exclude": [ "**/test" ]
}
diff --git a/packages/autop/tsconfig.json b/packages/autop/tsconfig.json
index f68a855bab79cc..daa9a89c445de2 100644
--- a/packages/autop/tsconfig.json
+++ b/packages/autop/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../dom-ready" } ]
}
diff --git a/packages/blob/tsconfig.json b/packages/blob/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/blob/tsconfig.json
+++ b/packages/blob/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/block-editor/tsconfig.json b/packages/block-editor/tsconfig.json
index 30fe326d35b83e..24a1dba40a0ef7 100644
--- a/packages/block-editor/tsconfig.json
+++ b/packages/block-editor/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [
{ "path": "../a11y" },
{ "path": "../api-fetch" },
diff --git a/packages/block-library/tsconfig.json b/packages/block-library/tsconfig.json
index a8423ee4a27093..81b9182857ac55 100644
--- a/packages/block-library/tsconfig.json
+++ b/packages/block-library/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ],
"strictNullChecks": true
diff --git a/packages/block-serialization-default-parser/tsconfig.json b/packages/block-serialization-default-parser/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/block-serialization-default-parser/tsconfig.json
+++ b/packages/block-serialization-default-parser/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json
index 09bfef2c53b076..29d87919f11d43 100644
--- a/packages/components/tsconfig.json
+++ b/packages/components/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [
"gutenberg-env",
diff --git a/packages/compose/tsconfig.json b/packages/compose/tsconfig.json
index 90ab223f044987..688a09dc949fa7 100644
--- a/packages/compose/tsconfig.json
+++ b/packages/compose/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"rootDir": "src",
"declarationDir": "build-types",
diff --git a/packages/core-data/tsconfig.json b/packages/core-data/tsconfig.json
index 57c9d208e4c689..e50ff1583a4b7a 100644
--- a/packages/core-data/tsconfig.json
+++ b/packages/core-data/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false,
"noImplicitAny": false
diff --git a/packages/data-controls/tsconfig.json b/packages/data-controls/tsconfig.json
index faa13b152672b6..3848a6756c195a 100644
--- a/packages/data-controls/tsconfig.json
+++ b/packages/data-controls/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
},
diff --git a/packages/data/tsconfig.json b/packages/data/tsconfig.json
index b73eca0d342f04..e50e9e072edb98 100644
--- a/packages/data/tsconfig.json
+++ b/packages/data/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false
},
diff --git a/packages/dataviews/tsconfig.json b/packages/dataviews/tsconfig.json
index a7c8759d257cb2..c27f75d2e3fbd6 100644
--- a/packages/dataviews/tsconfig.json
+++ b/packages/dataviews/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [
"gutenberg-env",
diff --git a/packages/date/tsconfig.json b/packages/date/tsconfig.json
index 605262dd7cc952..489d18c24af25f 100644
--- a/packages/date/tsconfig.json
+++ b/packages/date/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../deprecated" } ]
}
diff --git a/packages/deprecated/tsconfig.json b/packages/deprecated/tsconfig.json
index b2186db14f4cc4..302c7f78ef6afc 100644
--- a/packages/deprecated/tsconfig.json
+++ b/packages/deprecated/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../hooks" } ]
}
diff --git a/packages/docgen/tsconfig.json b/packages/docgen/tsconfig.json
index eebc743289aec2..79132c2b77ee70 100644
--- a/packages/docgen/tsconfig.json
+++ b/packages/docgen/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"rootDir": "lib"
},
diff --git a/packages/dom-ready/tsconfig.json b/packages/dom-ready/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/dom-ready/tsconfig.json
+++ b/packages/dom-ready/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/dom/tsconfig.json b/packages/dom/tsconfig.json
index e44d6b98c50856..9f1dd5eb8ae0d7 100644
--- a/packages/dom/tsconfig.json
+++ b/packages/dom/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
},
diff --git a/packages/e2e-test-utils-playwright/tsconfig.json b/packages/e2e-test-utils-playwright/tsconfig.json
index 947a4a0f82fc76..6f5018cab4e304 100644
--- a/packages/e2e-test-utils-playwright/tsconfig.json
+++ b/packages/e2e-test-utils-playwright/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"incremental": false,
"composite": false,
diff --git a/packages/edit-site/tsconfig.json b/packages/edit-site/tsconfig.json
index d6c82614bf534d..17662fbdbefa3f 100644
--- a/packages/edit-site/tsconfig.json
+++ b/packages/edit-site/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [
{ "path": "../a11y" },
{ "path": "../api-fetch" },
diff --git a/packages/editor/tsconfig.json b/packages/editor/tsconfig.json
index 00a8f3860e2925..3c67a4da7b0f28 100644
--- a/packages/editor/tsconfig.json
+++ b/packages/editor/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false
},
diff --git a/packages/element/tsconfig.json b/packages/element/tsconfig.json
index a1df062eb218b3..2c21fdfb87cdea 100644
--- a/packages/element/tsconfig.json
+++ b/packages/element/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"noImplicitAny": false,
"strictNullChecks": false
diff --git a/packages/escape-html/tsconfig.json b/packages/escape-html/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/escape-html/tsconfig.json
+++ b/packages/escape-html/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/eslint-plugin/tsconfig.json b/packages/eslint-plugin/tsconfig.json
index a769c50a12df4c..1c176a5f0e8333 100644
--- a/packages/eslint-plugin/tsconfig.json
+++ b/packages/eslint-plugin/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"module": "CommonJS",
"rootDir": "rules"
diff --git a/packages/fields/tsconfig.json b/packages/fields/tsconfig.json
index 552aa73b8e5cce..ab9cd09761e095 100644
--- a/packages/fields/tsconfig.json
+++ b/packages/fields/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false
},
diff --git a/packages/hooks/tsconfig.json b/packages/hooks/tsconfig.json
index f197b56919708b..8d7ed7e81db77d 100644
--- a/packages/hooks/tsconfig.json
+++ b/packages/hooks/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
}
diff --git a/packages/html-entities/tsconfig.json b/packages/html-entities/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/html-entities/tsconfig.json
+++ b/packages/html-entities/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/i18n/tsconfig.json b/packages/i18n/tsconfig.json
index b2186db14f4cc4..302c7f78ef6afc 100644
--- a/packages/i18n/tsconfig.json
+++ b/packages/i18n/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../hooks" } ]
}
diff --git a/packages/icons/tsconfig.json b/packages/icons/tsconfig.json
index 75638a3b50a790..ac501b5e0ef8c1 100644
--- a/packages/icons/tsconfig.json
+++ b/packages/icons/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../element" }, { "path": "../primitives" } ]
}
diff --git a/packages/interactivity-router/tsconfig.json b/packages/interactivity-router/tsconfig.json
index 616718560d02cc..255bc0caed444c 100644
--- a/packages/interactivity-router/tsconfig.json
+++ b/packages/interactivity-router/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false,
"strict": false
diff --git a/packages/interactivity/tsconfig.json b/packages/interactivity/tsconfig.json
index a4d86e65fa1dd6..4ea548c7b7c0da 100644
--- a/packages/interactivity/tsconfig.json
+++ b/packages/interactivity/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"noImplicitAny": false
}
diff --git a/packages/interactivity/tsconfig.test.json b/packages/interactivity/tsconfig.test.json
index ad6813d6fec0ff..edeb63e1b74ce4 100644
--- a/packages/interactivity/tsconfig.test.json
+++ b/packages/interactivity/tsconfig.test.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"noEmit": true,
"emitDeclarationOnly": false,
diff --git a/packages/is-shallow-equal/tsconfig.json b/packages/is-shallow-equal/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/is-shallow-equal/tsconfig.json
+++ b/packages/is-shallow-equal/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/keycodes/tsconfig.json b/packages/keycodes/tsconfig.json
index 9534c034fa89e7..4193ee1159db08 100644
--- a/packages/keycodes/tsconfig.json
+++ b/packages/keycodes/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../i18n" } ]
}
diff --git a/packages/lazy-import/tsconfig.json b/packages/lazy-import/tsconfig.json
index 9647e449d35454..d5dfc90bd9a931 100644
--- a/packages/lazy-import/tsconfig.json
+++ b/packages/lazy-import/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"rootDir": "lib",
"useUnknownInCatchVariables": false
diff --git a/packages/media-utils/tsconfig.json b/packages/media-utils/tsconfig.json
index 380e55bc58ff09..225d42b8222271 100644
--- a/packages/media-utils/tsconfig.json
+++ b/packages/media-utils/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ],
"checkJs": false
diff --git a/packages/notices/tsconfig.json b/packages/notices/tsconfig.json
index 9c48147297764e..8ad6334ff67c82 100644
--- a/packages/notices/tsconfig.json
+++ b/packages/notices/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ],
"checkJs": false
diff --git a/packages/plugins/tsconfig.json b/packages/plugins/tsconfig.json
index 66fb760f8896d0..4dc195537ff9bf 100644
--- a/packages/plugins/tsconfig.json
+++ b/packages/plugins/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
},
diff --git a/packages/prettier-config/tsconfig.json b/packages/prettier-config/tsconfig.json
index 7899aeee7dfbc9..ac5b32c478ded8 100644
--- a/packages/prettier-config/tsconfig.json
+++ b/packages/prettier-config/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"rootDir": "lib",
"types": [ "node" ]
diff --git a/packages/primitives/tsconfig.json b/packages/primitives/tsconfig.json
index 5dea3e64597b43..4ff392811fccf4 100644
--- a/packages/primitives/tsconfig.json
+++ b/packages/primitives/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../element" } ]
}
diff --git a/packages/priority-queue/tsconfig.json b/packages/priority-queue/tsconfig.json
index 2a790d65e67612..629d9c6e1021c4 100644
--- a/packages/priority-queue/tsconfig.json
+++ b/packages/priority-queue/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "requestidlecallback" ]
}
diff --git a/packages/private-apis/tsconfig.json b/packages/private-apis/tsconfig.json
index f197b56919708b..8d7ed7e81db77d 100644
--- a/packages/private-apis/tsconfig.json
+++ b/packages/private-apis/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
}
diff --git a/packages/project-management-automation/tsconfig.json b/packages/project-management-automation/tsconfig.json
index 7899aeee7dfbc9..ac5b32c478ded8 100644
--- a/packages/project-management-automation/tsconfig.json
+++ b/packages/project-management-automation/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"rootDir": "lib",
"types": [ "node" ]
diff --git a/packages/react-i18n/tsconfig.json b/packages/react-i18n/tsconfig.json
index 32b019421ed3d5..c145842d2f7c39 100644
--- a/packages/react-i18n/tsconfig.json
+++ b/packages/react-i18n/tsconfig.json
@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"references": [ { "path": "../element" }, { "path": "../i18n" } ]
}
diff --git a/packages/redux-routine/tsconfig.json b/packages/redux-routine/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/redux-routine/tsconfig.json
+++ b/packages/redux-routine/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/report-flaky-tests/tsconfig.json b/packages/report-flaky-tests/tsconfig.json
index 26fcd6f5e51c6f..137228adc820e4 100644
--- a/packages/report-flaky-tests/tsconfig.json
+++ b/packages/report-flaky-tests/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"module": "CommonJS",
"types": [ "jest" ]
diff --git a/packages/rich-text/tsconfig.json b/packages/rich-text/tsconfig.json
index 5dadcb0ed0045c..b0199892d72267 100644
--- a/packages/rich-text/tsconfig.json
+++ b/packages/rich-text/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ],
"checkJs": false
diff --git a/packages/router/tsconfig.json b/packages/router/tsconfig.json
index 7d9ba227795ad6..ea891b11e44d01 100644
--- a/packages/router/tsconfig.json
+++ b/packages/router/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "gutenberg-env" ]
},
diff --git a/packages/shortcode/tsconfig.json b/packages/shortcode/tsconfig.json
index 2ab16a25d51788..083993215f15eb 100644
--- a/packages/shortcode/tsconfig.json
+++ b/packages/shortcode/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"checkJs": false
}
diff --git a/packages/style-engine/tsconfig.json b/packages/style-engine/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/style-engine/tsconfig.json
+++ b/packages/style-engine/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/sync/tsconfig.json b/packages/sync/tsconfig.json
index f0a5cb0530d297..5c4df5ac816f3d 100644
--- a/packages/sync/tsconfig.json
+++ b/packages/sync/tsconfig.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json",
+ "extends": "@wordpress/ts-config/tsconfig.base.json",
"compilerOptions": {
"types": [ "node" ]
},
diff --git a/packages/token-list/tsconfig.json b/packages/token-list/tsconfig.json
index 7ff060ab6ce105..0708ee12a25d89 100644
--- a/packages/token-list/tsconfig.json
+++ b/packages/token-list/tsconfig.json
@@ -1,4 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig.json",
- "extends": "../../tsconfig.base.json"
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
}
diff --git a/packages/ts-config/.npmrc b/packages/ts-config/.npmrc
new file mode 100644
index 00000000000000..43c97e719a5a82
--- /dev/null
+++ b/packages/ts-config/.npmrc
@@ -0,0 +1 @@
+package-lock=false
diff --git a/packages/ts-config/CHANGELOG.md b/packages/ts-config/CHANGELOG.md
new file mode 100644
index 00000000000000..9054f06ae397a0
--- /dev/null
+++ b/packages/ts-config/CHANGELOG.md
@@ -0,0 +1,7 @@
+
+
+## Unreleased
+
+## 1.0.0
+
+- Initial version of the package.
diff --git a/packages/ts-config/README.md b/packages/ts-config/README.md
new file mode 100644
index 00000000000000..08e86e508ead62
--- /dev/null
+++ b/packages/ts-config/README.md
@@ -0,0 +1,33 @@
+# Typescript config (@wordpress/ts-config)
+
+A sharable TypeScript configuration package for WordPress projects.
+
+## Installation
+
+Install the module
+
+```bash
+$ npm install @wordpress/ts-config --save-dev
+```
+
+**Note**: This package requires Node.js version with long-term support status (check [Active LTS or Maintenance LTS releases](https://nodejs.org/en/about/previous-releases)). It is not compatible with older versions.
+
+## Usage
+
+Extend the base TypeScript configuration in your `tsconfig.json` file:
+
+```json
+{
+ "extends": "@wordpress/ts-config/tsconfig.base.json"
+}
+```
+
+This ensures consistency across WordPress projects and aligns with Gutenberg's TypeScript standards.
+
+## Contributing to this package
+
+This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.
+
+To find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).
+
+