merge-anything icon indicating copy to clipboard operation
merge-anything copied to clipboard

limit version of ts-toolbelt to 8.0.x

Open xenoterracide opened this issue 5 years ago • 3 comments

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.

xenoterracide avatar Nov 12 '20 10:11 xenoterracide

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 avatar Mar 07 '22 14:03 ivan-aksamentov

@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 avatar Mar 07 '22 16:03 mesqueeb

@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 R with W in S ~

node_modules/ts-toolbelt/out/String/Replace.d.ts:8:22 - error TS1005: ';' expected.

8 * Replace R with W in S ~

node_modules/ts-toolbelt/out/String/Replace.d.ts:8:29 - error TS1005: ';' expected.

8 * Replace R with W in S ~

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 S by D into a [[List]] ~

node_modules/ts-toolbelt/out/String/Split.d.ts:12:18 - error TS1005: ';' expected.

12 * Split S by D into a [[List]] ~

node_modules/ts-toolbelt/out/String/Split.d.ts:18:1 - error TS1160: Unterminated template literal.

18

Found 75 errors.

ivan-aksamentov avatar Mar 07 '22 16:03 ivan-aksamentov

@ivan-aksamentov @xenoterracide ts-toolbelt was removed! I completely rewrote the types myself 😍

mesqueeb avatar Nov 15 '22 06:11 mesqueeb