@marko/language-tools 2.5.36 → 2.5.37

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/index.js CHANGED
@@ -2118,9 +2118,9 @@ export { type Component }
2118
2118
  );
2119
2119
  } else {
2120
2120
  this.#extractor.write(
2121
- `/** @typedef {${varShared("resolveComponent")}(import("${stripExt(
2121
+ `/** @typedef {${varShared("ResolveComponent")}<typeof import("${stripExt(
2122
2122
  (0, import_relative_import_path.relativeImportPath)(this.#filename, componentFileName)
2123
- )}"))} Component */
2123
+ )}")>} Component */
2124
2124
  `
2125
2125
  );
2126
2126
  }
package/dist/index.mjs CHANGED
@@ -2081,9 +2081,9 @@ export { type Component }
2081
2081
  );
2082
2082
  } else {
2083
2083
  this.#extractor.write(
2084
- `/** @typedef {${varShared("resolveComponent")}(import("${stripExt(
2084
+ `/** @typedef {${varShared("ResolveComponent")}<typeof import("${stripExt(
2085
2085
  relativeImportPath(this.#filename, componentFileName)
2086
- )}"))} Component */
2086
+ )}")>} Component */
2087
2087
  `
2088
2088
  );
2089
2089
  }
@@ -162,15 +162,6 @@ declare global {
162
162
  export function resolveTemplate<Template>(
163
163
  imported: Promise<{ default: Template }>,
164
164
  ): Template;
165
- export function resolveComponent<Component>(
166
- component: Component,
167
- ): CheckNever<
168
- (Component extends { default: infer Component }
169
- ? Component
170
- : Component) &
171
- Marko.Component<unknown, unknown>,
172
- Marko.Component<unknown, unknown>
173
- >;
174
165
  export function fallbackTemplate<Tag, Template>(
175
166
  tag: Tag,
176
167
  fallback: Promise<{ default: Template }>,
@@ -470,6 +461,17 @@ declare global {
470
461
  (): () => <Input>(input: Input) => ReturnAndScope<Scopes<Input>, void>;
471
462
  }
472
463
 
464
+ export type ResolveComponent<Component> = CheckNever<
465
+ ComponentOf<
466
+ InstanceOf<
467
+ Component extends { default: infer Component }
468
+ ? Component
469
+ : Component
470
+ >
471
+ >,
472
+ Marko.Component
473
+ >;
474
+
473
475
  export type Relate<A, B> = B extends A ? A : B;
474
476
  }
475
477
  }
@@ -631,6 +633,8 @@ type KnownRecordKeys<T> = keyof {
631
633
  };
632
634
 
633
635
  type CheckNever<T, If, Else = T> = [T] extends [never] ? If : Else;
636
+ type ComponentOf<T> = T extends Marko.Component ? T : T & Marko.Component;
637
+ type InstanceOf<T> = T extends abstract new () => infer R ? R : T;
634
638
 
635
639
  type UnionToIntersection<T> = (T extends any ? (_: T) => any : never) extends (
636
640
  _: infer U,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@marko/language-tools",
3
3
  "description": "Marko Language Tools",
4
- "version": "2.5.36",
4
+ "version": "2.5.37",
5
5
  "bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
6
6
  "peerDependencies": {
7
7
  "@marko/compiler": "^5.28.4"