put all the type definitions in the same place
This commit is contained in:
parent
dac0a80d47
commit
8f2f475043
|
@ -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<
|
||||
|
|
8
util.mts
8
util.mts
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue