@effect/tsgo 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,6 +49,7 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
49
49
  <tr><td><code>nonObjectEffectServiceType</code></td><td>❌</td><td></td><td>Ensures Effect.Service types are objects, not primitives</td><td>✓</td><td></td></tr>
50
50
  <tr><td><code>outdatedApi</code></td><td>⚠️</td><td></td><td>Detects usage of APIs that have been removed or renamed in Effect v4</td><td></td><td>✓</td></tr>
51
51
  <tr><td><code>overriddenSchemaConstructor</code></td><td>❌</td><td>🔧</td><td>Prevents overriding constructors in Schema classes which breaks decoding behavior</td><td>✓</td><td>✓</td></tr>
52
+ <tr><td><code>schemaOpaqueInstanceMember</code></td><td>❌</td><td></td><td>Disallows instance members in classes extending Schema.Opaque</td><td></td><td>✓</td></tr>
52
53
  <tr><td colspan="6"><strong>Anti-pattern</strong> <em>Discouraged patterns that often lead to bugs or confusing behavior.</em></td></tr>
53
54
  <tr><td><code>catchUnfailableEffect</code></td><td>💡</td><td></td><td>Warns when using error handling on Effects that never fail</td><td>✓</td><td>✓</td></tr>
54
55
  <tr><td><code>effectFnIife</code></td><td>⚠️</td><td>🔧</td><td>Effect.fn or Effect.fnUntraced is called as an IIFE; use Effect.gen instead</td><td>✓</td><td>✓</td></tr>
@@ -104,6 +105,7 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
104
105
  <tr><td><code>flatMapToMap</code></td><td>💡</td><td>🔧</td><td>Suggests using Effect.map instead of Effect.flatMap when the callback only wraps its result with Effect.succeed</td><td>✓</td><td>✓</td></tr>
105
106
  <tr><td><code>missedPipeableOpportunity</code></td><td>➖</td><td>🔧</td><td>Suggests using .pipe() for nested function calls</td><td>✓</td><td>✓</td></tr>
106
107
  <tr><td><code>missingEffectServiceDependency</code></td><td>➖</td><td></td><td>Checks that Effect.Service dependencies satisfy all required layer inputs</td><td>✓</td><td></td></tr>
108
+ <tr><td><code>missingPipeableSignature</code></td><td>➖</td><td></td><td>Reports exported fixed-arity functions whose call signatures have no corresponding pipeable overload</td><td>✓</td><td>✓</td></tr>
107
109
  <tr><td><code>multipleCatchTag</code></td><td>💡</td><td></td><td>Suggests collapsing consecutive Effect.catchTag transformations into a single Effect.catchTags call when semantics stay equivalent</td><td></td><td>✓</td></tr>
108
110
  <tr><td><code>nestedEffectGenYield</code></td><td>➖</td><td></td><td>Warns when yielding a nested bare Effect.gen inside an existing Effect generator context</td><td>✓</td><td>✓</td></tr>
109
111
  <tr><td><code>newSchemaClass</code></td><td>➖</td><td>🔧</td><td>Suggests using Schema make instead of new for Schema classes</td><td></td><td>✓</td></tr>
@@ -204851,7 +204851,7 @@ var FileReadError = class extends TaggedError("FileReadError") {
204851
204851
  //#endregion
204852
204852
  //#region package.json
204853
204853
  var name = "@effect/tsgo";
204854
- var version = "0.20.0";
204854
+ var version = "0.22.0";
204855
204855
 
204856
204856
  //#endregion
204857
204857
  //#region src/setup/consts.ts
@@ -205975,6 +205975,27 @@ var rules = [
205975
205975
  }]
205976
205976
  }
205977
205977
  },
