Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0e92005
migrate TS from gulp to nx, step 1
GoodDayForSurf May 21, 2026
b1a2429
migrate TS from gulp to nx
GoodDayForSurf May 25, 2026
d83e43f
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
ffdc906
fix lint
GoodDayForSurf May 26, 2026
448c4ed
Merge branch 'chore/migrate-devextreme-to-nx-TS' of https://github.co…
GoodDayForSurf May 26, 2026
44a6fa5
fix text in AGENTS.md
GoodDayForSurf May 26, 2026
f21e1d6
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
a910e42
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
6bd7d33
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
d529c5b
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
342a3a8
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 26, 2026
99f9da6
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 27, 2026
4e0b3db
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 27, 2026
bdd2fc7
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 27, 2026
8d7defd
fix review notes
GoodDayForSurf May 27, 2026
a930a5b
fix review notes
GoodDayForSurf May 27, 2026
70506c7
fix review notes
GoodDayForSurf May 27, 2026
9ffc151
Merge branch '26_1' into chore/migrate-devextreme-to-nx-TS
GoodDayForSurf May 27, 2026
5cc9ffc
fix review notes
GoodDayForSurf May 27, 2026
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
7 changes: 3 additions & 4 deletions packages/devextreme/build/gulp/npm.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
'use strict';

require('./ts');

const eol = require('gulp-eol');
const gulp = require('gulp');
const gulpIf = require('gulp-if');
Expand Down Expand Up @@ -156,7 +154,8 @@ const packagePath = `${resultPath}/${packageDir}`;
const distPath = `${resultPath}/${packageDistDir}`;

