Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
"playwright": "^1.52.0",
"prettier": "^3.5.3",
"rimraf": "^6.0.1",
"tstyche": "^4.1.0",
"tstyche": "^5.0.0-beta.1",
"tsx": "^4.19.4",
"typescript": "^5.8.3",
"vite": "^6.1.1",
Expand Down
11 changes: 6 additions & 5 deletions packages/effect/dtslint/Either.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,10 +220,11 @@ describe("Either", () => {
)
).type.toBe<Either.Either<readonly [string, ...Array<string>], "b" | Error>>()

// TODO: this doesn't work but it should
expect.fail(
// @tstyche fixme -- This doesn't work but it should
expect(
Either.filterOrLeft(literal$Error, Predicate.isString, (a) => {
expect.fail(a).type.toBe<"a">()
// @tstyche fixme -- This doesn't work but it should
expect(a).type.toBe<"a">()
return "b" as const
})
).type.toBe<Either.Either<"a", "b" | Error>>()
Expand All @@ -237,8 +238,8 @@ describe("Either", () => {
)
).type.toBe<Either.Either<"a", "b" | Error>>()

// TODO: this doesn't work but it should
expect.fail(
// @tstyche fixme -- This doesn't work but it should
expect(
Either.filterOrLeft(literal$Error, Predicate.isString, (_s: string) => "b" as const)
).type.toBe<Either.Either<"a", "b" | Error>>()
expect(
Expand Down
8 changes: 4 additions & 4 deletions packages/effect/dtslint/Exit.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ describe("Exit", () => {
if (Exit.exists(stringOrNumber$string, Predicate.isString)) {
expect(stringOrNumber$string).type.toBe<Exit.Exit<string, never>>()
}
// TODO
// if (pipe(stringOrNumber$string, Exit.exists(Predicate.isString))) {
// expect(stringOrNumber$string).type.toBe<Exit.Exit<string, never>>()
// }
if (pipe(stringOrNumber$string, Exit.exists(Predicate.isString))) {
// @tstyche fixme -- This doesn't work but it should
expect(stringOrNumber$string).type.toBe<Exit.Exit<string, never>>()
}
if (Exit.exists(Predicate.isString)(stringOrNumber$string)) {
expect(stringOrNumber$string).type.toBe<Exit.Exit<string, never>>()
}
Expand Down
8 changes: 4 additions & 4 deletions packages/effect/dtslint/HashSet.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ describe("HashSet", () => {
if (HashSet.every(numberOrString, Predicate.isString)) {
expect(numberOrString).type.toBe<HashSet.HashSet<string>>()
}
// TODO
// if (pipe(numberOrString, HashSet.every(Predicate.isString))) {
// expect(numberOrString).type.toBe<HashSet.HashSet<string>>()
// }
if (pipe(numberOrString, HashSet.every(Predicate.isString))) {
// @tstyche fixme -- This doesn't work but it should
expect(numberOrString).type.toBe<HashSet.HashSet<string>>()
}
if (HashSet.every(Predicate.isString)(numberOrString)) {
expect(numberOrString).type.toBe<HashSet.HashSet<string>>()
}
Expand Down
16 changes: 8 additions & 8 deletions packages/effect/dtslint/List.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ describe("List", () => {
if (List.every(numberOrString, Predicate.isString)) {
expect(numberOrString).type.toBe<List.List<string>>()
}
// TODO
// if (pipe(numberOrString, List.every(Predicate.isString))) {
// expect(numberOrString).type.toBe<List.List<string>>()
// }
if (pipe(numberOrString, List.every(Predicate.isString))) {
// @tstyche fixme -- This doesn't work but it should
expect(numberOrString).type.toBe<List.List<string>>()
}
if (List.every(Predicate.isString)(numberOrString)) {
expect(numberOrString).type.toBe<List.List<string>>()
}
Expand All @@ -41,10 +41,10 @@ describe("List", () => {
if (List.some(numberOrString, Predicate.isString)) {
expect(numberOrString).type.toBe<List.Cons<string | number>>()
}
// TODO
// if (pipe(numberOrString, List.some(Predicate.isString))) {
// expect(numberOrString).type.toBe<List.Cons<string | number>>()
// }
if (pipe(numberOrString, List.some(Predicate.isString))) {
// @tstyche fixme -- This doesn't work but it should
expect(numberOrString).type.toBe<List.Cons<string | number>>()
}
if (List.some(Predicate.isString)(numberOrString)) {
expect(numberOrString).type.toBe<List.Cons<string | number>>()
}
Expand Down
12 changes: 6 additions & 6 deletions packages/effect/dtslint/Match.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -237,23 +237,23 @@ describe("Match", () => {
const match = pipe(
Match.type<Uint8Array | Uint16Array>(),
Match.when(Match.instanceOf(Uint8Array), (v) => {
// @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint8Array' was not generic
// @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint8Array' was not generic
expect(v).type.toBe<Uint8Array<ArrayBuffer>>()
// @tstyche if { target: ["<5.7"] }
// @tstyche if { target: "<5.7" }
expect(v).type.toBe<Uint8Array>()
return "uint8"
}),
Match.when(Match.instanceOf(Uint16Array), (v) => {
// @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint16Array' was not generic
// @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint16Array' was not generic
expect(v).type.toBe<Uint16Array<ArrayBuffer>>()
// @tstyche if { target: ["<5.7"] }
// @tstyche if { target: "<5.7" }
expect(v).type.toBe<Uint16Array>()
return "uint16"
}),
Match.orElse((v) => {
// @tstyche if { target: [">=5.7"] } -- Before TypeScript 5.7, 'Uint8Array' and 'Uint16Array' were not generic
// @tstyche if { target: ">=5.7" } -- Before TypeScript 5.7, 'Uint8Array' and 'Uint16Array' were not generic
expect(v).type.toBe<Uint8Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike>>()
// @tstyche if { target: ["<5.7"] }
// @tstyche if { target: "<5.7" }
expect(v).type.toBe<Uint8Array | Uint16Array>()
return "a"
})
Expand Down
80 changes: 40 additions & 40 deletions packages/effect/dtslint/Number.tst.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe("Number", () => {
const numOrString: number | string = 123
if (Number.isNumber(numOrString)) {
expect(numOrString).type.toBe<number>()
expect(numOrString).type.not.toBeAssignableWith<string>()
expect(numOrString).type.not.toBeAssignableFrom<string>()
}
})

Expand All @@ -29,8 +29,8 @@ describe("Number", () => {
type DataFirst = typeof Number.sum

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.sum(a, b)).type.toBe<number>()
Expand All @@ -43,8 +43,8 @@ describe("Number", () => {
type DataFirst = typeof Number.subtract

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.subtract(a, b)).type.toBe<number>()
Expand All @@ -57,9 +57,9 @@ describe("Number", () => {
type DataFirst = typeof Number.multiply

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.multiply(a, b)).type.toBe<number>()
Expand All @@ -72,9 +72,9 @@ describe("Number", () => {
type DataFirst = typeof Number.divide

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.divide(a, b)).type.toBe<Option.Option<number>>()
Expand All @@ -87,9 +87,9 @@ describe("Number", () => {
type DataFirst = typeof Number.unsafeDivide

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.unsafeDivide(a, b)).type.toBe<number>()
Expand All @@ -100,7 +100,7 @@ describe("Number", () => {
type DataFirst = typeof Number.increment

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.increment(a)).type.toBe<number>()
Expand All @@ -111,7 +111,7 @@ describe("Number", () => {
type DataFirst = typeof Number.decrement

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.decrement(a)).type.toBe<number>()
Expand All @@ -122,7 +122,7 @@ describe("Number", () => {
type DataFirst = typeof Number.Equivalence

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

// test the output type
expect(Number.Equivalence(a, b)).type.toBe<boolean>()
Expand All @@ -132,7 +132,7 @@ describe("Number", () => {
type DataFirst = typeof Number.Order

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

// test the output type
expect(Number.Order(a, b)).type.toBe<-1 | 0 | 1>()
Expand All @@ -144,8 +144,8 @@ describe("Number", () => {
type DataFirst = typeof Number.lessThan

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.lessThan(a, b)).type.toBe<boolean>()
Expand All @@ -158,9 +158,9 @@ describe("Number", () => {
type DataFirst = typeof Number.lessThanOrEqualTo

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.lessThanOrEqualTo(a, b)).type.toBe<boolean>()
Expand All @@ -173,9 +173,9 @@ describe("Number", () => {
type DataFirst = typeof Number.greaterThan

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.greaterThan(a, b)).type.toBe<boolean>()
Expand All @@ -188,9 +188,9 @@ describe("Number", () => {
type DataFirst = typeof Number.greaterThanOrEqualTo

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.greaterThanOrEqualTo(a, b)).type.toBe<boolean>()
Expand All @@ -205,11 +205,11 @@ describe("Number", () => {
type DataFirst = typeof Number.between

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<
[number, { minimum: number; maximum: number }]
>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.between(a, options)).type.toBe<boolean>()
Expand All @@ -224,11 +224,11 @@ describe("Number", () => {
type DataFirst = typeof Number.clamp

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<
[number, { minimum: number; maximum: number }]
>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.clamp(a, options)).type.toBe<number>()
Expand All @@ -241,9 +241,9 @@ describe("Number", () => {
type DataFirst = typeof Number.min

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.min(a, b)).type.toBe<number>()
Expand All @@ -256,9 +256,9 @@ describe("Number", () => {
type DataFirst = typeof Number.max

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.max(a, b)).type.toBe<number>()
Expand All @@ -269,7 +269,7 @@ describe("Number", () => {
type DataFirst = typeof Number.sign

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.sign(a)).type.toBe<-1 | 0 | 1>()
Expand All @@ -279,7 +279,7 @@ describe("Number", () => {
type DataFirst = typeof Number.sumAll

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<
[Iterable<number>]
>()

Expand All @@ -292,7 +292,7 @@ describe("Number", () => {
type DataFirst = typeof Number.multiplyAll

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<
[Iterable<number>]
>()

Expand All @@ -309,9 +309,9 @@ describe("Number", () => {
type DataFirst = typeof Number.remainder

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.remainder(a, b)).type.toBe<number>()
Expand All @@ -322,7 +322,7 @@ describe("Number", () => {
type DataFirst = typeof Number.nextPow2

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.nextPow2(a)).type.toBe<number>()
Expand All @@ -332,7 +332,7 @@ describe("Number", () => {
type DataFirst = typeof Number.parse

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[string]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[string]>()

// test the output type
expect(Number.parse("123")).type.toBe<Option.Option<number>>()
Expand All @@ -344,9 +344,9 @@ describe("Number", () => {
type DataFirst = typeof Number.round

// test the input type
expect<Parameters<DataFirst>>().type.toBeAssignableWith<[number, number]>()
expect<Parameters<DataFirst>>().type.toBeAssignableFrom<[number, number]>()

expect<Parameters<DataLast>>().type.toBeAssignableWith<[number]>()
expect<Parameters<DataLast>>().type.toBeAssignableFrom<[number]>()

// test the output type
expect(Number.round(a, 2)).type.toBe<number>()
Expand Down
Loading