@effect/language-service 0.62.0 → 0.62.1
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/cli.js +10 -2
- package/cli.js.map +1 -1
- package/effect-lsp-patch-utils.js +10 -2
- package/effect-lsp-patch-utils.js.map +1 -1
- package/index.js +10 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/transform.js +10 -2
- package/transform.js.map +1 -1
|
@@ -2189,6 +2189,8 @@ var nanoLayer2 = (fa) => pipe(
|
|
|
2189
2189
|
)
|
|
2190
2190
|
);
|
|
2191
2191
|
function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
|
|
2192
|
+
const readonlyArraySymbol = typeChecker.resolveName("ReadonlyArray", void 0, ts.SymbolFlags.Type, false);
|
|
2193
|
+
const globalReadonlyArrayType = readonlyArraySymbol ? typeChecker.getDeclaredTypeOfSymbol(readonlyArraySymbol) : void 0;
|
|
2192
2194
|
function isUnion(type) {
|
|
2193
2195
|
return !!(type.flags & ts.TypeFlags.Union);
|
|
2194
2196
|
}
|
|
@@ -2198,6 +2200,9 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
|
|
|
2198
2200
|
function isThisTypeParameter(type) {
|
|
2199
2201
|
return !!(type.flags & ts.TypeFlags.TypeParameter && type.isThisType);
|
|
2200
2202
|
}
|
|
2203
|
+
function isReadonlyArrayType(type) {
|
|
2204
|
+
return type && "target" in type && type.target === globalReadonlyArrayType;
|
|
2205
|
+
}
|
|
2201
2206
|
function isMissingIntrinsicType(type) {
|
|
2202
2207
|
return (type.flags & ts.TypeFlags.Undefined) !== 0 && "debugIntrinsicName" in type && type.debugIntrinsicName === "missing";
|
|
2203
2208
|
}
|
|
@@ -2505,6 +2510,7 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
|
|
|
2505
2510
|
}
|
|
2506
2511
|
return {
|
|
2507
2512
|
isUnion,
|
|
2513
|
+
isReadonlyArrayType,
|
|
2508
2514
|
isMissingIntrinsicType,
|
|
2509
2515
|
getTypeParameterAtPosition,
|
|
2510
2516
|
getMissingTypeEntriesInTargetType,
|
|
@@ -5940,13 +5946,15 @@ var processArrayType = fn(
|
|
|
5940
5946
|
"StructuralSchemaGen.processArrayType"
|
|
5941
5947
|
)(
|
|
5942
5948
|
function* (type, context) {
|
|
5943
|
-
const { createApiCall, typeChecker } = yield* service(StructuralSchemaGenContext);
|
|
5949
|
+
const { createApiCall, typeChecker, typeCheckerUtils } = yield* service(StructuralSchemaGenContext);
|
|
5944
5950
|
const typeArgs = typeChecker.getTypeArguments(type);
|
|
5945
5951
|
if (typeArgs.length === 0) {
|
|
5946
5952
|
return yield* fail(new UnsupportedTypeError(type, "Array type has no type arguments"));
|
|
5947
5953
|
}
|
|
5948
5954
|
const elementSchema = yield* processType(typeArgs[0], context);
|
|
5949
|
-
|
|
5955
|
+
const expr = createApiCall("Array", [elementSchema]);
|
|
5956
|
+
if (typeCheckerUtils.isReadonlyArrayType(type)) return [expr, false];
|
|
5957
|
+
return [createApiCall("mutable", [expr]), false];
|
|
5950
5958
|
}
|
|
5951
5959
|
);
|
|
5952
5960
|
var processTupleType = fn(
|