Skip to content

Commit e70be83

Browse files
authored
Add TS configuration and NX project for metadata (DevExpress#30193)
1 parent e897d41 commit e70be83

36 files changed

+602
-335
lines changed

.github/workflows/wrapper_tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ jobs:
9999
- name: Vue - Check packing
100100
run: pnpx nx pack devextreme-vue
101101

102-
- name: Archive internal-tools artifacts
102+
- name: Archive devextreme-metadata artifacts
103103
uses: actions/upload-artifact@v4
104104
with:
105-
name: internal-tools-artifacts
106-
path: artifacts/internal-tools/
105+
name: devextreme-metadata-artifacts
106+
path: packages/devextreme-metadata/dist/
107107
retention-days: 7

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ dist
66
bin
77
obj
88
/artifacts
9+
/packages/metadata/artifacts
910

1011
# dependencies
1112
node_modules

nx.json

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
"extends": "nx/presets/npm.json",
33
"$schema": "./node_modules/nx/schemas/nx-schema.json",
44
"nxCloudAccessToken": "ZDFmMzkyZTYtZmU5MC00MDMyLWI3NDktYjhhYWUxZWM4YTg3fHJlYWQ=",
5+
"namedInputs": {
6+
"metadataToolsCommonInputs": [
7+
"{projectRoot}/**/*.ts",
8+
"{projectRoot}/tsconfig.json",
9+
{ "externalDependencies": [ "devextreme-internal-tools", "ts-node", "typescript"] }
10+
]
11+
},
512
"targetDefaults": {
613
"build": {
714
"dependsOn": [
@@ -20,21 +27,6 @@
2027
],
2128
"cache": true
2229
},
23-
"angular:copy-metadata": {
24-
"dependsOn": [
25-
"tools:discover-metadata"
26-
]
27-
},
28-
"react:copy-metadata": {
29-
"dependsOn": [
30-
"tools:discover-metadata"
31-
]
32-
},
33-
"vue:copy-metadata": {
34-
"dependsOn": [
35-
"tools:discover-metadata"
36-
]
37-
},
3830
"lint": {
3931
"cache": true
4032
},

package.json

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,14 @@
44
"license": "MIT",
55
"author": "Developer Express Inc.",
66
"scripts": {
7-
"devextreme:inject-descriptions-to-bundle": "dx-tools inject-descriptions --target-path ./packages/devextreme/ts/dx.all.d.ts --artifacts ./artifacts/internal-tools",
8-
"devextreme:inject-descriptions-to-modules": "dx-tools inject-descriptions --collapse-tags --sources ./packages/devextreme/js --artifacts ./artifacts/internal-tools",
7+
"devextreme:inject-descriptions-to-bundle": "dx-tools inject-descriptions --target-path ./packages/devextreme/ts/dx.all.d.ts --artifacts ./node_modules/devextreme-metadata/dist",
8+
"devextreme:inject-descriptions-to-modules": "dx-tools inject-descriptions --collapse-tags --sources ./packages/devextreme/js --artifacts ./node_modules/devextreme-metadata/dist",
99
"devextreme:inject-descriptions": "npm run devextreme:inject-descriptions-to-bundle && npm run devextreme:inject-descriptions-to-modules",
10-
"angular:copy-metadata": "shx mkdir -p ./packages/devextreme-angular/metadata/ && shx cp ./artifacts/internal-tools/NGMetaData.json ./packages/devextreme-angular/metadata/ && shx cp ./artifacts/internal-tools/integration-data.json ./packages/devextreme-angular/metadata/",
1110
"angular:regenerate": "nx regenerate devextreme-angular",
12-
"angular:inject-descriptions": "dx-tools inject-descriptions --sources ./packages/devextreme-angular/npm/dist --artifacts ./artifacts/internal-tools",
13-
"react:copy-metadata": "shx mkdir -p ./packages/devextreme-react/metadata/ && shx cp ./artifacts/internal-tools/integration-data.json ./packages/devextreme-react/metadata/",
11+
"angular:inject-descriptions": "dx-tools inject-descriptions --sources ./packages/devextreme-angular/npm/dist --artifacts ./node_modules/devextreme-metadata/dist",
1412
"react:regenerate": "nx regenerate devextreme-react",
1513
"react-storybook:start": "nx start devextreme-react-storybook",
1614
"tools": "dx-tools",
17-
"tools:discover-declarations": "dx-tools discover-declarations --sources ./packages/devextreme/js --exclude \"js/(renovation|__internal|.eslintrc.js)\" --compiler-options \"{ \\\"typeRoots\\\": [] }\" --artifacts ./artifacts/internal-tools",
18-
"tools:generate-imd": "dx-tools make-integration-metadata --config ./tools/imd-cfg.json",
19-
"tools:generate-ng-smd": "dx-tools make-angular-metadata --config ./tools/ng-smd-cfg.json",
20-
"tools:discover-metadata": "npm run tools:discover-declarations && npm run tools:generate-imd && npm run tools:generate-ng-smd",
21-
"vue:copy-metadata": "shx mkdir -p ./packages/devextreme-vue/metadata/ && shx cp ./artifacts/internal-tools/integration-data.json ./packages/devextreme-vue/metadata/",
2215
"vue:regenerate": "nx regenerate devextreme-vue",
2316
"regenerate-all": "nx run-many -t regenerate",
2417
"lint-staged": "lint-staged",
@@ -44,7 +37,8 @@
4437
"axe-core": "4.10.3",
4538
"cheerio": "1.0.0-rc.10",
4639
"codelyzer": "6.0.2",
47-
"devextreme-internal-tools": "18.0.0-beta.11",
40+
"devextreme-internal-tools": "catalog:tools",
41+
"devextreme-metadata": "workspace:*",
4842
"http-server": "14.1.1",
4943
"husky": "8.0.3",
5044
"jest": "29.7.0",

packages/devextreme-angular/build.config.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
const unifiedConfig = require('../../tools/generators-config').angularConfig;
2-
31
module.exports = {
42
tools: {
53
metadataGenerator: {
6-
sourceMetadataFilePath: './metadata/NGMetaData.json',
7-
imdMetadataFilePath: './metadata/integration-data.json',
84
outputFolderPath: './metadata/generated',
95
nestedPathPart: 'nested',
106
basePathPart: 'base',
117
widgetPackageName: 'devextreme',
128
wrapperPackageName: 'devextreme-angular',
139
generateReexports: true,
14-
unifiedConfig,
1510
},
1611
componentGenerator: {
1712
metadataFolderPath: './metadata/generated/',
@@ -61,7 +56,6 @@ module.exports = {
6156
outputFileName: 'tests/src/server/component-names.ts',
6257
},
6358
commonReexportsGenerator: {
64-
imdMetadataFilePath: './metadata/integration-data.json',
6559
outputPath: './src/',
6660
},
6761
},

packages/devextreme-angular/gulpfile.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const argv = require('yargs')
2323
.parseSync();
2424

2525
const buildConfig = require('./build.config');
26+
const { angularConfig } = require('../../tools/generators-config');
2627

2728
// ------------Components------------
2829

@@ -35,7 +36,12 @@ gulp.task('clean.metadata', gulp.series(() => {
3536
gulp.task('generate.metadata', gulp.series('clean.metadata', (done) => {
3637
const generator = new AngularMetadataGenerator();
3738

38-
generator.generate(buildConfig.tools.metadataGenerator);
39+
generator.generate({
40+
...buildConfig.tools.metadataGenerator,
41+
unifiedConfig: angularConfig,
42+
sourceMetadataFilePath: require.resolve('devextreme-metadata/NGMetaData.json'),
43+
imdMetadataFilePath: require.resolve('devextreme-metadata/integration-data.json'),
44+
});
3945
done();
4046
}));
4147

@@ -118,11 +124,11 @@ gulp.task('generate.facades', gulp.series('generate.moduleFacades', (done) => {
118124
}));
119125

120126
gulp.task('generate.common-reexports', (done) => {
121-
const { outputPath, imdMetadataFilePath } = buildConfig.tools.commonReexportsGenerator;
127+
const { outputPath } = buildConfig.tools.commonReexportsGenerator;
122128

123129
AngularCommonReexportsGenerator.generate({
124130
outputPath,
125-
metadata: JSON.parse(fs.readFileSync(imdMetadataFilePath).toString()),
131+
metadata: JSON.parse(fs.readFileSync(require.resolve('devextreme-metadata/integration-data.json')).toString()),
126132
templatingOptions: {
127133
quotes: 'single',
128134
excplicitIndexInImports: true,

packages/devextreme-angular/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"cross-env": "7.0.3",
5252
"css-loader": "6.10.0",
5353
"del": "2.2.2",
54+
"devextreme-metadata": "workspace:*",
5455
"eslint": "catalog:",
5556
"eslint-config-devextreme": "1.1.5",
5657
"eslint-plugin-import": "catalog:",

packages/devextreme-angular/project.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
},
3535
"regenerate": {
3636
"executor": "nx:run-script",
37+
"dependsOn": ["devextreme-metadata:build"],
3738
"options": {
3839
"script": "regenerate"
39-
},
40-
"dependsOn": ["devextreme-monorepo:\"angular:copy-metadata\""]
40+
}
4141
},
4242
"test:dev": {
4343
"executor": "nx:run-script",
@@ -53,7 +53,7 @@
5353
},
5454
"namedInputs": {
5555
"default": [
56-
"{projectRoot}/metadata/**/*",
56+
"{projectRoot}/devextreme-metadata/**/*",
5757
"{projectRoot}/src/**/*",
5858
"{projectRoot}/build.config.js",
5959
"{projectRoot}/gulpfile.js",
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/dist/
2+
/pnpm-lock.yaml
3+
*.json
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
arrowParens: always
2+
bracketSameLine: true
3+
bracketSpacing: true
4+
endOfLine: lf
5+
experimentalOperatorPosition: start
6+
objectWrap: preserve
7+
printWidth: 100
8+
quoteProps: preserve
9+
semi: true
10+
singleQuote: true
11+
tabWidth: 2
12+
trailingComma: all

0 commit comments

Comments
 (0)