gulp.task('npm-sources', gulp.series(
'ts-sources',
shell.task('pnpm nx run devextreme:build:npm:dts-modules'),
shell.task('pnpm nx run devextreme:build:npm:dts-bundle'),
() => gulp
.src(devextremeDistWorkspacePackageJsonPath)
.pipe(
Expand Down Expand Up @@ -212,4 +211,4 @@ gulp.task('npm-sass', gulp.series(
)
));

gulp.task('npm', gulp.series('npm-sources', 'npm-dist', 'ts-check-public-modules', 'npm-sass'));
gulp.task('npm', gulp.series('npm-sources', 'npm-dist', 'npm-sass'));
186 changes: 0 additions & 186 deletions packages/devextreme/build/gulp/ts.js

This file was deleted.

3 changes: 2 additions & 1 deletion packages/devextreme/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ gulp.task('clean', function(callback) {
require('./build/gulp/bundler-config');
require('./build/gulp/transpile');
require('./build/gulp/js-bundles');
require('./build/gulp/ts');
require('./build/gulp/localization');
require('./build/gulp/systemjs');

Expand Down Expand Up @@ -69,6 +68,8 @@ gulp.task('aspnet', shell.task(

gulp.task('vendor', shell.task('pnpm nx run devextreme:copy:vendor'));

gulp.task('ts', shell.task('pnpm nx run devextreme:build:declarations'));

Comment on lines +71 to +72
gulp.task('check-license-notices', shell.task('pnpm nx run devextreme:verify:licenses'));

gulp.task('state-manager-optimize', shell.task('pnpm nx run devextreme:state-manager:optimize'));
Expand Down
2 changes: 1 addition & 1 deletion packages/devextreme/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@
"update-ts-reexports": "dx-tools generate-reexports --sources ./js --exclude \"((dialog|export|list_light|notify|overlay|palette|set_template_engine|splitter_control|themes|themes_callback|track_bar|utils|validation_engine|validation_message)[.d.ts])\" --compiler-options \"{ \\\"typeRoots\\\": [] }\"",
"update-ts-bundle": "dx-tools generate-ts-bundle --sources ./js --output-path ./ts/dx.all.d.ts",
"regenerate": "pnpm run update-ts-bundle && pnpm run update-ts-reexports",
"validate-ts": "gulp validate-ts",
"validate-ts": "pnpm nx run devextreme:validate:ts",
"validate-declarations": "dx-tools validate-declarations --sources ./js --exclude \"js/(renovation|__internal|.eslintrc.js)\" --compiler-options \"{ \\\"typeRoots\\\": [] }\"",
"testcafe-in-docker": "docker build -f ./testing/testcafe/docker/Dockerfile -t testcafe-testing . && docker run -it testcafe-testing",
"test-jest": "cross-env NODE_OPTIONS='--expose-gc' jest --no-coverage --runInBand --selectProjects jsdom-tests",
Expand Down
106 changes: 98 additions & 8 deletions packages/devextreme/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -786,18 +786,75 @@
},
"outputs": ["{projectRoot}/artifacts/js/dx.aspnet.mvc.js"]
},
"verify:ts-modules": {
"executor": "devextreme-nx-infra-plugin:check-declarations",
"options": {
"mode": "modules",
"typescriptModule": "typescript-min"
},
"inputs": [
"{projectRoot}/js/**/*.d.ts",
"{projectRoot}/build/gulp/modules_metadata.json"
Comment on lines +796 to +797
]
},
"verify:ts-bundle": {
"executor": "devextreme-nx-infra-plugin:check-declarations",
"options": {
"mode": "bundle",
"typescriptModule": "typescript-min"
},
"dependsOn": ["build:npm:dts-bundle"],
"inputs": [
"{projectRoot}/artifacts/ts/dx.all.d.ts",
"{projectRoot}/ts/dx.all.d.ts",
"{projectRoot}/ts/aliases.d.ts",
"{projectRoot}/build/gulp/license-header.txt"
]
},
"verify:ts-jquery": {
"executor": "devextreme-nx-infra-plugin:check-declarations",
"options": {
"mode": "jquery",
"typescriptModule": "typescript-min"
},
"dependsOn": ["build:npm:dts-bundle"],
"inputs": [
"{projectRoot}/artifacts/ts/dx.all.d.ts",
"{projectRoot}/ts/dx.all.d.ts",
"{projectRoot}/ts/aliases.d.ts",
"{projectRoot}/build/gulp/modules_metadata.json"
]
},
Comment thread
GoodDayForSurf marked this conversation as resolved.
Comment thread
GoodDayForSurf marked this conversation as resolved.
Comment thread
GoodDayForSurf marked this conversation as resolved.
"copy:ts-vendor": {
"executor": "devextreme-nx-infra-plugin:copy-files",
"options": {
"files": [
{ "from": "./ts/vendor/*", "to": "./artifacts/ts" }
]
},
"inputs": ["{projectRoot}/ts/vendor/**/*"],
"outputs": ["{projectRoot}/artifacts/ts/**/*"]
},
"build:declarations": {
"executor": "nx:run-commands",
"options": {
"command": "gulp ts",
"cwd": "{projectRoot}"
"commands": [
"pnpm nx run devextreme:copy:ts-vendor",
"pnpm nx run devextreme:verify:ts-jquery",
"pnpm nx run devextreme:verify:ts-bundle"
],
"parallel": false
Comment thread
GoodDayForSurf marked this conversation as resolved.
},
"inputs": [
"{projectRoot}/ts/**/*.d.ts",
"{projectRoot}/build/gulp/ts.js"
"{projectRoot}/ts/vendor/**/*",
"{projectRoot}/build/gulp/modules_metadata.json",
"{projectRoot}/build/gulp/license-header.txt"
],
"outputs": [
"{projectRoot}/artifacts/ts"
"{projectRoot}/artifacts/ts",
"{projectRoot}/artifacts/ts/dx.all.d.ts",
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.d.ts"
]
Comment on lines 838 to 858
},
"compress:ts-modules": {
Expand Down Expand Up @@ -1235,14 +1292,47 @@
}
},
"verify:public-modules": {
"executor": "nx:run-commands",
"executor": "devextreme-nx-infra-plugin:check-declarations",
"options": {
"command": "cross-env BUILD_ESM_PACKAGE=true gulp ts-check-public-modules",
"cwd": "{projectRoot}"
"mode": "public-modules",
"typescriptModule": "typescript-min"
},
"dependsOn": [
{ "target": "build:npm:dts-modules", "params": "forward" },
{ "target": "build:npm:dts-bundle", "params": "forward" }
],
"inputs": [
"{projectRoot}/artifacts/npm/devextreme/**/*.d.ts",
"{projectRoot}/build/gulp/modules_metadata.json"
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.d.ts",
"{projectRoot}/build/gulp/modules_metadata.json",
"{projectRoot}/ts/dx.all.d.ts",
"{projectRoot}/ts/aliases.d.ts"
],
"configurations": {
"internal": {
"internalPackage": true,
"npmPackageDir": "devextreme-internal"
}
}
},
"validate:ts": {
"executor": "nx:run-commands",
"options": {
"commands": [
"pnpm nx run devextreme:verify:ts-modules",
"pnpm nx run devextreme:verify:ts-bundle",
"pnpm nx run devextreme:verify:ts-jquery",
"pnpm nx run devextreme:verify:public-modules"
],
"parallel": false,
Comment thread
GoodDayForSurf marked this conversation as resolved.
"cwd": "{workspaceRoot}"
},
"inputs": [
"{projectRoot}/js/**/*.d.ts",
"{projectRoot}/ts/dx.all.d.ts",
"{projectRoot}/ts/aliases.d.ts",
"{projectRoot}/build/gulp/modules_metadata.json",
"{projectRoot}/artifacts/npm/devextreme/**/*.d.ts"
]
},
"build:npm": {
Expand Down
4 changes: 3 additions & 1 deletion packages/nx-infra-plugin/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Each executor lives at `src/executors/<name>/`:
- `<name>.impl.ts` — business logic via `createExecutor` + named exports for cross-executor reuse
- `schema.ts`, `schema.json`, `executor.e2e.spec.ts`, optional `defaults.ts`

Each cross-executor concern (license banner, glob-aware copy, file concatenation, debug-block stripping, etc.) is owned by exactly ONE executor and exposed via named exports from its `*.impl.ts`. Discover what is available by reading the named exports of the relevant executor; do not re-implement. The full executor catalogue is in `executors.json`; generic primitives live in `src/utils/`.
Each cross-executor concern (license banner, glob-aware copy, file concatenation, debug-block stripping, declaration type-check entry generation, etc.) is owned by exactly ONE executor and exposed via named exports from its `*.impl.ts`. Discover what is available by reading the named exports of the relevant executor; do not re-implement. The full executor catalogue is in `executors.json`; generic primitives live in `src/utils/`.

- **`check-declarations`** — noEmit TypeScript checks for `.d.ts` (modes: `jquery`, `bundle`, `modules`, `public-modules`). Use **`dts-modules`** / **`dts-bundle`** to produce files; this executor only validates.

## Conventions

Expand Down
5 changes: 5 additions & 0 deletions packages/nx-infra-plugin/executors.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@
"schema": "./src/executors/dts-bundle/schema.json",
"description": "Assemble TypeScript declaration bundle files from source"
},
"check-declarations": {
"implementation": "./src/executors/check-declarations/executor",
"schema": "./src/executors/check-declarations/schema.json",
"description": "Type-check DevExtreme .d.ts bundles and modules (gulp validate-ts parity)"
},
"npm-assemble": {
"implementation": "./src/executors/npm-assemble/executor",
"schema": "./src/executors/npm-assemble/schema.json",
Expand Down
Loading
Loading