Skip to content

Commit 7a5ae86

Browse files
authored
Merge pull request #8186 from Stanzilla/fix/css-types-no-duplicates
fix: avoid duplicate css type resolutions
2 parents 832b84b + aaf6014 commit 7a5ae86

2 files changed

Lines changed: 70 additions & 48 deletions

File tree

scripts/build-types.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,27 @@ export default async function buildTypes() {
130130
return fs.writeFile(destPath, fileContent);
131131
}),
132132
);
133+
134+
const packageJson = await fs.readJson(path.resolve(__dirname, `../${outputDir}/package.json`));
135+
const cssTypingFiles = new Set();
136+
Object.values(packageJson.exports).forEach((entry) => {
137+
if (
138+
entry &&
139+
typeof entry === 'object' &&
140+
typeof entry.default === 'string' &&
141+
entry.default.endsWith('.css') &&
142+
typeof entry.types === 'string'
143+
) {
144+
cssTypingFiles.add(entry.types);
145+
}
146+
});
147+
await Promise.all(
148+
Array.from(cssTypingFiles).map(async (file) => {
149+
const destPath = path.resolve(__dirname, `../${outputDir}`, file);
150+
if (await fs.pathExists(destPath)) return;
151+
await fs.ensureDir(path.dirname(destPath));
152+
await fs.writeFile(destPath, 'export {};\n');
153+
}),
154+
);
133155
elapsed.end('types', chalk.green('Types build completed!'));
134156
}

