@effect/language-service 0.31.1 → 0.32.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 +2 -1
- package/cli.js +18 -8
- package/cli.js.map +1 -1
- package/index.js +60 -16
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/transform.js +18 -8
- package/transform.js.map +1 -1
package/package.json
CHANGED
package/transform.js
CHANGED
|
@@ -1125,7 +1125,8 @@ function parse(config) {
|
|
|
1125
1125
|
goto: isObject(config) && hasProperty(config, "goto") && isBoolean(config.goto) ? config.goto : true,
|
|
1126
1126
|
allowedDuplicatedPackages: isObject(config) && hasProperty(config, "allowedDuplicatedPackages") && isArray(config.allowedDuplicatedPackages) && config.allowedDuplicatedPackages.every(isString) ? config.allowedDuplicatedPackages.map((_) => _.toLowerCase()) : [],
|
|
1127
1127
|
namespaceImportPackages: isObject(config) && hasProperty(config, "namespaceImportPackages") && isArray(config.namespaceImportPackages) && config.namespaceImportPackages.every(isString) ? config.namespaceImportPackages.map((_) => _.toLowerCase()) : [],
|
|
1128
|
-
barrelImportPackages: isObject(config) && hasProperty(config, "barrelImportPackages") && isArray(config.barrelImportPackages) && config.barrelImportPackages.every(isString) ? config.barrelImportPackages.map((_) => _.toLowerCase()) : []
|
|
1128
|
+
barrelImportPackages: isObject(config) && hasProperty(config, "barrelImportPackages") && isArray(config.barrelImportPackages) && config.barrelImportPackages.every(isString) ? config.barrelImportPackages.map((_) => _.toLowerCase()) : [],
|
|
1129
|
+
topLevelNamedReexports: isObject(config) && hasProperty(config, "topLevelNamedReexports") && isString(config.topLevelNamedReexports) && (config.topLevelNamedReexports.toLowerCase() === "ignore" || config.topLevelNamedReexports.toLowerCase() === "follow") ? config.topLevelNamedReexports.toLowerCase() : "ignore"
|
|
1129
1130
|
};
|
|
1130
1131
|
}
|
|
1131
1132
|
|
|
@@ -2920,6 +2921,7 @@ function make2(ts, tsUtils, typeChecker) {
|
|
|
2920
2921
|
className: atLocation.name,
|
|
2921
2922
|
selfTypeNode,
|
|
2922
2923
|
args: wholeCall.arguments,
|
|
2924
|
+
options: wholeCall.arguments[1],
|
|
2923
2925
|
accessors: accessors2,
|
|
2924
2926
|
dependencies
|
|
2925
2927
|
};
|
|
@@ -3155,9 +3157,11 @@ var floatingEffect = createDiagnostic({
|
|
|
3155
3157
|
option
|
|
3156
3158
|
);
|
|
3157
3159
|
if (isNone2(allowedFloatingEffects)) {
|
|
3160
|
+
const isStrictEffect = yield* option(typeParser.strictEffectType(type, node.expression));
|
|
3161
|
+
const name = isSome2(isStrictEffect) ? "Effect" : "Effect-able " + typeChecker.typeToString(type);
|
|
3158
3162
|
report({
|
|
3159
3163
|
location: node,
|
|
3160
|
-
messageText:
|
|
3164
|
+
messageText: `${name} must be yielded or assigned to a variable.`,
|
|
3161
3165
|
fixes: []
|
|
3162
3166
|
});
|
|
3163
3167
|
}
|
|
@@ -3666,7 +3670,7 @@ var missingEffectServiceDependency = createDiagnostic({
|
|
|
3666
3670
|
orElse2(() => void_)
|
|
3667
3671
|
);
|
|
3668
3672
|
if (serviceResult) {
|
|
3669
|
-
const { className,
|
|
3673
|
+
const { className, options } = serviceResult;
|
|
3670
3674
|
const classSymbol = typeChecker.getSymbolAtLocation(className);
|
|
3671
3675
|
if (classSymbol) {
|
|
3672
3676
|
const classType = typeChecker.getTypeOfSymbol(classSymbol);
|
|
@@ -3687,11 +3691,17 @@ var missingEffectServiceDependency = createDiagnostic({
|
|
|
3687
3691
|
excludeNever
|
|
3688
3692
|
);
|
|
3689
3693
|
const providedIndexes = /* @__PURE__ */ new Set();
|
|
3690
|
-
const
|
|
3691
|
-
|
|
3692
|
-
|
|
3694
|
+
const optionsType = typeChecker.getTypeAtLocation(options);
|
|
3695
|
+
const dependenciesProperty = typeChecker.getPropertyOfType(optionsType, "dependencies");
|
|
3696
|
+
let types = [];
|
|
3697
|
+
if (dependenciesProperty) {
|
|
3698
|
+
const dependenciesTypes = typeChecker.getTypeOfSymbolAtLocation(dependenciesProperty, options);
|
|
3699
|
+
const numberIndexType = dependenciesTypes.getNumberIndexType();
|
|
3700
|
+
types = numberIndexType ? unrollUnionMembers(numberIndexType) : [];
|
|
3701
|
+
}
|
|
3702
|
+
for (const depType of types) {
|
|
3693
3703
|
const depLayerResult = yield* pipe(
|
|
3694
|
-
typeParser.layerType(depType,
|
|
3704
|
+
typeParser.layerType(depType, options),
|
|
3695
3705
|
orElse2(() => void_)
|
|
3696
3706
|
);
|
|
3697
3707
|
if (depLayerResult) {
|
|
@@ -3778,7 +3788,7 @@ var missingReturnYieldStar = createDiagnostic({
|
|
|
3778
3788
|
}] : [];
|
|
3779
3789
|
report({
|
|
3780
3790
|
location: node,
|
|
3781
|
-
messageText: `
|
|
3791
|
+
messageText: `It is recommended to use return yield* for Effects that never succeed to signal a definitive exit point for type narrowing and tooling support.`,
|
|
3782
3792
|
fixes: fix
|
|
3783
3793
|
});
|
|
3784
3794
|
}
|