Lines 1-23javascript
1import{createRequire as no}from"module";var ut=null,Pn=null,Fn=new Map,kn=e=>globalThis.process?.getBuiltinModule?.(e),to=()=>{let e=kn("node:module")??kn("module"),t=e&&typeof e=="object"&&"createRequire"in e?e.createRequire:void 0;if(!t)return null;try{return t(import.meta.url)("ts-morph")}catch{return null}};var Ln=e=>{Pn=e,ut=null};var S=()=>{if(ut)return ut;let e=Pn?.()??to();if(!e)throw new Error("ts-morph is not configured. In Node, install ts-morph as a dependency. In browser builds, call setTsMorphModule() or setTsMorphLoader() before analysis.");return ut=e,e},Dn=e=>{let t=e??"__defa ...
2`);else return;let a=s.search(/\n\s*@/);return a!==-1&&(s=s.substring(0,a)),s.trim()||void 0}let o=r.getText(),c=/\/\*\*\s*\n?\s*\*\s*([^@]*?)(?=\n\s*\*\s*@|\*\/)/.exec(o);if(c?.[1])return c[1].replace(/\n\s*\*\s*/g," ").trim()||void 0}let n=e.getLeadingCommentRanges();if(n.length>0){let r=n[n.length-1];if(!r)return;let i=r.getText();if(i.startsWith("/**")){let o=i.replace(/^\/\*\*\s*/,"").replace(/\s*\*\/\s*$/,"").replace(/^\s*\*\s?/gm,"").trim(),c=o.search(/\n
3`).map(a=>a.replace(/^\s*\*\s?/,"")).join(`
4`),n=[],r,i=[],o,c=/@(param|returns?|throws?|exception|example)\s*(.*)/gi,s;for(;(s=c.exec(t))!==null;){let a=s[1].toLowerCase(),l=s[2].trim();if(a
5`).trimEnd()},Md=(e,t)=>Lt(e).idsBySpanPath.get(yn(t))??[];import{Option as Ee}from"effect";import{Option as Ks}from"effect";var ct=(e,t)=>{t(e);let n=$(e);if(Ks.isSome(n))for(let r of n.value)ct(r,t)},Ge=(e,t)=>{for(let n of e.root.children)ct(n,t)},Ws=e=>{let t=!1;return ct(e,n=>{if(!t&&Z(n)){let r=n.callee;(r.startsWith("Effect.log")||r.startsWith("console.")||r.includes("withSpan")||r.includes("annotateLogs"))&&(t=!0)}}),t},$s=e=>{if(!e||Ws(e))return!1;let t=!1;return ct(e,n=>{if(!Z(n))return;let r=n.callee;(r==="Effect.void"||r==="Effect.unit"||r==="Effect.succeed"||r==="Effect.succeedNon ...
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/rules.jsView on unpkg · L3 6`)};import{Option as vi}from"effect";var Jd=e=>{let t=[],n=new Map,r=0,i=0,o=0;for(let a of e){
8`),t.push(`- Total programs: ${n.totalPrograms}`),t.push(`- Programs with generic error: ${n.programsWithGenericError}`),t.push(`- Programs with no error handlers: ${n.programsWithNoErrorHandlers}`),t.push(`- Programs with unhandled errors: ${n.programsWithUnhandledErrors}`),t.push(""),n.topErrorTypes.length>0){t.push(`## Top Error Types
9`),t.push("| Error Type | Count |"),t.push("|------------|-------|");for(let{type:r,count:i}of n.topErrorTypes)t.push(`| \`${r}\` | ${i} |`);t.push("")}if(e.issues.length>0){t.push(`## Issues
10`);for(let r of e.issues){let i=r.severity==="error"?"\u274C":r.severity==="warning"?"\u26A0\uFE0F":"\u2139\uFE0F";t.push(`${i} **[${
11`)},Xd=(e,t=!0)=>JSON.stringify(e,null,t?2:0);import{createHash as ec}from"crypto";import*as Ye from"fs/promises";
12`)},iu=(e=!0)=>JSON.stringify(Ke(),null,e?2:0),oa=()=>Ke().map(e=>({id:`${e.domain}:${e.code}`,code:e.code,domain:e.domain,severity:e.severity,confidence:e.confidence,title:e.title,snippet:ke(`${e.description}${e.example?` Example: ${e.example}`:""}`)})),ou=(e=!0)=>JSON.stringify(oa(),null,e?2:0),su=(e,t)=>Rn(e,t);var X="https://effect.website/docs",ki={"untagged-throw":{docsUrl:`${X}/error-management/expected-errors/`,example:{bad:`Effect.gen(function* () {
13 if (!user) throw new Error("not found");
14});`,good:`class UserNotFound extends Data.TaggedError("UserNotFound")<{}> {}
16Effect.gen(function* () {
17 if (!user) return yield* Effect.fail(new UserNotFound());
18});`}},"identity-catch":{docsUrl:`${X}/error-management/fallback/`,example:{bad:"Effect.catch(eff, (e) => Effect.fail(e));",good:`// Either drop the catch entirely, or actually recover:
19Effect.catch(eff, (e) => Effect.succeed(defaultValue));`}},"tryPromise-without-catch":{docsUrl:`${X}/error-management/unexpected-errors/`,example:{bad:'Effect.tryPromise(() => fetch("/x"));',good:`class FetchError extends Data.TaggedError("FetchError")<{ readonly cause
22 try: () => fetch("/x"),
23 catch: (e) => new FetchError({ cause: e }),
Long lines were clipped for display.