src/copy/package.json

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -32,103 +32,103 @@
3232
"default": "./swiper.css"
3333
},
3434
"./css/bundle": {
35-
"types": "./swiper.css.d.ts",
35+
"types": "./swiper-bundle.css.d.ts",
3636
"default": "./swiper-bundle.css"
3737
},
3838
"./swiper-bundle.css": {
39-
"types": "./swiper.css.d.ts",
39+
"types": "./swiper-bundle.css.d.ts",
4040
"default": "./swiper-bundle.css"
4141
},
4242
"./css/a11y": {
43-
"types": "./swiper.css.d.ts",
43+
"types": "./modules/a11y.css.d.ts",
4444
"default": "./modules/a11y.css"
4545
},
4646
"./css/autoplay": {
47-
"types": "./swiper.css.d.ts",
47+
"types": "./modules/autoplay.css.d.ts",
4848
"default": "./modules/autoplay.css"
4949
},
5050
"./css/controller": {
51-
"types": "./swiper.css.d.ts",
51+
"types": "./modules/controller.css.d.ts",
5252
"default": "./modules/controller.css"
5353
},
5454
"./css/effect-coverflow": {
55-
"types": "./swiper.css.d.ts",
55+
"types": "./modules/effect-coverflow.css.d.ts",
5656
"default": "./modules/effect-coverflow.css"
5757
},
5858
"./css/effect-cube": {
59-
"types": "./swiper.css.d.ts",
59+
"types": "./modules/effect-cube.css.d.ts",
6060
"default": "./modules/effect-cube.css"
6161
},
6262
"./css/effect-fade": {
63-
"types": "./swiper.css.d.ts",
63+
"types": "./modules/effect-fade.css.d.ts",
6464
"default": "./modules/effect-fade.css"
6565
},
6666
"./css/effect-flip": {
67-
"types": "./swiper.css.d.ts",
67+
"types": "./modules/effect-flip.css.d.ts",
6868
"default": "./modules/effect-flip.css"
6969
},
7070
"./css/effect-creative": {
71-
"types": "./swiper.css.d.ts",
71+
"types": "./modules/effect-creative.css.d.ts",
7272
"default": "./modules/effect-creative.css"
7373
},
7474
"./css/effect-cards": {
75-
"types": "./swiper.css.d.ts",
75+
"types": "./modules/effect-cards.css.d.ts",
7676
"default": "./modules/effect-cards.css"
7777
},
7878
"./css/free-mode": {
79-
"types": "./swiper.css.d.ts",
79+
"types": "./modules/free-mode.css.d.ts",
8080
"default": "./modules/free-mode.css"
8181
},
8282
"./css/grid": {
83-
"types": "./swiper.css.d.ts",
83+
"types": "./modules/grid.css.d.ts",
8484
"default": "./modules/grid.css"
8585
},
8686
"./css/hash-navigation": {
87-
"types": "./swiper.css.d.ts",
87+
"types": "./modules/hash-navigation.css.d.ts",
8888
"default": "./modules/hash-navigation.css"
8989
},
9090
"./css/history": {
91-
"types": "./swiper.css.d.ts",
91+
"types": "./modules/history.css.d.ts",
9292
"default": "./modules/history.css"
9393
},
9494
"./css/keyboard": {
95-
"types": "./swiper.css.d.ts",
95+
"types": "./modules/keyboard.css.d.ts",
9696
"default": "./modules/keyboard.css"
9797
},
9898
"./css/manipulation": {
99-
"types": "./swiper.css.d.ts",
99+
"types": "./modules/manipulation.css.d.ts",
100100
"default": "./modules/manipulation.css"
101101
},
102102
"./css/mousewheel": {
103-
"types": "./swiper.css.d.ts",
103+
"types": "./modules/mousewheel.css.d.ts",
104104
"default": "./modules/mousewheel.css"
105105
},
106106
"./css/navigation": {
107-
"types": "./swiper.css.d.ts",
107+
"types": "./modules/navigation.css.d.ts",
108108
"default": "./modules/navigation.css"
109109
},
110110
"./css/pagination": {
111-
"types": "./swiper.css.d.ts",
111+
"types": "./modules/pagination.css.d.ts",
112112
"default": "./modules/pagination.css"
113113
},
114114
"./css/parallax": {
115-
"types": "./swiper.css.d.ts",
115+
"types": "./modules/parallax.css.d.ts",
116116
"default": "./modules/parallax.css"
117117
},
118118
"./css/scrollbar": {
119-
"types": "./swiper.css.d.ts",
119+
"types": "./modules/scrollbar.css.d.ts",
120120
"default": "./modules/scrollbar.css"
121121
},
122122
"./css/thumbs": {
123-
"types": "./swiper.css.d.ts",
123+
"types": "./modules/thumbs.css.d.ts",
124124
"default": "./modules/thumbs.css"
125125
},
126126
"./css/virtual": {
127-
"types": "./swiper.css.d.ts",
127+
"types": "./modules/virtual.css.d.ts",
128128
"default": "./modules/virtual.css"
129129
},
130130
"./css/zoom": {
131-
"types": "./swiper.css.d.ts",
131+
"types": "./modules/zoom.css.d.ts",
132132
"default": "./modules/zoom.css"
133133
},
134134
"./element": {
@@ -144,95 +144,95 @@
144144
"default": "./swiper-element-bundle.mjs"
145145
},
146146
"./element/css/a11y": {
147-
"types": "./swiper.css.d.ts",
147+
"types": "./modules/a11y-element.css.d.ts",
148148
"default": "./modules/a11y-element.css"
149149
},
150150
"./element/css/autoplay": {
151-
"types": "./swiper.css.d.ts",
151+
"types": "./modules/autoplay-element.css.d.ts",
152152
"default": "./modules/autoplay-element.css"
153153
},
154154
"./element/css/controller": {
155-
"types": "./swiper.css.d.ts",
155+
"types": "./modules/controller-element.css.d.ts",
156156
"default": "./modules/controller-element.css"
157157
},
158158
"./element/css/effect-coverflow": {
159-
"types": "./swiper.css.d.ts",
159+
"types": "./modules/effect-coverflow-element.css.d.ts",
160160
"default": "./modules/effect-coverflow-element.css"
161161
},
162162
"./element/css/effect-cube": {
163-
"types": "./swiper.css.d.ts",
163+
"types": "./modules/effect-cube-element.css.d.ts",
164164
"default": "./modules/effect-cube-element.css"
165165
},
166166
"./element/css/effect-fade": {
167-
"types": "./swiper.css.d.ts",
167+
"types": "./modules/effect-fade-element.css.d.ts",
168168
"default": "./modules/effect-fade-element.css"
169169
},
170170
"./element/css/effect-flip": {
171-
"types": "./swiper.css.d.ts",
171+
"types": "./modules/effect-flip-element.css.d.ts",
172172
"default": "./modules/effect-flip-element.css"
173173
},
174174
"./element/css/effect-creative": {
175-
"types": "./swiper.css.d.ts",
175+
"types": "./modules/effect-creative-element.css.d.ts",
176176
"default": "./modules/effect-creative-element.css"
177177
},
178178
"./element/css/effect-cards": {
179-
"types": "./swiper.css.d.ts",
179+
"types": "./modules/effect-cards-element.css.d.ts",
180180
"default": "./modules/effect-cards-element.css"
181181
},
182182
"./element/css/free-mode": {
183-
"types": "./swiper.css.d.ts",
183+
"types": "./modules/free-mode-element.css.d.ts",
184184
"default": "./modules/free-mode-element.css"
185185
},
186186
"./element/css/grid": {
187-
"types": "./swiper.css.d.ts",
187+
"types": "./modules/grid-element.css.d.ts",
188188
"default": "./modules/grid-element.css"
189189
},
190190
"./element/css/hash-navigation": {
191-
"types": "./swiper.css.d.ts",
191+
"types": "./modules/hash-navigation-element.css.d.ts",
192192
"default": "./modules/hash-navigation-element.css"
193193
},
194194
"./element/css/history": {
195-
"types": "./swiper.css.d.ts",
195+
"types": "./modules/history-element.css.d.ts",
196196
"default": "./modules/history-element.css"
197197
},
198198
"./element/css/keyboard": {
199-
"types": "./swiper.css.d.ts",
199+
"types": "./modules/keyboard-element.css.d.ts",
200200
"default": "./modules/keyboard-element.css"
201201
},
202202
"./element/css/manipulation": {
203-
"types": "./swiper.css.d.ts",
203+
"types": "./modules/manipulation-element.css.d.ts",
204204
"default": "./modules/manipulation-element.css"
205205
},
206206
"./element/css/mousewheel": {
207-
"types": "./swiper.css.d.ts",
207+
"types": "./modules/mousewheel-element.css.d.ts",
208208
"default": "./modules/mousewheel-element.css"
209209
},
210210
"./element/css/navigation": {
211-
"types": "./swiper.css.d.ts",
211+
"types": "./modules/navigation-element.css.d.ts",
212212
"default": "./modules/navigation-element.css"
213213
},
214214
"./element/css/pagination": {
215-
"types": "./swiper.css.d.ts",
215+
"types": "./modules/pagination-element.css.d.ts",
216216
"default": "./modules/pagination-element.css"
217217
},
218218
"./element/css/parallax": {
219-
"types": "./swiper.css.d.ts",
219+
"types": "./modules/parallax-element.css.d.ts",
220220
"default": "./modules/parallax-element.css"
221221
},
222222
"./element/css/scrollbar": {
223-
"types": "./swiper.css.d.ts",
223+
"types": "./modules/scrollbar-element.css.d.ts",
224224
"default": "./modules/scrollbar-element.css"
225225
},
226226
"./element/css/thumbs": {
227-
"types": "./swiper.css.d.ts",
227+
"types": "./modules/thumbs-element.css.d.ts",
228228
"default": "./modules/thumbs-element.css"
229229
},
230230
"./element/css/virtual": {
231-
"types": "./swiper.css.d.ts",
231+
"types": "./modules/virtual-element.css.d.ts",
232232
"default": "./modules/virtual-element.css"
233233
},
234234
"./element/css/zoom": {
235-
"types": "./swiper.css.d.ts",
235+
"types": "./modules/zoom-element.css.d.ts",
236236
"default": "./modules/zoom-element.css"
237237
},
238238
"./react": {

0 commit comments

Comments
 (0)