put all the type definitions in the same place

This commit is contained in:
ewin 2025-03-10 00:58:38 -04:00
parent dac0a80d47
commit 8f2f475043
Signed by: erin
SSH key fingerprint: SHA256:swjoHhREbZPbWe+gyJNi24d4NAxJSyUIm3fpZj4z3wc
2 changed files with 7 additions and 7 deletions

View file

@ -1,13 +1,9 @@
import {IRawGrammar} from 'vscode-textmate';
import {type Overwrite} from './util.mts';
// vscode-textmate doesn't expose anything else so fine we'll do it ourselves
type AllOptionalWritable<T> = { -readonly [K in keyof T]?: T[K] };
export type Overwrite<T, U> = {
[K in keyof (T & U)]: K extends keyof U ? U[K]
: K extends keyof T ? T[K]
: never;
};
type RemoveLocation<T> = Omit<T, '$vscodeTextmateLocation'>;
type Cleanup<T, Overrides = unknown> = AllOptionalWritable<

View file

@ -1,6 +1,10 @@
import {Overwrite} from './grammar.mts';
export type Overwrite<T, U> = {
[K in keyof (T & U)]: K extends keyof U ? U[K]
: K extends keyof T ? T[K]
: never;
};
type AllMerged<Objects extends any[]> = Objects extends
export type AllMerged<Objects extends any[]> = Objects extends
[infer T, infer U, ...infer Rest] ? AllMerged<[Overwrite<T, U>, ...Rest]>
: Objects extends [infer T, ...infer Rest] ? T
: Objects extends (infer Rest)[] ? Rest