@effect/language-service 0.51.0 → 0.51.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.
Files changed (3) hide show
  1. package/index.js +22 -6
  2. package/index.js.map +1 -1
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -13935,11 +13935,20 @@ var extractLayerGraph = fn("extractLayerGraph")(function* (node, opts) {
13935
13935
  });
13936
13936
  var formatLayerGraph = fn("formatLayerGraph")(function* (layerGraph) {
13937
13937
  const tsUtils = yield* service(TypeScriptUtils);
13938
+ const typeChecker = yield* service(TypeCheckerApi);
13939
+ const ts = yield* service(TypeScriptApi);
13938
13940
  return toMermaid(layerGraph, {
13939
13941
  edgeLabel: (edge) => JSON.stringify(edge),
13940
13942
  nodeLabel: (graphNode) => {
13941
13943
  const sourceFile = tsUtils.getSourceFileOfNode(graphNode.node);
13942
- return sourceFile.text.substring(graphNode.node.pos, graphNode.node.end).trim();
13944
+ let text = sourceFile.text.substring(graphNode.node.pos, graphNode.node.end).trim();
13945
+ text += "\nprovides: " + graphNode.provides.map((_) => typeChecker.typeToString(_, void 0, ts.TypeFormatFlags.NoTruncation)).join(
13946
+ ", "
13947
+ );
13948
+ text += "\nrequires: " + graphNode.requires.map((_) => typeChecker.typeToString(_, void 0, ts.TypeFormatFlags.NoTruncation)).join(
13949
+ ", "
13950
+ );
13951
+ return text;
13943
13952
  }
13944
13953
  });
13945
13954
  });
@@ -14020,7 +14029,7 @@ var formatNestedLayerGraph = fn("formatNestedLayerGraph")(function* (layerGraph)
14020
14029
  var extractOutlineGraph = fn("extractOutlineGraph")(function* (layerGraph) {
14021
14030
  const typeChecker = yield* service(TypeCheckerApi);
14022
14031
  const mutableGraph = beginMutation3(directed());
14023
- const providers = /* @__PURE__ */ new WeakMap();
14032
+ const providers = /* @__PURE__ */ new Map();
14024
14033
  const knownSymbols = /* @__PURE__ */ new WeakSet();
14025
14034
  const leafNodes = values2(externals(layerGraph, { direction: "outgoing" }));
14026
14035
  const dedupedLeafNodes = [];
@@ -14047,8 +14056,12 @@ var extractOutlineGraph = fn("extractOutlineGraph")(function* (layerGraph) {
14047
14056
  }
14048
14057
  for (const [nodeIndex, nodeInfo] of entries(nodes(mutableGraph))) {
14049
14058
  for (const requiredType of nodeInfo.requires) {
14050
- for (const providerNodeIndex of providers.get(requiredType) || []) {
14051
- addEdge(mutableGraph, nodeIndex, providerNodeIndex, {});
14059
+ for (const [providedType, providerNodeIndexes] of providers.entries()) {
14060
+ if (requiredType === providedType || typeChecker.isTypeAssignableTo(requiredType, providedType)) {
14061
+ for (const providerNodeIndex of providerNodeIndexes) {
14062
+ addEdge(mutableGraph, nodeIndex, providerNodeIndex, {});
14063
+ }
14064
+ }
14052
14065
  }
14053
14066
  }
14054
14067
  }
@@ -14135,7 +14148,8 @@ var walkLeavesMatching = (graph, predicate, config = {}) => {
14135
14148
  var extractProvidersAndRequirers = fn("extractProvidersAndRequirers")(
14136
14149
  function* (layerGraph) {
14137
14150
  const typeCheckerUtils = yield* service(TypeCheckerUtils);
14138
- const rootWalker = externals(layerGraph, { direction: "outgoing" });
14151
+ const typeChecker = yield* service(TypeCheckerApi);
14152
+ const rootWalker = externals(layerGraph, { direction: "incoming" });
14139
14153
  const rootNodes = fromIterable(values2(rootWalker));
14140
14154
  const rootNodeIndexes = fromIterable(indices(rootWalker));
14141
14155
  const result = [];
@@ -14146,7 +14160,9 @@ var extractProvidersAndRequirers = fn("extractProvidersAndRequirers")(
14146
14160
  for (const layerNode of values2(
14147
14161
  walkLeavesMatching(
14148
14162
  layerGraph,
14149
- (_) => (kind === "provided" ? _.provides : _.requires).indexOf(layerType) > -1,
14163
+ (_) => (kind === "provided" ? _.provides : _.requires).some(
14164
+ (_2) => _2 === layerType || typeChecker.isTypeAssignableTo(_2, layerType)
14165
+ ),
14150
14166
  { start: rootNodeIndexes }
14151
14167
  )
14152
14168
  )) {