Skip to content

Commit

Permalink
fix: conditional type exports (T1177805) (#3661)
Browse files Browse the repository at this point in the history
* conditional type exports

* Fix the filename regexp

Co-authored-by: Timofey Traynenkov <timbset@gmail.com>

* typings copying now works for dx-react-grid-export

* address Timpohey's remarks

* refactor utils -> getPackageInfo

---------

Co-authored-by: Timofey Traynenkov <timbset@gmail.com>
  • Loading branch information
VasilyStrelyaev and timbset committed Jul 28, 2023
1 parent 6f6588a commit db3373d
Show file tree
Hide file tree
Showing 20 changed files with 165 additions and 40 deletions.
10 changes: 8 additions & 2 deletions packages/dx-chart-core/package.json
Expand Up @@ -17,8 +17,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-chart-core.umd.cjs",
"import": "./dist/dx-chart-core.es.js",
"require": {
"types": "./dist/dx-chart-core.d.cts",
"default": "./dist/dx-chart-core.umd.cjs"
},
"import": {
"types": "./dist/dx-chart-core.d.ts",
"default": "./dist/dx-chart-core.es.js"
},
"default": "./dist/dx-chart-core.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-core/package.json
Expand Up @@ -17,8 +17,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-core.umd.cjs",
"module": "./dist/dx-core.es.js",
"require": {
"types": "./dist/dx-core.d.cts",
"default": "./dist/dx-core.umd.cjs"
},
"import": {
"types": "./dist/dx-core.d.ts",
"default": "./dist/dx-core.es.js"
},
"default": "./dist/dx-core.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-grid-core/package.json
Expand Up @@ -26,8 +26,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-grid-core.umd.cjs",
"import": "./dist/dx-grid-core.es.js",
"require": {
"types": "./dist/dx-grid-core.d.cts",
"default": "./dist/dx-grid-core.umd.cjs"
},
"import": {
"types": "./dist/dx-grid-core.d.ts",
"default": "./dist/dx-grid-core.es.js"
},
"default": "./dist/dx-grid-core.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-chart-bootstrap4/package.json
Expand Up @@ -27,8 +27,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-chart-bootstrap4.umd.cjs",
"import": "./dist/dx-react-chart-bootstrap4.es.js",
"require": {
"types": "./dist/dx-react-chart-bootstrap4.d.cts",
"default": "./dist/dx-react-chart-bootstrap4.umd.cjs"
},
"import": {
"types": "./dist/dx-react-chart-bootstrap4.d.ts",
"default": "./dist/dx-react-chart-bootstrap4.es.js"
},
"default": "./dist/dx-react-chart-bootstrap4.es.js"
},
"./dist/dx-react-chart-bootstrap4.css": "./dist/dx-react-chart-bootstrap4.css"
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-chart-material-ui/package.json
Expand Up @@ -30,8 +30,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-chart-material-ui.cjs.cjs",
"import": "./dist/dx-react-chart-material-ui.es.js",
"require": {
"types": "./dist/dx-react-chart-material-ui.d.cts",
"default": "./dist/dx-react-chart-material-ui.cjs.cjs"
},
"import": {
"types": "./dist/dx-react-chart-material-ui.d.ts",
"default": "./dist/dx-react-chart-material-ui.es.js"
},
"default": "./dist/dx-react-chart-material-ui.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-chart/package.json
Expand Up @@ -27,8 +27,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-chart.umd.cjs",
"import": "./dist/dx-react-chart.es.js",
"require": {
"types": "./dist/dx-react-chart.d.cts",
"default": "./dist/dx-react-chart.umd.cjs"
},
"import": {
"types": "./dist/dx-react-chart.d.ts",
"default": "./dist/dx-react-chart.es.js"
},
"default": "./dist/dx-react-chart.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-core/package.json
Expand Up @@ -27,8 +27,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-core.umd.cjs",
"import": "./dist/dx-react-core.es.js",
"require": {
"types": "./dist/dx-react-core.d.cts",
"default": "./dist/dx-react-core.umd.cjs"
},
"import": {
"types": "./dist/dx-react-core.d.ts",
"default": "./dist/dx-react-core.es.js"
},
"default": "./dist/dx-react-core.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-grid-bootstrap3/package.json
Expand Up @@ -29,8 +29,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-grid-bootstrap3.umd.cjs",
"import": "./dist/dx-react-grid-bootstrap3.es.js",
"require": {
"types": "./dist/dx-react-grid-bootstrap3.d.cts",
"default": "./dist/dx-react-grid-bootstrap3.umd.cjs"
},
"import": {
"types": "./dist/dx-react-grid-bootstrap3.d.ts",
"default": "./dist/dx-react-grid-bootstrap3.es.js"
},
"default": "./dist/dx-react-grid-bootstrap3.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-grid-bootstrap4/package.json
Expand Up @@ -29,8 +29,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-grid-bootstrap4.umd.cjs",
"import": "./dist/dx-react-grid-bootstrap4.es.js",
"require": {
"types": "./dist/dx-react-grid-bootstrap4.d.cts",
"default": "./dist/dx-react-grid-bootstrap4.umd.cjs"
},
"import": {
"types": "./dist/dx-react-grid-bootstrap4.d.ts",
"default": "./dist/dx-react-grid-bootstrap4.es.js"
},
"default": "./dist/dx-react-grid-bootstrap4.es.js"
},
"./dist/dx-react-grid-bootstrap4.css": "./dist/dx-react-grid-bootstrap4.css"
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-grid-export/merge-dts.js
@@ -1,6 +1,12 @@
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import { dirname, join } from 'path';

