From 8f2f47504345c654785fdeba2379984e052af13a Mon Sep 17 00:00:00 2001 From: ewin <git@ewin.moe> Date: Mon, 10 Mar 2025 00:58:38 -0400 Subject: [PATCH] put all the type definitions in the same place --- grammar.mts | 6 +----- util.mts | 8 ++++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/grammar.mts b/grammar.mts index 60a1898..30b289b 100644 --- a/grammar.mts +++ b/grammar.mts @@ -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< diff --git a/util.mts b/util.mts index bc4d781..e067173 100644 --- a/util.mts +++ b/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