205978
+ {
205979
+ "name": "schemaOpaqueInstanceMember",
205980
+ "group": "correctness",
205981
+ "description": "Disallows instance members in classes extending Schema.Opaque",
205982
+ "defaultSeverity": "error",
205983
+ "fixable": false,
205984
+ "supportedEffect": ["v4"],
205985
+ "codes": [377102],
205986
+ "preview": {
205987
+ "sourceText": "import { Schema } from \"effect\"\n\nclass User extends Schema.Opaque<User>()(Schema.Struct({ name: Schema.String })) {\n displayName = \"User\"\n greet() {\n return `Hello, ${this.displayName}`\n }\n}\n",
205988
+ "diagnostics": [{
205989
+ "start": 118,
205990
+ "end": 129,
205991
+ "text": "Classes extending `Schema.Opaque` must not declare instance members. effect(schemaOpaqueInstanceMember)"
205992
+ }, {
205993
+ "start": 141,
205994
+ "end": 146,
205995
+ "text": "Classes extending `Schema.Opaque` must not declare instance members. effect(schemaOpaqueInstanceMember)"
205996
+ }]
205997
+ }
205998
+ },
205978
205999
  {
205979
206000
  "name": "catchUnfailableEffect",
205980
206001
  "group": "antipattern",
@@ -206867,6 +206888,23 @@ var rules = [
206867
206888
  }]
206868
206889
  }
206869
206890
  },
206891
+ {
206892
+ "name": "missingPipeableSignature",
206893
+ "group": "style",
206894
+ "description": "Reports exported fixed-arity functions whose call signatures have no corresponding pipeable overload",
206895
+ "defaultSeverity": "off",
206896
+ "fixable": false,
206897
+ "supportedEffect": ["v3", "v4"],
206898
+ "codes": [377101],
206899
+ "preview": {
206900
+ "sourceText": "\nexport const getAt = (self: ReadonlyArray<string>, index: number): string => self[index]\n",
206901
+ "diagnostics": [{
206902
+ "start": 14,
206903
+ "end": 19,
206904
+ "text": "Exported function `getAt` has no pipeable overload corresponding to its signature `(self: ReadonlyArray<string>, index: number) => string`. effect(missingPipeableSignature)"
206905
+ }]
206906
+ }
206907
+ },
206870
206908
  {
206871
206909
  "name": "multipleCatchTag",
206872
206910
  "group": "style",
@@ -207842,7 +207880,7 @@ const gatherTargetState = (assessment, context) => gen(function* () {
207842
207880
 
207843
207881
  //#endregion
207844
207882
  //#region upstream.json
207845
- var tsVersion = "7.1.0-dev.20260713.1";
207883
+ var tsVersion = "7.1.0-dev.20260714.1";
207846
207884
 
207847
207885
  //#endregion
207848
207886
  //#region src/setup/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/tsgo",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Effect Language Service for TypeScript-Go — Effect-specific diagnostics and hover features.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -23,13 +23,13 @@
23
23
  "schema.json"
24
24
  ],
25
25
  "optionalDependencies": {
26
- "@effect/tsgo-win32-x64": "0.20.0",
27
- "@effect/tsgo-win32-arm64": "0.20.0",
28
- "@effect/tsgo-linux-x64": "0.20.0",
29
- "@effect/tsgo-linux-arm64": "0.20.0",
30
- "@effect/tsgo-linux-arm": "0.20.0",
31
- "@effect/tsgo-darwin-x64": "0.20.0",
32
- "@effect/tsgo-darwin-arm64": "0.20.0"
26
+ "@effect/tsgo-win32-x64": "0.22.0",
27
+ "@effect/tsgo-win32-arm64": "0.22.0",
28
+ "@effect/tsgo-linux-arm64": "0.22.0",
29
+ "@effect/tsgo-linux-arm": "0.22.0",
30
+ "@effect/tsgo-linux-x64": "0.22.0",
31
+ "@effect/tsgo-darwin-x64": "0.22.0",
32
+ "@effect/tsgo-darwin-arm64": "0.22.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@effect/platform-node": "^4.0.0-beta.83",
package/schema.json CHANGED
@@ -1899,6 +1899,11 @@
1899
1899
  "default": "error",
1900
1900
  "description": "Detects Layer values with unhandled context requirements"
1901
1901
  },
1902
+ "missingPipeableSignature": {
1903
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
1904
+ "default": "off",
1905
+ "description": "Reports exported fixed-arity functions whose call signatures have no corresponding pipeable overload"
1906
+ },
1902
1907
  "missingReturnYieldStar": {
1903
1908
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
1904
1909
  "default": "error",