Lines 1-23javascript
1import{createRequire as Gi}from"module";var dt=null,vn=null,wn=new Map,An=e=>globalThis.process?.getBuiltinModule?.(e),Vi=()=>{let e=An("node:module")??An("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 Rn=e=>{vn=e,dt=null};var E=()=>{if(dt)return dt;let e=vn?.()??Vi();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 dt=e,e},Fn=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`)}function Ad(e){return JSON.stringify({valid:e.valid,errorCount:e.errors.length,warningCount:e.warnings.length,diagnostics:e.diagnostics.map(t=>({rule:t.rule,severity:t.severity,message:t.message,fix:t.fix,location:t.location?{line:t.location.line,column:t.location.column}:void 0,nodeId:t.nodeId}))},null,2)}function vd(e){return e.valid&&e.warnings.length===0?"All strict mode checks passed":e.valid?`Passed with ${e.warnings.length} warning(s)`:`${e.errors.length} error(s), ${e.warnings.length} warning(s)`}import{Option as ge}from"effect";import{Option as vs}from"effect";var ct=(e,t)=>{t(e);l ...
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/rules.jsView on unpkg · L3 6`)};var J="https://effect.website/docs",wi={"untagged-throw":{docsUrl:`${J}/error-management/expected-errors/`,example:{bad:`Effect.gen(function* () {
7 if (!user) throw new Error("not found");
8});`,good:`class UserNotFound extends Data.TaggedError("UserNotFound")<{}> {}
10Effect.gen(function* () {
11 if (!user) return yield* Effect.fail(new UserNotFound());
12});`}},"identity-catch":{docsUrl:`${J}/error-management/fallback/`,example:{bad:"Effect.catch(eff, (e) => Effect.fail(e));",good:`// Either drop the catch entirely, or actually recover:
13Effect.catch(eff, (e) => Effect.succeed(defaultValue));`}},"tryPromise-without-catch":{docsUrl:`${J}/error-management/unexpected-errors/`,example:{bad:'Effect.tryPromise(() => fetch("/x"));',good:`class FetchError extends Data.TaggedError("FetchError")<{ readonly cause: unknown }> {}
16 try: () => fetch("/x"),
17 catch: (e) => new FetchError({ cause: e }),
18});`}},"promise-api-in-gen":{docsUrl:`${J}/getting-started/creating-effects/`,example:{bad:`Effect.gen(function* () {
19 const results = Promise.all([a(), b()]);
21});`,good:`Effect.gen(function* () {
22 const results = yield* Effect.all([a, b], { concurrency: "unbounded" });
Long lines were clipped for display.