@marko/language-server 2.1.21 → 2.1.22

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.
@@ -131,7 +131,9 @@ declare global {
131
131
  : never
132
132
  >;
133
133
 
134
- export function change<const Item>(...item: Item): UnionToIntersection<
134
+ export function change<const Item extends readonly unknown[]>(
135
+ ...item: Item
136
+ ): UnionToIntersection<
135
137
  Item extends
136
138
  | readonly [infer LocalName extends string, infer Data]
137
139
  | readonly [
@@ -397,23 +399,29 @@ declare global {
397
399
  export function mergeAttrTags<Attrs extends readonly any[]>(
398
400
  ...attrs: Attrs
399
401
  ): MergeAttrTags<Attrs>;
400
- export function attrTag<AttrTag>(attrTags: AttrTag[]): AttrTag;
402
+ export function attrTag<
403
+ Name extends string,
404
+ AttrTags extends readonly { [K in Name]: unknown }[],
405
+ >(name: Name, ...attrTags: AttrTags): AttrTagsToAttrTag<Name, AttrTags>;
401
406
  export function attrTagFor<Tag, Path extends readonly string[]>(
402
407
  tag: Tag,
403
408
  ...path: Path
404
409
  ): <
405
- AttrTag extends [0] extends [1 & Tag]
406
- ? Marko.AttrTag<unknown>
407
- : Marko.Input<Tag> extends infer Input
408
- ? [0] extends [1 & Input]
409
- ? Marko.AttrTag<unknown>
410
- : AttrTagValue<Marko.Input<Tag>, Path>
411
- : Marko.AttrTag<unknown>,
410
+ Name extends string,
411
+ AttrTags extends Record<
412
+ Name,
413
+ [0] extends [1 & Tag]
414
+ ? Marko.AttrTag<unknown>
415
+ : Marko.Input<Tag> extends infer Input
416
+ ? [0] extends [1 & Input]
417
+ ? Marko.AttrTag<unknown>
418
+ : AttrTagValue<Marko.Input<Tag>, Path>
419
+ : Marko.AttrTag<unknown>
420
+ >[],
412
421
  >(
413
- attrTags: AttrTag[],
414
- ) => AttrTag extends Marko.AttrTag<infer Input>
415
- ? Marko.AttrTag<Input>
416
- : any;
422
+ name: Name,
423
+ ...attrTags: AttrTags
424
+ ) => AttrTagsToAttrTag<Name, AttrTags>;
417
425
 
418
426
  // TODO: this could be improved.
419
427
  // currently falls back to DefaultRenderer too eagerly.
@@ -585,6 +593,17 @@ type MergeAttrTagValue<A, B> = A extends readonly (infer AType)[]
585
593
  ? A
586
594
  : A | B;
587
595
 
596
+ type AttrTagsToAttrTag<
597
+ Name extends string,
598
+ AttrTags extends readonly unknown[],
599
+ > = AttrTags[number] extends infer AttrTag
600
+ ? AttrTag extends { [K in Name]: Marko.AttrTag<infer Input> }
601
+ ? [0] extends [1 & Input]
602
+ ? never
603
+ : Marko.AttrTag<Input>
604
+ : never
605
+ : never;
606
+
588
607
  type AttrTagByListSize<T, Item> = T extends
589
608
  | readonly [any, ...any[]]
590
609
  | readonly [...any[], any]
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@marko/language-server",
3
3
  "description": "Marko Language Server",
4
- "version": "2.1.21",
4
+ "version": "2.1.22",
5
5
  "bin": {
6
6
  "marko-language-server": "./bin.js"
7
7
  },
8
8
  "bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
9
9
  "dependencies": {
10
10
  "@luxass/strip-json-comments": "^1.4.0",
11
- "@marko/language-tools": "^2.5.47",
11
+ "@marko/language-tools": "^2.5.48",
12
12
  "@marko/compiler": "^5.39.49",
13
13
  "htmljs-parser": "^5.7.4",
14
14
  "marko": "^5.38.18",