import buildDefinitions from '../../scripts/merge-dts.js';
import { copyCommonJsTypes, getPackageInfo } from '../../scripts/utils.js';

buildDefinitions(dirname(fileURLToPath(import.meta.url)), true);
const packageDirectory = dirname(fileURLToPath(import.meta.url));
const pkg = getPackageInfo(packageDirectory);
const dtsOutFile = join(packageDirectory, pkg.types);

buildDefinitions(packageDirectory, true);
copyCommonJsTypes(dtsOutFile);
10 changes: 8 additions & 2 deletions packages/dx-react-grid-export/package.json
Expand Up @@ -29,8 +29,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-grid-export.umd.cjs",
"import": "./dist/dx-react-grid-export.es.js",
"require": {
"types": "./dist/dx-react-grid-export.d.cts",
"default": "./dist/dx-react-grid-export.umd.cjs"
},
"import": {
"types": "./dist/dx-react-grid-export.d.ts",
"default": "./dist/dx-react-grid-export.es.js"
},
"default": "./dist/dx-react-grid-export.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-grid-material-ui/package.json
Expand Up @@ -30,8 +30,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-grid-material-ui.cjs.cjs",
"import": "./dist/dx-react-grid-material-ui.es.js",
"require": {
"types": "./dist/dx-react-grid-material-ui.d.cts",
"default": "./dist/dx-react-grid-material-ui.cjs.cjs"
},
"import": {
"types": "./dist/dx-react-grid-material-ui.d.ts",
"default": "./dist/dx-react-grid-material-ui.es.js"
},
"default": "./dist/dx-react-grid-material-ui.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-grid/package.json
Expand Up @@ -28,8 +28,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-grid.umd.cjs",
"import": "./dist/dx-react-grid.es.js",
"require": {
"types": "./dist/dx-react-grid.d.cts",
"default": "./dist/dx-react-grid.umd.cjs"
},
"import": {
"types": "./dist/dx-react-grid.d.ts",
"default": "./dist/dx-react-grid.es.js"
},
"default": "./dist/dx-react-grid.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-scheduler-material-ui/package.json
Expand Up @@ -28,8 +28,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-scheduler-material-ui.cjs.cjs",
"import": "./dist/dx-react-scheduler-material-ui.es.js",
"require": {
"types": "./dist/dx-react-scheduler-material-ui.d.cts",
"default": "./dist/dx-react-scheduler-material-ui.cjs.cjs"
},
"import": {
"types": "./dist/dx-react-scheduler-material-ui.d.ts",
"default": "./dist/dx-react-scheduler-material-ui.es.js"
},
"default": "./dist/dx-react-scheduler-material-ui.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-react-scheduler/package.json
Expand Up @@ -26,8 +26,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-react-scheduler.umd.cjs",
"import": "./dist/dx-react-scheduler.es.js",
"require": {
"types": "./dist/dx-react-scheduler.d.cts",
"default": "./dist/dx-react-scheduler.umd.cjs"
},
"import": {
"types": "./dist/dx-react-scheduler.d.ts",
"default": "./dist/dx-react-scheduler.es.js"
},
"default": "./dist/dx-react-scheduler.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-scheduler-core/package.json
Expand Up @@ -25,8 +25,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-scheduler-core.umd.cjs",
"import": "./dist/dx-scheduler-core.es.js",
"require": {
"types": "./dist/dx-scheduler-core.d.cts",
"default": "./dist/dx-scheduler-core.umd.cjs"
},
"import": {
"types": "./dist/dx-scheduler-core.d.ts",
"default": "./dist/dx-scheduler-core.es.js"
},
"default": "./dist/dx-scheduler-core.es.js"
}
},
Expand Down
10 changes: 8 additions & 2 deletions packages/dx-testing/package.json
Expand Up @@ -11,8 +11,14 @@
"type": "module",
"exports": {
".": {
"require": "./dist/dx-testing.umd.js",
"import": "./dist/dx-testing.es.js",
"require": {
"types": "./dist/dx-testing.d.cts",
"default": "./dist/dx-testing.umd.js"
},
"import": {
"types": "./dist/dx-testing.d.ts",
"default": "./dist/dx-testing.es.js"
},
"default": "./dist/dx-testing.es.js"
}
},
Expand Down
8 changes: 6 additions & 2 deletions scripts/merge-dts.js
@@ -1,9 +1,11 @@
import { join, sep } from 'path';
import { readFileSync, existsSync } from 'fs';
import { existsSync } from 'fs';
import rimraf from 'rimraf';
import replace from 'replace-in-file';
import dts from 'dts-bundle';

