@effect/tsgo 0.1.0 → 0.1.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/dist/effect-tsgo.js +100 -20
- package/package.json +8 -8
package/dist/effect-tsgo.js
CHANGED
|
@@ -3910,6 +3910,39 @@ const getFailure$1 = getFailure$2;
|
|
|
3910
3910
|
*/
|
|
3911
3911
|
const getOrElse$1 = /* @__PURE__ */ dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);
|
|
3912
3912
|
/**
|
|
3913
|
+
* Returns the fallback `Option` if `self` is `None`; otherwise returns `self`.
|
|
3914
|
+
*
|
|
3915
|
+
* **When to use**
|
|
3916
|
+
*
|
|
3917
|
+
* - Chaining fallback `Option` computations
|
|
3918
|
+
* - Building priority chains of optional values
|
|
3919
|
+
*
|
|
3920
|
+
* **Behavior**
|
|
3921
|
+
*
|
|
3922
|
+
* - `Some` → returns `self` unchanged
|
|
3923
|
+
* - `None` → evaluates and returns `that()`
|
|
3924
|
+
* - `that` is lazily evaluated
|
|
3925
|
+
*
|
|
3926
|
+
* **Example** (Providing a fallback Option)
|
|
3927
|
+
*
|
|
3928
|
+
* ```ts
|
|
3929
|
+
* import { Option } from "effect"
|
|
3930
|
+
*
|
|
3931
|
+
* console.log(Option.none().pipe(Option.orElse(() => Option.some("b"))))
|
|
3932
|
+
* // Output: { _id: 'Option', _tag: 'Some', value: 'b' }
|
|
3933
|
+
*
|
|
3934
|
+
* console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
|
|
3935
|
+
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
3936
|
+
* ```
|
|
3937
|
+
*
|
|
3938
|
+
* @see {@link orElseSome} to wrap the fallback value in `Some` automatically
|
|
3939
|
+
* @see {@link firstSomeOf} to pick the first `Some` from a collection
|
|
3940
|
+
*
|
|
3941
|
+
* @category Error handling
|
|
3942
|
+
* @since 2.0.0
|
|
3943
|
+
*/
|
|
3944
|
+
const orElse = /* @__PURE__ */ dual(2, (self, that) => isNone(self) ? that() : self);
|
|
3945
|
+
/**
|
|
3913
3946
|
* Converts a nullable value (`null` or `undefined`) into an `Option`.
|
|
3914
3947
|
*
|
|
3915
3948
|
* **When to use**
|
|
@@ -197344,14 +197377,16 @@ var FileReadError = class extends TaggedError("FileReadError") {
|
|
|
197344
197377
|
//#endregion
|
|
197345
197378
|
//#region package.json
|
|
197346
197379
|
var name = "@effect/tsgo";
|
|
197347
|
-
var version = "0.1.
|
|
197380
|
+
var version = "0.1.1";
|
|
197348
197381
|
|
|
197349
197382
|
//#endregion
|
|
197350
197383
|
//#region src/setup/consts.ts
|
|
197351
197384
|
const LSP_PACKAGE_NAME = name;
|
|
197352
197385
|
const LSP_PLUGIN_NAME = "@effect/language-service";
|
|
197386
|
+
const NATIVE_PREVIEW_PACKAGE_NAME = "@typescript/native-preview";
|
|
197353
197387
|
const PATCH_COMMAND = "effect-tsgo patch";
|
|
197354
197388
|
const DEFAULT_LSP_VERSION = version;
|
|
197389
|
+
const DEFAULT_NATIVE_PREVIEW_VERSION = "latest";
|
|
197355
197390
|
const TSCONFIG_SCHEMA_URL = "https://raw.githubusercontent.com/Effect-TS/tsgo/refs/heads/main/schema.json";
|
|
197356
197391
|
|
|
197357
197392
|
//#endregion
|
|
@@ -197396,15 +197431,19 @@ const createAssessmentInput = (currentDir, tsconfigInput) => gen(function* () {
|
|
|
197396
197431
|
const assessPackageJson = (input) => {
|
|
197397
197432
|
const sourceFile = import_typescript.parseJsonText(input.fileName, input.text);
|
|
197398
197433
|
const parsed = import_typescript.convertToObject(sourceFile, []);
|
|
197399
|
-
|
|
197400
|
-
|
|
197401
|
-
|
|
197402
|
-
|
|
197403
|
-
|
|
197404
|
-
|
|
197405
|
-
|
|
197406
|
-
|
|
197407
|
-
|
|
197434
|
+
const assessDependency = (packageName) => {
|
|
197435
|
+
if (packageName in (parsed.devDependencies ?? {})) return some({
|
|
197436
|
+
dependencyType: "devDependencies",
|
|
197437
|
+
version: parsed.devDependencies[packageName]
|
|
197438
|
+
});
|
|
197439
|
+
if (packageName in (parsed.dependencies ?? {})) return some({
|
|
197440
|
+
dependencyType: "dependencies",
|
|
197441
|
+
version: parsed.dependencies[packageName]
|
|
197442
|
+
});
|
|
197443
|
+
return none$3();
|
|
197444
|
+
};
|
|
197445
|
+
const lspVersion = assessDependency(LSP_PACKAGE_NAME);
|
|
197446
|
+
const nativePreviewVersion = assessDependency(NATIVE_PREVIEW_PACKAGE_NAME);
|
|
197408
197447
|
const prepareScript = "prepare" in (parsed.scripts ?? {}) ? some({
|
|
197409
197448
|
script: parsed.scripts.prepare,
|
|
197410
197449
|
hasPatch: parsed.scripts.prepare.toLowerCase().includes(PATCH_COMMAND)
|
|
@@ -197415,6 +197454,7 @@ const assessPackageJson = (input) => {
|
|
|
197415
197454
|
parsed,
|
|
197416
197455
|
text: input.text,
|
|
197417
197456
|
lspVersion,
|
|
197457
|
+
nativePreviewVersion,
|
|
197418
197458
|
prepareScript
|
|
197419
197459
|
};
|
|
197420
197460
|
};
|
|
@@ -197685,6 +197725,25 @@ function insertNodeAtEndOfList(tracker, sourceFile, nodeArray, newNode) {
|
|
|
197685
197725
|
tracker.insertNodeAt(sourceFile, lastElement.end, newNode, { prefix: ",\n" });
|
|
197686
197726
|
}
|
|
197687
197727
|
}
|
|
197728
|
+
function findDependencyCollectionProperty(rootObj, dependencyType) {
|
|
197729
|
+
return findPropertyInObject(rootObj, dependencyType);
|
|
197730
|
+
}
|
|
197731
|
+
function upsertDependency(tracker, sourceFile, rootObj, dependencyName, dependency) {
|
|
197732
|
+
const depsProperty = findDependencyCollectionProperty(rootObj, dependency.dependencyType);
|
|
197733
|
+
if (!depsProperty) {
|
|
197734
|
+
const newDepsProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(dependency.dependencyType), import_typescript.factory.createObjectLiteralExpression([import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(dependencyName), import_typescript.factory.createStringLiteral(dependency.version))], false));
|
|
197735
|
+
insertNodeAtEndOfList(tracker, sourceFile, rootObj.properties, newDepsProp);
|
|
197736
|
+
return;
|
|
197737
|
+
}
|
|
197738
|
+
if (!import_typescript.isObjectLiteralExpression(depsProperty.initializer)) return;
|
|
197739
|
+
const existingProperty = findPropertyInObject(depsProperty.initializer, dependencyName);
|
|
197740
|
+
if (!existingProperty) {
|
|
197741
|
+
const newDepProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(dependencyName), import_typescript.factory.createStringLiteral(dependency.version));
|
|
197742
|
+
insertNodeAtEndOfList(tracker, sourceFile, depsProperty.initializer.properties, newDepProp);
|
|
197743
|
+
return;
|
|
197744
|
+
}
|
|
197745
|
+
if (import_typescript.isStringLiteral(existingProperty.initializer) && existingProperty.initializer.text !== dependency.version) tracker.replaceNode(sourceFile, existingProperty.initializer, import_typescript.factory.createStringLiteral(dependency.version));
|
|
197746
|
+
}
|
|
197688
197747
|
function createDiagnosticSeverityObject(severities) {
|
|
197689
197748
|
const entries = Object.entries(severities).sort(([a], [b]) => a.localeCompare(b));
|
|
197690
197749
|
return import_typescript.factory.createObjectLiteralExpression(entries.map(([name, severity]) => import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(name), import_typescript.factory.createStringLiteral(severity))), true);
|
|
@@ -197734,6 +197793,14 @@ const computePackageJsonChanges = (current, target) => {
|
|
|
197734
197793
|
if (!rootObj) return emptyFileChangesResult();
|
|
197735
197794
|
const ctx = createTrackerContext();
|
|
197736
197795
|
const fileChange = tsInternal.textChanges.ChangeTracker.with(ctx, (tracker) => {
|
|
197796
|
+
const shouldAddNativePreviewWithDependencyType = (dependencyType) => isSome(target.nativePreviewVersion) && isNone(current.nativePreviewVersion) && target.nativePreviewVersion.value.dependencyType === dependencyType;
|
|
197797
|
+
const ensureNativePreviewDependency = () => {
|
|
197798
|
+
if (isNone(target.nativePreviewVersion) || isSome(current.nativePreviewVersion)) return;
|
|
197799
|
+
const targetNativePreview = target.nativePreviewVersion.value;
|
|
197800
|
+
if (!findDependencyCollectionProperty(rootObj, targetNativePreview.dependencyType) && isSome(target.lspVersion) && target.lspVersion.value.dependencyType === targetNativePreview.dependencyType) return;
|
|
197801
|
+
descriptions.push(`Add ${NATIVE_PREVIEW_PACKAGE_NAME}@${targetNativePreview.version} to ${targetNativePreview.dependencyType}`);
|
|
197802
|
+
upsertDependency(tracker, current.sourceFile, rootObj, NATIVE_PREVIEW_PACKAGE_NAME, targetNativePreview);
|
|
197803
|
+
};
|
|
197737
197804
|
if (isSome(target.lspVersion)) {
|
|
197738
197805
|
const targetDepType = target.lspVersion.value.dependencyType;
|
|
197739
197806
|
const targetVersion = target.lspVersion.value.version;
|
|
@@ -197747,12 +197814,16 @@ const computePackageJsonChanges = (current, target) => {
|
|
|
197747
197814
|
const lspProperty = findPropertyInObject(oldDepsProperty.initializer, LSP_PACKAGE_NAME);
|
|
197748
197815
|
if (lspProperty) deleteNodeFromList(tracker, current.sourceFile, oldDepsProperty.initializer.properties, lspProperty);
|
|
197749
197816
|
}
|
|
197750
|
-
const newDepsProperty =
|
|
197751
|
-
const newLspProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion));
|
|
197817
|
+
const newDepsProperty = findDependencyCollectionProperty(rootObj, targetDepType);
|
|
197752
197818
|
if (!newDepsProperty) {
|
|
197753
|
-
const
|
|
197819
|
+
const dependencyProperties = [import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion))];
|
|
197820
|
+
if (shouldAddNativePreviewWithDependencyType(targetDepType)) {
|
|
197821
|
+
const targetNativePreview = target.nativePreviewVersion.pipe(getOrUndefined);
|
|
197822
|
+
if (targetNativePreview) dependencyProperties.push(import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(NATIVE_PREVIEW_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetNativePreview.version)));
|
|
197823
|
+
}
|
|
197824
|
+
const newDepsProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(targetDepType), import_typescript.factory.createObjectLiteralExpression(dependencyProperties, false));
|
|
197754
197825
|
insertNodeAtEndOfList(tracker, current.sourceFile, rootObj.properties, newDepsProp);
|
|
197755
|
-
} else if (import_typescript.isObjectLiteralExpression(newDepsProperty.initializer)) insertNodeAtEndOfList(tracker, current.sourceFile, newDepsProperty.initializer.properties,
|
|
197826
|
+
} else if (import_typescript.isObjectLiteralExpression(newDepsProperty.initializer)) insertNodeAtEndOfList(tracker, current.sourceFile, newDepsProperty.initializer.properties, import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion)));
|
|
197756
197827
|
} else if (currentVersion !== targetVersion) {
|
|
197757
197828
|
descriptions.push(`Update ${LSP_PACKAGE_NAME} from ${currentVersion} to ${targetVersion}`);
|
|
197758
197829
|
const depsProperty = findPropertyInObject(rootObj, targetDepType);
|
|
@@ -197763,15 +197834,18 @@ const computePackageJsonChanges = (current, target) => {
|
|
|
197763
197834
|
}
|
|
197764
197835
|
} else {
|
|
197765
197836
|
descriptions.push(`Add ${LSP_PACKAGE_NAME}@${targetVersion} to ${targetDepType}`);
|
|
197766
|
-
const depsProperty =
|
|
197837
|
+
const depsProperty = findDependencyCollectionProperty(rootObj, targetDepType);
|
|
197767
197838
|
if (!depsProperty) {
|
|
197768
|
-
const
|
|
197839
|
+
const dependencyProperties = [import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion))];
|
|
197840
|
+
if (shouldAddNativePreviewWithDependencyType(targetDepType)) {
|
|
197841
|
+
const targetNativePreview = target.nativePreviewVersion.pipe(getOrUndefined);
|
|
197842
|
+
if (targetNativePreview) dependencyProperties.push(import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(NATIVE_PREVIEW_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetNativePreview.version)));
|
|
197843
|
+
}
|
|
197844
|
+
const newDepsProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(targetDepType), import_typescript.factory.createObjectLiteralExpression(dependencyProperties, false));
|
|
197769
197845
|
insertNodeAtEndOfList(tracker, current.sourceFile, rootObj.properties, newDepsProp);
|
|
197770
|
-
} else if (import_typescript.isObjectLiteralExpression(depsProperty.initializer))
|
|
197771
|
-
const newLspProp = import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion));
|
|
197772
|
-
insertNodeAtEndOfList(tracker, current.sourceFile, depsProperty.initializer.properties, newLspProp);
|
|
197773
|
-
}
|
|
197846
|
+
} else if (import_typescript.isObjectLiteralExpression(depsProperty.initializer)) insertNodeAtEndOfList(tracker, current.sourceFile, depsProperty.initializer.properties, import_typescript.factory.createPropertyAssignment(import_typescript.factory.createStringLiteral(LSP_PACKAGE_NAME), import_typescript.factory.createStringLiteral(targetVersion)));
|
|
197774
197847
|
}
|
|
197848
|
+
ensureNativePreviewDependency();
|
|
197775
197849
|
} else if (isSome(current.lspVersion)) {
|
|
197776
197850
|
descriptions.push(`Remove ${LSP_PACKAGE_NAME} from dependencies`);
|
|
197777
197851
|
const currentDepType = current.lspVersion.value.dependencyType;
|
|
@@ -199612,6 +199686,7 @@ function createRulePrompt(rules, initialSeverities) {
|
|
|
199612
199686
|
const fromAssessment = (inputState) => ({
|
|
199613
199687
|
packageJson: {
|
|
199614
199688
|
lspVersion: inputState.packageJson.lspVersion,
|
|
199689
|
+
nativePreviewVersion: inputState.packageJson.nativePreviewVersion,
|
|
199615
199690
|
prepareScript: map$9(inputState.packageJson.prepareScript, (_) => _.hasPatch).pipe(getOrElse$1(() => false))
|
|
199616
199691
|
},
|
|
199617
199692
|
tsconfig: { diagnosticSeverities: inputState.tsconfig.currentDiagnosticSeverities },
|
|
@@ -199783,6 +199858,7 @@ const gatherTargetState = (assessment, context) => gen(function* () {
|
|
|
199783
199858
|
if (lspDependencyType === "no") return {
|
|
199784
199859
|
packageJson: {
|
|
199785
199860
|
lspVersion: none$3(),
|
|
199861
|
+
nativePreviewVersion: assessment.packageJson.nativePreviewVersion,
|
|
199786
199862
|
prepareScript: false
|
|
199787
199863
|
},
|
|
199788
199864
|
tsconfig: { diagnosticSeverities: none$3() },
|
|
@@ -199840,6 +199916,10 @@ const gatherTargetState = (assessment, context) => gen(function* () {
|
|
|
199840
199916
|
dependencyType: lspDependencyType,
|
|
199841
199917
|
version: context.defaultLspVersion
|
|
199842
199918
|
}),
|
|
199919
|
+
nativePreviewVersion: orElse(assessment.packageJson.nativePreviewVersion, () => some({
|
|
199920
|
+
dependencyType: lspDependencyType,
|
|
199921
|
+
version: DEFAULT_NATIVE_PREVIEW_VERSION
|
|
199922
|
+
})),
|
|
199843
199923
|
prepareScript: true
|
|
199844
199924
|
},
|
|
199845
199925
|
tsconfig: { diagnosticSeverities },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/tsgo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Effect Language Service for TypeScript-Go — Effect-specific diagnostics and hover features.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"optionalDependencies": {
|
|
25
|
-
"@effect/tsgo-win32-x64": "0.1.
|
|
26
|
-
"@effect/tsgo-win32-arm64": "0.1.
|
|
27
|
-
"@effect/tsgo-linux-x64": "0.1.
|
|
28
|
-
"@effect/tsgo-linux-arm64": "0.1.
|
|
29
|
-
"@effect/tsgo-linux-arm": "0.1.
|
|
30
|
-
"@effect/tsgo-darwin-x64": "0.1.
|
|
31
|
-
"@effect/tsgo-darwin-arm64": "0.1.
|
|
25
|
+
"@effect/tsgo-win32-x64": "0.1.1",
|
|
26
|
+
"@effect/tsgo-win32-arm64": "0.1.1",
|
|
27
|
+
"@effect/tsgo-linux-x64": "0.1.1",
|
|
28
|
+
"@effect/tsgo-linux-arm64": "0.1.1",
|
|
29
|
+
"@effect/tsgo-linux-arm": "0.1.1",
|
|
30
|
+
"@effect/tsgo-darwin-x64": "0.1.1",
|
|
31
|
+
"@effect/tsgo-darwin-arm64": "0.1.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@effect/platform-node": "^4.0.0-beta.40",
|