-
Notifications
You must be signed in to change notification settings - Fork 398
Expand file tree
/
Copy pathdts-config.js
More file actions
64 lines (56 loc) · 1.39 KB
/
dts-config.js
File metadata and controls
64 lines (56 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const fs = require('fs');
const pluginsDir = './src/plugins';
const helpersDir = './src/helpers';
const distDir = './dist';
const excludePlugins = ['base-plugin', 'docs-scrollspy'];
const outputConfig = { noBanner: true };
const config = {
compilationOptions: {
preferredConfigPath: './tsconfig.json',
},
entries: [
{
filePath: './src/globals.ts',
outFile: './dist/globals.d.ts',
output: outputConfig,
},
{
filePath: './src/index.ts',
outFile: './dist/index.d.ts',
output: outputConfig,
},
{
filePath: './src/auto/index.ts',
outFile: './dist/auto.d.ts',
output: outputConfig,
},
...fs
.readdirSync(pluginsDir)
.map((pluginName) => writeFile(pluginsDir, pluginName))
.filter(Boolean),
...fs
.readdirSync(helpersDir)
.map((pluginName) => writeFile(helpersDir, pluginName, 'helper-'))
.filter(Boolean),
],
};
function writeFile(dir, plugin, prefix = '') {
const pluginDir = `${dir}/${plugin}`;
if (!fs.lstatSync(pluginDir).isDirectory() || excludePlugins.includes(plugin)) {
return null;
}
const corePath = `${pluginDir}/core.ts`;
const indexPath = `${pluginDir}/index.ts`;
let filePath = indexPath;
if (fs.existsSync(corePath)) {
filePath = corePath;
} else if (!fs.existsSync(indexPath)) {
return null;
}
return {
filePath,
outFile: `${distDir}/${prefix}${plugin}.d.ts`,
output: outputConfig,
};
}
module.exports = config;