@@ -105,43 +105,47 @@ export const setup = (build, _options) => {
105
105
} ) ;
106
106
107
107
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 ) {
119
118
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 ( / \. c s s $ / i, dtsExt ) ;
129
- const dtsOutdir = outdirs [ dtsExt ] || outdirs [ '*' ] ;
130
- if ( dtsOutdir ) {
131
- outDtsfile = resolve ( buildRoot , dtsOutdir , rpath ) . replace ( / \. c s s $ / 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
+ }
132
127
}
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 ( / \. c s s $ / i, dtsExt ) ;
132
+ const dtsOutdir = outdirs [ dtsExt ] || outdirs [ '*' ] ;
133
+ if ( dtsOutdir ) {
134
+ outDtsfile = resolve ( buildRoot , dtsOutdir , rpath ) . replace ( / \. c s s $ / i, dtsExt ) ;
137
135
}
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
+ }
140
144
}
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
+ }
145
149
}
146
150
147
151
if ( ! bundle && forceBuild ) {
0 commit comments