Skip to content

Commit abb0688

Browse files
committed
feat(element): added all events arguments in TS declarations
1 parent d6a0aca commit abb0688

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

scripts/build-types.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,24 @@ export default async function buildTypes() {
3131
coreEventsContent = coreEventsContent
3232
.split('// CORE_EVENTS_START')[1]
3333
.split('// CORE_EVENTS_END')[0];
34-
coreEventsElement = replaceInstances(
35-
coreEventsContent.replace(/ ([a-zA-Z_?]*): ([^;]*);/g, (string, name) => {
36-
if (name.includes('_')) {
34+
coreEventsElement = coreEventsContent.replace(
35+
/ ([a-zA-Z_?]*): ([^;]*);/g,
36+
(string, name, args) => {
37+
if (
38+
name.includes('_') ||
39+
name.toLowerCase() === 'classnames' ||
40+
name.toLowerCase() === 'index'
41+
) {
3742
return '';
3843
}
39-
return ` ${name.toLowerCase()}: CustomEvent;`;
40-
}),
44+
args = args
45+
.replace('(', '')
46+
.replace(')', '')
47+
.split('=>')[0]
48+
.replace('SwiperClass', 'Swiper')
49+
.trim();
50+
return ` ${name.toLowerCase()}: CustomEvent<[${args}]>;`;
51+
},
4152
);
4253
coreEventsReact = replaceInstances(
4354
coreEventsContent.replace(/ ([a-zA-Z]*): \(/g, (string, name) => {
@@ -60,10 +71,17 @@ export default async function buildTypes() {
6071
let eventsContent = await fs.readFile(eventsFile, 'utf-8');
6172
eventsContent = eventsContent.split('Events {')[1].split('}')[0].trim();
6273
if (eventsContent.length) {
63-
modulesEventsElement += replaceInstances(
64-
eventsContent.replace(/ ([a-zA-Z]*): ([^;]*);/g, (string, name) => {
65-
return ` ${name.toLowerCase()}: CustomEvent;`;
66-
}),
74+
modulesEventsElement += eventsContent.replace(
75+
/ ([a-zA-Z]*): ([^;]*);/g,
76+
(string, name, args) => {
77+
args = args
78+
.replace('(', '')
79+
.replace(')', '')
80+
.split('=>')[0]
81+
.replace('SwiperClass', 'Swiper')
82+
.trim();
83+
return ` ${name.toLowerCase()}: CustomEvent<[${args}]>;`;
84+
},
6785
);
6886
modulesEventsReact += replaceInstances(
6987
eventsContent.replace(/ ([a-zA-Z]*): \(/g, (string, name) => {

0 commit comments

Comments
 (0)