UNPKG

@stacksjs/dtsx

Version:

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

5 lines (4 loc) 2.56 kB
// @bun import{Xc as w}from"./chunk-nkp89e28.js";import{existsSync as U,statSync as A}from"fs";import{dirname as k,extname as C,isAbsolute as Z,resolve as X}from"path";var $=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".d.ts",".d.mts",".d.cts"],v={".js":[".ts",".tsx",".d.ts"],".jsx":[".tsx",".ts",".d.ts"],".mjs":[".mts",".d.mts"],".cjs":[".cts",".d.cts"]};function Y(G){try{return A(G).isFile()}catch{return!1}}function I(G,Q){let z=G.replace(/[?#].*$/,"");if(!(z.startsWith("./")||z.startsWith("../")||z==="."||z==="..")&&!Z(z))return{resolved:null,isRelative:!1};let J=k(Q),B=Z(z)?z:X(J,z);if(Y(B))return{resolved:B,isRelative:!0};let H=C(B),V=v[H];if(V){let K=B.slice(0,-H.length);for(let L of V){let W=K+L;if(Y(W))return{resolved:W,isRelative:!0}}}for(let K of $){let L=B+K;if(Y(L))return{resolved:L,isRelative:!0}}if(U(B))for(let K of $){let L=`${B}/index${K}`;if(Y(L))return{resolved:L,isRelative:!0}}return{resolved:null,isRelative:!0}}function P(G){let Q=G.length,z="",j=0;while(j<Q){let J=G.charCodeAt(j);if(J===34||J===39||J===96){let B=J;z+=G[j++];while(j<Q){let H=G.charCodeAt(j),V=G[j++];if(z+=B===96&&H!==B?H===10||H===13?V:" ":V,H===92&&j<Q){let K=G[j++];z+=B===96?K===` `||K==="\r"?K:" ":K;continue}if(H===B)break}continue}if(J===47&&j+1<Q){let B=G.charCodeAt(j+1);if(B===47){j+=2;while(j<Q&&G.charCodeAt(j)!==10)j++;continue}if(B===42){j+=2;while(j+1<Q&&!(G.charCodeAt(j)===42&&G.charCodeAt(j+1)===47))j++;j+=2;continue}}z+=G[j++]}return z}var g=/(?:^|[\n;{}])\s*export\s+(type\s+)?(?:\*(?:\s+as\s+\w+)?|\{[^}]*\})\s+from\s+(['"])([^'"]+)\2/g,D=/(?:^|[\n;{}])\s*import\s+(type\s+)?(?:[^'";\n]+\s+from\s+)?(['"])([^'"]+)\2/g;function y(G,Q={}){let z=[],j=P(G);g.lastIndex=0;let J;while((J=g.exec(j))!==null){let B=!!J[1],H=J[3],V=J[0],K;if(V.includes("* as "))K="export-star-as";else if(V.includes("*"))K="export-star";else K="export-named";z.push({specifier:H,kind:K,isTypeOnly:B})}if(Q.includeImports){D.lastIndex=0;while((J=D.exec(j))!==null)z.push({specifier:J[3],kind:"import",isTypeOnly:!!J[1]})}return z}async function _(G,Q={}){let z=new Set,j=new Map,J=[],B=[];for(let H of G)if(!z.has(H))z.add(H),B.push(H);while(B.length>0){let H=B.shift(),V;try{V=await w(H)}catch{continue}let K=y(V,Q);j.set(H,K);for(let L of K){if(!(L.specifier.startsWith(".")||Z(L.specifier)))continue;let W=I(L.specifier,H);if(W.resolved){if(!z.has(W.resolved))z.add(W.resolved),B.push(W.resolved)}else J.push({from:H,specifier:L.specifier,isTypeOnly:L.isTypeOnly})}}return{reachable:z,reExports:j,unresolved:J}} export{I as bc,y as cc,_ as dc};