merge-anything
merge-anything copied to clipboard
limit version of ts-toolbelt to 8.0.x
ts-toolbelt does not compile with 8.4.0, so we should only depend on 8.0
resolves: #13
.yarn/cache/ts-toolbelt-npm-8.4.0-f6995cd030-dbc3ad2626.zip/node_modules/ts-toolbelt/out/index.d.ts:983:46 - error TS1110: Type expected.
983 export type NumberOf<N extends number> = `${N}`;
NOTE: I did not update the package lock, so that would need to be updated.
This just broke our build.
Consider dropping ts-toolbelt dependency or inlining the of part that is needed.
Same for is-what. Perhaps Array.isArray() can be used instead.
merge-anything is a tiny 1-function package, and will be much better without relying on any dependencies.
@ivan-aksamentov what's the compile issue you ran into? I cannot reproduce this issue so not sure about this one.
ts-toolbelt I'm ok extracting what I need for this library, but looking at their codebase it's very complex. Can you help me with it?
is-what is made in-house, I made that library myself so, there is no real difference between using that or re-writing the same code for this package... Other than for marketing purposes I guess. But I don't see the value.
@mesqueeb There were Typescript errors
https://app.circleci.com/pipelines/github/hodcroftlab/covariants/498/workflows/0106cf4e-1095-44f3-8198-24f65d25623a/jobs/372
We are still on Typescript 4.0.x. That might be the reason (or not).
I managed to fix it by pinning the ts-tollbelt pacakge to 8.0.x using yarn resolutions (https://github.com/hodcroftlab/covariants/commit/0ccebce96994cda5bb2b0f526476f8780ec9fa56)
tsc error log (click to expand)
$ tsc --project tsconfig.json --noEmit node_modules/ts-toolbelt/out/Any/At.d.ts:24:121 - error TS1110: Type expected.24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~~~node_modules/ts-toolbelt/out/Any/At.d.ts:24:168 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~node_modules/ts-toolbelt/out/Any/At.d.ts:24:172 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~~~~~~~node_modules/ts-toolbelt/out/Any/At.d.ts:24:186 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~node_modules/ts-toolbelt/out/Any/At.d.ts:24:207 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~node_modules/ts-toolbelt/out/Any/At.d.ts:24:217 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~~~~~~~node_modules/ts-toolbelt/out/Any/At.d.ts:24:241 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~~~~~~~node_modules/ts-toolbelt/out/Any/At.d.ts:24:255 - error TS1005: ';' expected.
24 export declare type At<A extends any, K extends Key> = A extends List ? number extends A['length'] ? K extends number |
${number}? A[never] | undefined : undefined : K extends keyof A ? A[K] : undefined : unknown extends A ? unknown : K extends keyof A ? A[K] : undefined; ~node_modules/ts-toolbelt/out/Iteration/IterationOf.d.ts:20:53 - error TS1110: Type expected.
20 export declare type IterationOf<N extends number> =
${N}extends keyof IterationMap ? IterationMap[${N}] : IterationMap['__']; ~~~node_modules/ts-toolbelt/out/Iteration/IterationOf.d.ts:20:60 - error TS1005: ';' expected.
20 export declare type IterationOf<N extends number> =
${N}extends keyof IterationMap ? IterationMap[${N}] : IterationMap['__']; ~~~~~~~node_modules/ts-toolbelt/out/Iteration/IterationOf.d.ts:20:74 - error TS1005: ';' expected.
20 export declare type IterationOf<N extends number> =
${N}extends keyof IterationMap ? IterationMap[${N}] : IterationMap['__']; ~~~~~~~~~~~~node_modules/ts-toolbelt/out/Iteration/Key.d.ts:16:48 - error TS1110: Type expected.
16 export declare type Key<I extends Iteration> =
${I[0]}; ~~~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:94 - error TS1005: '>' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~~~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:115 - error TS1109: Expression expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~~~~~~~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:129 - error TS1005: ';' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:135 - error TS1005: ':' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~~~~~~~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:169 - error TS1005: '(' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:177 - error TS1005: ',' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~node_modules/ts-toolbelt/out/List/AtLeast.d.ts:25:184 - error TS1005: ')' expected.
25 export declare type AtLeast<L extends List, K extends Key = Keys<L>> = OAtLeast<ObjectOf<L>,
${K & number}| K> extends infer U ? U extends unknown ? _ListOf<U & {}> : never : never; ~node_modules/ts-toolbelt/out/List/Either.d.ts:18:110 - error TS1005: '>' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~~~node_modules/ts-toolbelt/out/List/Either.d.ts:18:139 - error TS1109: Expression expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~~~~~~~node_modules/ts-toolbelt/out/List/Either.d.ts:18:153 - error TS1005: ';' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~~node_modules/ts-toolbelt/out/List/Either.d.ts:18:161 - error TS1005: ':' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~~~~~~~node_modules/ts-toolbelt/out/List/Either.d.ts:18:196 - error TS1005: '(' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~node_modules/ts-toolbelt/out/List/Either.d.ts:18:204 - error TS1005: ',' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~node_modules/ts-toolbelt/out/List/Either.d.ts:18:211 - error TS1005: ')' expected.
18 export declare type Either<L extends List, K extends Key, strict extends Boolean = 1> = OEither<ObjectOf<L>,
${K & number}| K, strict> extends infer OE ? OE extends unknown ? _ListOf<OE & {}> : never : never; ~node_modules/ts-toolbelt/out/List/Has.d.ts:17:130 - error TS1005: '>' expected.
17 export declare type Has<L extends List, K extends Key, M extends any = any, match extends Match = 'default'> = OHas<ObjectOf<L>,
${K & number}| K, M, match>; ~~~node_modules/ts-toolbelt/out/List/Has.d.ts:17:160 - error TS1109: Expression expected.
17 export declare type Has<L extends List, K extends Key, M extends any = any, match extends Match = 'default'> = OHas<ObjectOf<L>,
${K & number}| K, M, match>; ~node_modules/ts-toolbelt/out/List/NonNullable.d.ts:40:126 - error TS1005: '>' expected.
40 export declare type NonNullable<L extends List, K extends Key = Key, depth extends Depth = 'flat'> = Cast<NonNullablePart<L,
${K & number}| K, depth>, List>; ~~~node_modules/ts-toolbelt/out/List/NonNullable.d.ts:40:153 - error TS1109: Expression expected.
40 export declare type NonNullable<L extends List, K extends Key = Key, depth extends Depth = 'flat'> = Cast<NonNullablePart<L,
${K & number}| K, depth>, List>; ~node_modules/ts-toolbelt/out/List/NonNullable.d.ts:40:160 - error TS1109: Expression expected.
40 export declare type NonNullable<L extends List, K extends Key = Key, depth extends Depth = 'flat'> = Cast<NonNullablePart<L,
${K & number}| K, depth>, List>; ~node_modules/ts-toolbelt/out/List/Nullable.d.ts:16:84 - error TS1005: '>' expected.
16 export declare type Nullable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | null | undefined>, List>; ~~~node_modules/ts-toolbelt/out/List/Nullable.d.ts:16:126 - error TS1109: Expression expected.
16 export declare type Nullable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | null | undefined>, List>; ~node_modules/ts-toolbelt/out/List/Nullable.d.ts:16:133 - error TS1109: Expression expected.
16 export declare type Nullable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | null | undefined>, List>; ~node_modules/ts-toolbelt/out/List/Omit.d.ts:9:88 - error TS1005: '>' expected.
9 export declare type _Omit<L extends List, K extends Key> = _ListOf<_OOmit<ObjectOf<L>,
${K & number}| K>>; ~~~node_modules/ts-toolbelt/out/List/Omit.d.ts:9:109 - error TS1109: Expression expected.
9 export declare type _Omit<L extends List, K extends Key> = _ListOf<_OOmit<ObjectOf<L>,
${K & number}| K>>; ~node_modules/ts-toolbelt/out/List/Pick.d.ts:9:88 - error TS1005: '>' expected.
9 export declare type _Pick<L extends List, K extends Key> = _ListOf<_OPick<ObjectOf<L>,
${K & number}| K>>; ~~~node_modules/ts-toolbelt/out/List/Pick.d.ts:9:109 - error TS1109: Expression expected.
9 export declare type _Pick<L extends List, K extends Key> = _ListOf<_OPick<ObjectOf<L>,
${K & number}| K>>; ~node_modules/ts-toolbelt/out/List/Undefinable.d.ts:15:87 - error TS1005: '>' expected.
15 export declare type Undefinable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | undefined>, List>; ~~~node_modules/ts-toolbelt/out/List/Undefinable.d.ts:15:122 - error TS1109: Expression expected.
15 export declare type Undefinable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | undefined>, List>; ~node_modules/ts-toolbelt/out/List/Undefinable.d.ts:15:129 - error TS1109: Expression expected.
15 export declare type Undefinable<L extends List, K extends Key = Key> = Cast<Update<L,
${K & number}| K, x | undefined>, List>; ~node_modules/ts-toolbelt/out/List/Update.d.ts:16:92 - error TS1005: '>' expected.
16 export declare type Update<L extends List, K extends Key, A extends any> = Cast<OUpdate<L,
${K & number}| K, A>, List>; ~~~node_modules/ts-toolbelt/out/List/Update.d.ts:16:115 - error TS1109: Expression expected.
16 export declare type Update<L extends List, K extends Key, A extends any> = Cast<OUpdate<L,
${K & number}| K, A>, List>; ~node_modules/ts-toolbelt/out/List/Update.d.ts:16:122 - error TS1109: Expression expected.
16 export declare type Update<L extends List, K extends Key, A extends any> = Cast<OUpdate<L,
${K & number}| K, A>, List>; ~node_modules/ts-toolbelt/out/Object/ListOf.d.ts:26:198 - error TS1110: Type expected.
26 declare type __ListOf<O extends object> = number extends keyof O ? O[number][] : string extends keyof O ? O[string][] : symbol extends keyof O ? O[symbol][] : ___ListOf<O, Select<keyof O, number |
${number}>>; ~~~node_modules/ts-toolbelt/out/Object/ListOf.d.ts:26:211 - error TS1109: Expression expected.
26 declare type __ListOf<O extends object> = number extends keyof O ? O[number][] : string extends keyof O ? O[string][] : symbol extends keyof O ? O[symbol][] : ___ListOf<O, Select<keyof O, number |
${number}>>; ~node_modules/ts-toolbelt/out/String/Join.d.ts:7:98 - error TS1005: '?' expected.
7 declare type _Join<T extends List, D extends string> = T extends [] ? '' : T extends [Literal] ?
${T[0]}: T extends [Literal, ...infer R] ?${T[0]}${D}${_Join<R, D>}: string; ~~~node_modules/ts-toolbelt/out/String/Join.d.ts:7:108 - error TS1005: ';' expected.
7 declare type _Join<T extends List, D extends string> = T extends [] ? '' : T extends [Literal] ?
${T[0]}: T extends [Literal, ...infer R] ?${T[0]}${D}${_Join<R, D>}: string; ~node_modules/ts-toolbelt/out/String/Join.d.ts:7:112 - error TS1005: ';' expected.
7 declare type _Join<T extends List, D extends string> = T extends [] ? '' : T extends [Literal] ?
${T[0]}: T extends [Literal, ...infer R] ?${T[0]}${D}${_Join<R, D>}: string; ~~~~~~~node_modules/ts-toolbelt/out/String/Join.d.ts:7:139 - error TS1005: ',' expected.
7 declare type _Join<T extends List, D extends string> = T extends [] ? '' : T extends [Literal] ?
${T[0]}: T extends [Literal, ...infer R] ?${T[0]}${D}${_Join<R, D>}: string; ~node_modules/ts-toolbelt/out/String/Join.d.ts:7:169 - error TS1005: '(' expected.
7 declare type _Join<T extends List, D extends string> = T extends [] ? '' : T extends [Literal] ?
${T[0]}: T extends [Literal, ...infer R] ?${T[0]}${D}${_Join<R, D>}: string; ~node_modules/ts-toolbelt/out/String/Join.d.ts:15:1 - error TS1160: Unterminated template literal.
15
node_modules/ts-toolbelt/out/String/Replace.d.ts:6:91 - error TS1110: Type expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~~~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:100 - error TS1005: '}' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:102 - error TS1128: Declaration or statement expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:104 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:108 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:115 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:131 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:132 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:137 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:6:141 - error TS1005: ';' expected.
6 declare type _Replace<S extends string, R extends Literal, W extends Literal> = S extends
${infer BS}${R}${infer AS}? Replace<${BS}${W}${AS}, R, W> : S; ~node_modules/ts-toolbelt/out/String/Replace.d.ts:8:13 - error TS1005: ';' expected.
8 * Replace
RwithWinS~node_modules/ts-toolbelt/out/String/Replace.d.ts:8:22 - error TS1005: ';' expected.
8 * Replace
RwithWinS~node_modules/ts-toolbelt/out/String/Replace.d.ts:8:29 - error TS1005: ';' expected.
8 * Replace
RwithWinS~node_modules/ts-toolbelt/out/String/Replace.d.ts:15:1 - error TS1160: Unterminated template literal.
15
node_modules/ts-toolbelt/out/String/Split.d.ts:6:95 - error TS1110: Type expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~~~node_modules/ts-toolbelt/out/String/Split.d.ts:6:104 - error TS1005: '}' expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~~node_modules/ts-toolbelt/out/String/Split.d.ts:6:106 - error TS1128: Declaration or statement expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~node_modules/ts-toolbelt/out/String/Split.d.ts:6:108 - error TS1005: ';' expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~node_modules/ts-toolbelt/out/String/Split.d.ts:6:112 - error TS1005: ';' expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~node_modules/ts-toolbelt/out/String/Split.d.ts:6:119 - error TS1005: ';' expected.
6 declare type __Split<S extends string, D extends string, T extends string[] = []> = S extends
${infer BS}${D}${infer AS}? __Split<AS, D, [...T, BS]> : [...T, S]; ~~node_modules/ts-toolbelt/out/String/Split.d.ts:12:11 - error TS1005: ';' expected.
12 * Split
SbyDinto a [[List]] ~node_modules/ts-toolbelt/out/String/Split.d.ts:12:18 - error TS1005: ';' expected.
12 * Split
SbyDinto a [[List]] ~node_modules/ts-toolbelt/out/String/Split.d.ts:18:1 - error TS1160: Unterminated template literal.
18
Found 75 errors.
@ivan-aksamentov @xenoterracide ts-toolbelt was removed! I completely rewrote the types myself 😍