Skip to content

Commit 59c143c

Browse files
committed
v3.0.2
1 parent d2ed9b5 commit 59c143c

File tree

3 files changed

+41
-34
lines changed

3 files changed

+41
-34
lines changed

changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## V3.0.2
2+
- Do not emit .d.ts for files outside of build root
3+
14
## V3.0.1
25
- add ability to custom ts declaration file outdir
36

index.js

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -105,43 +105,47 @@ export const setup = (build, _options) => {
105105
});
106106

107107
if (emitDts) {
108-
/** @type {('.d.css.ts'|'.css.d.ts')[]} */
109-
const dtsExts = [];
110-
/** @type {import('./index.js').EmitDts} */
111-
let outdirs = {};
112-
if (emitDts === '.d.css.ts' || emitDts === '.css.d.ts') {
113-
dtsExts.push(emitDts);
114-
} else if (emitDts === true) {
115-
dtsExts.push('.d.css.ts', '.css.d.ts');
116-
} else if (typeof emitDts === 'object') {
117-
outdirs = { ...emitDts };
118-
if (emitDts['*']) {
108+
if (rpath.startsWith('..')) {
109+
log(`skip emit dts for file outside of build root:`, rpath);
110+
} else {
111+
/** @type {('.d.css.ts'|'.css.d.ts')[]} */
112+
const dtsExts = [];
113+
/** @type {import('./index.js').EmitDts} */
114+
let outdirs = {};
115+
if (emitDts === '.d.css.ts' || emitDts === '.css.d.ts') {
116+
dtsExts.push(emitDts);
117+
} else if (emitDts === true) {
119118
dtsExts.push('.d.css.ts', '.css.d.ts');
120-
} else {
121-
emitDts['.css.d.ts'] && dtsExts.push('.css.d.ts');
122-
emitDts['.d.css.ts'] && dtsExts.push('.d.css.ts');
123-
}
124-
}
125-
const outdir = resolve(buildRoot, patchedBuild.initialOptions.outdir ?? '');
126-
const outbase = patchedBuild.initialOptions.outbase;
127-
dtsExts.forEach(async (dtsExt) => {
128-
let outDtsfile = resolve(outdir, rpath).replace(/\.css$/i, dtsExt);
129-
const dtsOutdir = outdirs[dtsExt] || outdirs['*'];
130-
if (dtsOutdir) {
131-
outDtsfile = resolve(buildRoot, dtsOutdir, rpath).replace(/\.css$/i, dtsExt);
119+
} else if (typeof emitDts === 'object') {
120+
outdirs = { ...emitDts };
121+
if (emitDts['*']) {
122+
dtsExts.push('.d.css.ts', '.css.d.ts');
123+
} else {
124+
emitDts['.css.d.ts'] && dtsExts.push('.css.d.ts');
125+
emitDts['.d.css.ts'] && dtsExts.push('.d.css.ts');
126+
}
132127
}
133-
if (outbase) {
134-
let normalized = normalize(outbase);
135-
if (normalized.endsWith(sep)) {
136-
normalized = compact(normalized.split(sep)).join(sep);
128+
const outdir = resolve(buildRoot, patchedBuild.initialOptions.outdir ?? '');
129+
const outbase = patchedBuild.initialOptions.outbase;
130+
dtsExts.forEach(async (dtsExt) => {
131+
let outDtsfile = resolve(outdir, rpath).replace(/\.css$/i, dtsExt);
132+
const dtsOutdir = outdirs[dtsExt] || outdirs['*'];
133+
if (dtsOutdir) {
134+
outDtsfile = resolve(buildRoot, dtsOutdir, rpath).replace(/\.css$/i, dtsExt);
137135
}
138-
if (normalized !== '.') {
139-
outDtsfile = resolve(outDtsfile.replace(normalized, ''));
136+
if (outbase) {
137+
let normalized = normalize(outbase);
138+
if (normalized.endsWith(sep)) {
139+
normalized = compact(normalized.split(sep)).join(sep);
140+
}
141+
if (normalized !== '.') {
142+
outDtsfile = resolve(outDtsfile.replace(normalized, ''));
143+
}
140144
}
141-
}
142-
log(`emit typescript declarations file:`, patchedBuild.context.relative(outDtsfile));
143-
await ensureFile(outDtsfile, buildResult?.dts ?? '');
144-
});
145+
log(`emit dts:`, patchedBuild.context.relative(outDtsfile));
146+
await ensureFile(outDtsfile, buildResult?.dts ?? '');
147+
});
148+
}
145149
}
146150

147151
if (!bundle && forceBuild) {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "esbuild-css-modules-plugin",
3-
"version": "3.0.1",
3+
"version": "3.0.2",
44
"description": "A esbuild plugin to bundle css modules into js(x)/ts(x), based on extremely fast [Lightning CSS](https://lightningcss.dev/)",
55
"main": "./index.cjs",
66
"module": "./index.js",

0 commit comments

Comments
 (0)