import { copyCommonJsTypes, getPackageInfo } from './utils.js';

const getIndexDts = (packageDirectory, dtsPath) => {
let indexDts = join(dtsPath, 'index.d.ts');

Expand All @@ -19,7 +21,7 @@ export default (packageDirectory, skipBundle = false) => {
const dtsPath = join(packageDirectory, 'dist', 'dts');

if (!skipBundle) {
const pkg = JSON.parse(readFileSync(join(packageDirectory, 'package.json')));
const pkg = getPackageInfo(packageDirectory);
const dtsOutFile = join(packageDirectory, pkg.types);
const indexDts = getIndexDts(packageDirectory, dtsPath);

Expand All @@ -37,6 +39,8 @@ export default (packageDirectory, skipBundle = false) => {
outputAsModuleFolder: true,
headerPath: 'none',
});

copyCommonJsTypes(dtsOutFile);
}

rimraf(dtsPath, () => {});
Expand Down
10 changes: 6 additions & 4 deletions scripts/ts-generator.js
Expand Up @@ -7,6 +7,7 @@ import {
} from 'fs';

import { join } from 'path';
import { copyCommonJsTypes } from './utils.js';

const ROOT_PATH = join(process.cwd(), 'packages');
const SOURCE_FOLDER = 'docs/reference';
Expand Down Expand Up @@ -345,10 +346,11 @@ const generateTypeScriptForPackage = (packageName) => {
console.log(`Building TypeScript definitions for '${packageName}-${theme}'.`);
const themeDistFolder = join(ROOT_PATH, `${packageName}-${theme}`, TARGET_FOLDER);
ensureDirectory(themeDistFolder);
writeFileSync(
join(themeDistFolder, `${packageName}-${theme}.d.ts`),
themesIndexContent,
);

const dtsOutFile = join(themeDistFolder, `${packageName}-${theme}.d.ts`);

writeFileSync(dtsOutFile, themesIndexContent);
copyCommonJsTypes(dtsOutFile);
});
};

Expand Down
17 changes: 17 additions & 0 deletions scripts/utils.js
@@ -0,0 +1,17 @@
import { existsSync, copyFileSync, readFileSync } from 'fs';
import { join } from 'path';

const getCommonJsTypesPath = dtsPath => dtsPath.replace(/\.ts$/, '.cts');

export const copyCommonJsTypes = (dtsPath) => {
if (existsSync(dtsPath)) {
copyFileSync(dtsPath, getCommonJsTypesPath(dtsPath));
}
};

export const getPackageInfo = (packageDir) => {
const packagePath = join(packageDir, 'package.json');
const packageData = readFileSync(packagePath);

return JSON.parse(packageData);
};

0 comments on commit db3373d

Please sign in to comment.