@effect/language-service 0.48.0 → 0.50.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 +1 -0
- package/cli.js +272 -206
- package/cli.js.map +1 -1
- package/effect-lsp-patch-utils.js +88 -22
- package/effect-lsp-patch-utils.js.map +1 -1
- package/index.js +3058 -731
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/transform.js +88 -22
- package/transform.js.map +1 -1
|
@@ -26,7 +26,7 @@ __export(effect_lsp_patch_utils_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(effect_lsp_patch_utils_exports);
|
|
28
28
|
|
|
29
|
-
// node_modules/.pnpm
|
|
29
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Function.js
|
|
30
30
|
var isFunction = (input) => typeof input === "function";
|
|
31
31
|
var dual = function(arity, body) {
|
|
32
32
|
if (typeof arity === "function") {
|
|
@@ -120,7 +120,7 @@ function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
// node_modules/.pnpm
|
|
123
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/GlobalValue.js
|
|
124
124
|
var globalStoreId = `effect/GlobalValue`;
|
|
125
125
|
var globalStore;
|
|
126
126
|
var globalValue = (id, compute) => {
|
|
@@ -134,7 +134,7 @@ var globalValue = (id, compute) => {
|
|
|
134
134
|
return globalStore.get(id);
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
// node_modules/.pnpm
|
|
137
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Predicate.js
|
|
138
138
|
var isString = (input) => typeof input === "string";
|
|
139
139
|
var isNumber = (input) => typeof input === "number";
|
|
140
140
|
var isBoolean = (input) => typeof input === "boolean";
|
|
@@ -144,7 +144,7 @@ var isObject = (input) => isRecordOrArray(input) || isFunction2(input);
|
|
|
144
144
|
var hasProperty = /* @__PURE__ */ dual(2, (self, property) => isObject(self) && property in self);
|
|
145
145
|
var isRecord = (input) => isRecordOrArray(input) && !Array.isArray(input);
|
|
146
146
|
|
|
147
|
-
// node_modules/.pnpm
|
|
147
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Utils.js
|
|
148
148
|
var GenKindTypeId = /* @__PURE__ */ Symbol.for("effect/Gen/GenKind");
|
|
149
149
|
var GenKindImpl = class {
|
|
150
150
|
value;
|
|
@@ -266,7 +266,7 @@ var internalCall = isNotOptimizedAway ? standard.effect_internal_function : forc
|
|
|
266
266
|
var genConstructor = function* () {
|
|
267
267
|
}.constructor;
|
|
268
268
|
|
|
269
|
-
// node_modules/.pnpm
|
|
269
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Hash.js
|
|
270
270
|
var randomHashCache = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Hash/randomHashCache"), () => /* @__PURE__ */ new WeakMap());
|
|
271
271
|
var symbol = /* @__PURE__ */ Symbol.for("effect/Hash");
|
|
272
272
|
var hash = (self) => {
|
|
@@ -365,7 +365,7 @@ var cached = function() {
|
|
|
365
365
|
return hash2;
|
|
366
366
|
};
|
|
367
367
|
|
|
368
|
-
// node_modules/.pnpm
|
|
368
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Equal.js
|
|
369
369
|
var symbol2 = /* @__PURE__ */ Symbol.for("effect/Equal");
|
|
370
370
|
function equals() {
|
|
371
371
|
if (arguments.length === 1) {
|
|
@@ -419,7 +419,7 @@ function compareBoth(self, that) {
|
|
|
419
419
|
var isEqual = (u) => hasProperty(u, symbol2);
|
|
420
420
|
var equivalence = () => equals;
|
|
421
421
|
|
|
422
|
-
// node_modules/.pnpm
|
|
422
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Inspectable.js
|
|
423
423
|
var NodeInspectSymbol = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
|
|
424
424
|
var toJSON = (x) => {
|
|
425
425
|
try {
|
|
@@ -471,7 +471,7 @@ var redact = (u) => {
|
|
|
471
471
|
return u;
|
|
472
472
|
};
|
|
473
473
|
|
|
474
|
-
// node_modules/.pnpm
|
|
474
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Pipeable.js
|
|
475
475
|
var pipeArguments = (self, args2) => {
|
|
476
476
|
switch (args2.length) {
|
|
477
477
|
case 0:
|
|
@@ -504,14 +504,14 @@ var pipeArguments = (self, args2) => {
|
|
|
504
504
|
}
|
|
505
505
|
};
|
|
506
506
|
|
|
507
|
-
// node_modules/.pnpm
|
|
507
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/opCodes/effect.js
|
|
508
508
|
var OP_COMMIT = "Commit";
|
|
509
509
|
|
|
510
|
-
// node_modules/.pnpm
|
|
510
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/version.js
|
|
511
511
|
var moduleVersion = "3.18.4";
|
|
512
512
|
var getCurrentVersion = () => moduleVersion;
|
|
513
513
|
|
|
514
|
-
// node_modules/.pnpm
|
|
514
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/effectable.js
|
|
515
515
|
var EffectTypeId = /* @__PURE__ */ Symbol.for("effect/Effect");
|
|
516
516
|
var StreamTypeId = /* @__PURE__ */ Symbol.for("effect/Stream");
|
|
517
517
|
var SinkTypeId = /* @__PURE__ */ Symbol.for("effect/Sink");
|
|
@@ -598,7 +598,7 @@ var StructuralCommitPrototype = {
|
|
|
598
598
|
...StructuralPrototype
|
|
599
599
|
};
|
|
600
600
|
|
|
601
|
-
// node_modules/.pnpm
|
|
601
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/option.js
|
|
602
602
|
var TypeId = /* @__PURE__ */ Symbol.for("effect/Option");
|
|
603
603
|
var CommonProto = {
|
|
604
604
|
...EffectPrototype,
|
|
@@ -656,7 +656,7 @@ var some = (value) => {
|
|
|
656
656
|
return a;
|
|
657
657
|
};
|
|
658
658
|
|
|
659
|
-
// node_modules/.pnpm
|
|
659
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/either.js
|
|
660
660
|
var TypeId2 = /* @__PURE__ */ Symbol.for("effect/Either");
|
|
661
661
|
var CommonProto2 = {
|
|
662
662
|
...EffectPrototype,
|
|
@@ -718,7 +718,7 @@ var right = (right3) => {
|
|
|
718
718
|
return a;
|
|
719
719
|
};
|
|
720
720
|
|
|
721
|
-
// node_modules/.pnpm
|
|
721
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Either.js
|
|
722
722
|
var right2 = right;
|
|
723
723
|
var left2 = left;
|
|
724
724
|
var isLeft2 = isLeft;
|
|
@@ -726,14 +726,14 @@ var isRight2 = isRight;
|
|
|
726
726
|
var map = /* @__PURE__ */ dual(2, (self, f) => isRight2(self) ? right2(f(self.right)) : left2(self.left));
|
|
727
727
|
var getOrElse = /* @__PURE__ */ dual(2, (self, onLeft) => isLeft2(self) ? onLeft(self.left) : self.right);
|
|
728
728
|
|
|
729
|
-
// node_modules/.pnpm
|
|
729
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/internal/array.js
|
|
730
730
|
var isNonEmptyArray = (self) => self.length > 0;
|
|
731
731
|
|
|
732
|
-
// node_modules/.pnpm
|
|
732
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Order.js
|
|
733
733
|
var make = (compare) => (self, that) => self === that ? 0 : compare(self, that);
|
|
734
734
|
var string2 = /* @__PURE__ */ make((self, that) => self < that ? -1 : 1);
|
|
735
735
|
|
|
736
|
-
// node_modules/.pnpm
|
|
736
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Option.js
|
|
737
737
|
var none2 = () => none;
|
|
738
738
|
var some2 = some;
|
|
739
739
|
var isNone2 = isNone;
|
|
@@ -741,7 +741,7 @@ var isSome2 = isSome;
|
|
|
741
741
|
var orElse = /* @__PURE__ */ dual(2, (self, that) => isNone2(self) ? that() : self);
|
|
742
742
|
var fromNullable = (nullableValue) => nullableValue == null ? none2() : some2(nullableValue);
|
|
743
743
|
|
|
744
|
-
// node_modules/.pnpm
|
|
744
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Record.js
|
|
745
745
|
var map2 = /* @__PURE__ */ dual(2, (self, f) => {
|
|
746
746
|
const out = {
|
|
747
747
|
...self
|
|
@@ -753,7 +753,7 @@ var map2 = /* @__PURE__ */ dual(2, (self, f) => {
|
|
|
753
753
|
});
|
|
754
754
|
var keys = (self) => Object.keys(self);
|
|
755
755
|
|
|
756
|
-
// node_modules/.pnpm
|
|
756
|
+
// node_modules/.pnpm/@pkg.pr.new+Effect-TS+effect@97ff1dc_6ntygjheib5kdugabxjhox4fte/node_modules/effect/dist/esm/Array.js
|
|
757
757
|
var fromIterable = (collection) => Array.isArray(collection) ? collection : Array.from(collection);
|
|
758
758
|
var append = /* @__PURE__ */ dual(2, (self, last) => [...self, last]);
|
|
759
759
|
var appendAll = /* @__PURE__ */ dual(2, (self, that) => fromIterable(self).concat(fromIterable(that)));
|
|
@@ -1197,7 +1197,8 @@ var defaults = {
|
|
|
1197
1197
|
pattern: "default",
|
|
1198
1198
|
skipLeadingPath: ["src/"]
|
|
1199
1199
|
}],
|
|
1200
|
-
extendedKeyDetection: false
|
|
1200
|
+
extendedKeyDetection: false,
|
|
1201
|
+
pipeableMinArgCount: 1
|
|
1201
1202
|
};
|
|
1202
1203
|
function parseKeyPatterns(patterns) {
|
|
1203
1204
|
const result = [];
|
|
@@ -1232,7 +1233,8 @@ function parse(config) {
|
|
|
1232
1233
|
renames: isObject(config) && hasProperty(config, "renames") && isBoolean(config.renames) ? config.renames : defaults.renames,
|
|
1233
1234
|
noExternal: isObject(config) && hasProperty(config, "noExternal") && isBoolean(config.noExternal) ? config.noExternal : defaults.noExternal,
|
|
1234
1235
|
keyPatterns: isObject(config) && hasProperty(config, "keyPatterns") && isArray(config.keyPatterns) ? parseKeyPatterns(config.keyPatterns) : defaults.keyPatterns,
|
|
1235
|
-
extendedKeyDetection: isObject(config) && hasProperty(config, "extendedKeyDetection") && isBoolean(config.extendedKeyDetection) ? config.extendedKeyDetection : defaults.extendedKeyDetection
|
|
1236
|
+
extendedKeyDetection: isObject(config) && hasProperty(config, "extendedKeyDetection") && isBoolean(config.extendedKeyDetection) ? config.extendedKeyDetection : defaults.extendedKeyDetection,
|
|
1237
|
+
pipeableMinArgCount: isObject(config) && hasProperty(config, "pipeableMinArgCount") && isNumber(config.pipeableMinArgCount) ? config.pipeableMinArgCount : defaults.pipeableMinArgCount
|
|
1236
1238
|
};
|
|
1237
1239
|
}
|
|
1238
1240
|
|
|
@@ -4271,6 +4273,69 @@ More info at https://effect.website/docs/requirements-management/layers/#avoidin
|
|
|
4271
4273
|
})
|
|
4272
4274
|
});
|
|
4273
4275
|
|
|
4276
|
+
// src/diagnostics/missedPipeableOpportunity.ts
|
|
4277
|
+
var missedPipeableOpportunity = createDiagnostic({
|
|
4278
|
+
name: "missedPipeableOpportunity",
|
|
4279
|
+
code: 26,
|
|
4280
|
+
severity: "off",
|
|
4281
|
+
apply: fn("missedPipeableOpportunity.apply")(function* (sourceFile, report) {
|
|
4282
|
+
const ts = yield* service(TypeScriptApi);
|
|
4283
|
+
const typeChecker = yield* service(TypeCheckerApi);
|
|
4284
|
+
const typeParser = yield* service(TypeParser);
|
|
4285
|
+
const options = yield* service(LanguageServicePluginOptions);
|
|
4286
|
+
const nodeToVisit = [sourceFile];
|
|
4287
|
+
const prependNodeToVisit = (node) => {
|
|
4288
|
+
nodeToVisit.unshift(node);
|
|
4289
|
+
return void 0;
|
|
4290
|
+
};
|
|
4291
|
+
const callChainNodes = /* @__PURE__ */ new WeakMap();
|
|
4292
|
+
while (nodeToVisit.length > 0) {
|
|
4293
|
+
const node = nodeToVisit.shift();
|
|
4294
|
+
if (ts.isCallExpression(node) && node.arguments.length === 1 && node.parent) {
|
|
4295
|
+
const parentChain = callChainNodes.get(node.parent) || [];
|
|
4296
|
+
callChainNodes.set(node, parentChain.concat(node));
|
|
4297
|
+
} else if (node.parent && callChainNodes.has(node.parent) && ts.isExpression(node)) {
|
|
4298
|
+
const parentChain = callChainNodes.get(node.parent) || [];
|
|
4299
|
+
const originalParentChain = parentChain.slice();
|
|
4300
|
+
parentChain.push(node);
|
|
4301
|
+
while (parentChain.length > options.pipeableMinArgCount) {
|
|
4302
|
+
const subject = parentChain.pop();
|
|
4303
|
+
const resultType = typeChecker.getTypeAtLocation(subject);
|
|
4304
|
+
const pipeableType = yield* pipe(typeParser.pipeableType(resultType, subject), orElse2(() => void_));
|
|
4305
|
+
if (pipeableType) {
|
|
4306
|
+
report({
|
|
4307
|
+
location: parentChain[0],
|
|
4308
|
+
messageText: `Nested function calls can be converted to pipeable style for better readability.`,
|
|
4309
|
+
fixes: [{
|
|
4310
|
+
fixName: "missedPipeableOpportunity_fix",
|
|
4311
|
+
description: "Convert to pipe style",
|
|
4312
|
+
apply: gen(function* () {
|
|
4313
|
+
const changeTracker = yield* service(ChangeTracker);
|
|
4314
|
+
changeTracker.replaceNode(
|
|
4315
|
+
sourceFile,
|
|
4316
|
+
parentChain[0],
|
|
4317
|
+
ts.factory.createCallExpression(
|
|
4318
|
+
ts.factory.createPropertyAccessExpression(
|
|
4319
|
+
subject,
|
|
4320
|
+
"pipe"
|
|
4321
|
+
),
|
|
4322
|
+
void 0,
|
|
4323
|
+
parentChain.filter(ts.isCallExpression).map((call) => call.expression)
|
|
4324
|
+
)
|
|
4325
|
+
);
|
|
4326
|
+
})
|
|
4327
|
+
}]
|
|
4328
|
+
});
|
|
4329
|
+
originalParentChain.forEach((node2) => callChainNodes.delete(node2));
|
|
4330
|
+
break;
|
|
4331
|
+
}
|
|
4332
|
+
}
|
|
4333
|
+
}
|
|
4334
|
+
ts.forEachChild(node, prependNodeToVisit);
|
|
4335
|
+
}
|
|
4336
|
+
})
|
|
4337
|
+
});
|
|
4338
|
+
|
|
4274
4339
|
// src/diagnostics/missingEffectContext.ts
|
|
4275
4340
|
var missingEffectContext = createDiagnostic({
|
|
4276
4341
|
name: "missingEffectContext",
|
|
@@ -5839,7 +5904,8 @@ var diagnostics = [
|
|
|
5839
5904
|
overriddenSchemaConstructor,
|
|
5840
5905
|
unsupportedServiceAccessors,
|
|
5841
5906
|
nonObjectEffectServiceType,
|
|
5842
|
-
deterministicKeys
|
|
5907
|
+
deterministicKeys,
|
|
5908
|
+
missedPipeableOpportunity
|
|
5843
5909
|
];
|
|
5844
5910
|
|
|
5845
5911
|
// src/effect-lsp-patch-utils.ts
|