UNPKG

@stacksjs/dtsx

Version:

A modern, fast .d.ts generation tool, powered by Bun.

3 lines (2 loc) 2.58 kB
// @bun import{_b as I}from"../../chunk-rvhbm0yh.js";import"../../chunk-gapg5f4h.js";import"../../chunk-3ad4xrgw.js";import"../../chunk-gxkksf4a.js";import"../../chunk-q5wtqk0e.js";import"../../chunk-shwj5718.js";import"../../chunk-1hz0gf9d.js";import"../../chunk-vrhjahk1.js";import"../../chunk-nkp89e28.js";import"../../chunk-rr7k2pw0.js";import"../../chunk-09ss191z.js";import"../../chunk-3nd5cpav.js";import"../../chunk-r3tgppjs.js";import"../../chunk-05vktpfb.js";import"../../chunk-t1vsc910.js";import"../../chunk-41q4b5qr.js";import"../../chunk-dx7m458f.js";import"../../chunk-0x9yq433.js";import"../../chunk-sc0mtgkd.js";import"../../chunk-00wwzmta.js";import"../../chunk-xpeszgey.js";import"../../chunk-9re4jfrt.js";import"../../chunk-s2fpbr98.js";import"../../chunk-736mzc3x.js";import"../../chunk-wk18gvz1.js";import"../../chunk-pwwfmfhh.js";import"../../chunk-p0p65mbf.js";class H{options;generateOptions;constructor(j={}){let{onCompile:F=!1,afterEmit:w=!0,onWatchRun:q=!1,onGenerated:z,onError:B,...J}=j;this.options={onCompile:F,afterEmit:w,onWatchRun:q,onGenerated:z,onError:B},this.generateOptions=J}apply(j){if(!this.generateOptions.outdir&&j.options.output?.path)this.generateOptions.outdir=j.options.output.path;if(!this.generateOptions.cwd&&j.options.context)this.generateOptions.cwd=j.options.context;if(!this.generateOptions.entrypoints&&j.options.entry){let w=j.options.entry;if(typeof w==="string")this.generateOptions.entrypoints=[w];else if(Array.isArray(w))this.generateOptions.entrypoints=w;else if(typeof w==="object"&&w!==null){let q=[];for(let z of Object.values(w))if(typeof z==="string")q.push(z);else if(Array.isArray(z))q.push(...z.filter((B)=>typeof B==="string"));else if(typeof z==="object"&&z!==null&&"import"in z){let B=z.import;if(typeof B==="string")q.push(B);else if(Array.isArray(B))q.push(...B)}if(q.length>0)this.generateOptions.entrypoints=q}}if(this.options.onCompile)j.hooks.compile.tap("DtsxWebpackPlugin",()=>{this.runGenerate()});if(this.options.afterEmit)j.hooks.afterEmit.tapAsync("DtsxWebpackPlugin",async(w,q)=>{await this.runGenerate(),q()});if(this.options.onWatchRun)j.hooks.watchRun.tapAsync("DtsxWebpackPlugin",async(w,q)=>{await this.runGenerate(),q()})}async runGenerate(){try{let j=await I(this.generateOptions);this.options.onGenerated?.(j)}catch(j){let F=j instanceof Error?j:Error(String(j));if(this.options.onError?.(F),!this.options.onError)console.error("[dtsx] Generation failed:",F.message)}}}function K(j={}){return new H(j)}var M=K,Q=H;export{K as dtsxWebpack,M as dts,Q as default,H as DtsxWebpackPlugin};