Skip to content

Commit

Permalink
Merge branch 'v0.28' into queryid-in-compiled-query
Browse files Browse the repository at this point in the history
  • Loading branch information
igalklebanov authored Jul 7, 2024
2 parents d48f132 + 2ab4e0a commit fcf13b9
Show file tree
Hide file tree
Showing 7 changed files with 147 additions and 31 deletions.
144 changes: 123 additions & 21 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,18 @@ name: tests

on:
push:
branches: [master]
branches: [master, v*]
pull_request:
branches: [master]
branches: [master, v*]

jobs:
run-tests:
node:
name: Node.js
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
bun-version: [1.1.x]
deno-version: [1.42.x]

steps:
- uses: actions/checkout@v4
Expand All @@ -25,43 +24,146 @@ jobs:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run docker compose
run: docker compose up -d

- name: Run node tests
run: npm test

- name: Run esbuild test
run: npm run test:esbuild

node-with-transformer:
name: Node.js /w transformer
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x, 22.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run docker compose
run: docker compose up -d

- name: Run node tests with transformer
run: TEST_TRANSFORMER=1 npm test

deno:
name: Deno
runs-on: ubuntu-latest

strategy:
matrix:
deno-version: [1.42.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Use Deno ${{ matrix.deno-version }}
uses: denoland/setup-deno@v1
with:
deno-version: ${{ matrix.deno-version }}

- name: Use Bun ${{ matrix.bun-version }}
uses: oven-sh/setup-bun@v1
- name: Run docker compose
run: docker compose up -d

- name: Run deno tests
run: npm run test:deno

bun:
name: Bun
runs-on: ubuntu-latest

strategy:
matrix:
bun-version: [1.1.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
bun-version: ${{ matrix.bun-version }}
node-version: 22.x
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Install playwright
run: npx playwright install chromium
- name: Use Bun ${{ matrix.bun-version }}
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ matrix.bun-version }}

- name: Run docker compose
run: docker compose up -d

- name: Run node tests
run: npm test
- name: Run bun tests
run: npm run test:bun

- name: Run node tests with transformer
run: TEST_TRANSFORMER=1 npm test
browser:
name: Browser
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Install playwright
run: npx playwright install chromium

- name: Run browser tests
run: npm run test:browser

- name: Run deno tests
run: npm run test:deno
cloudflare-workers:
name: Cloudflare Workers
runs-on: ubuntu-latest

- name: Run bun tests
run: npm run test:bun
steps:
- uses: actions/checkout@v4

- name: Run esbuild test
run: npm run test:esbuild
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run docker compose
run: docker compose up -d

- name: Run cloudflare workers test
if: matrix.node-version != '18.x'
run: npm run test:cloudflare-workers
4 changes: 2 additions & 2 deletions example/src/util/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export type AuthenticationErrors =

export type UserApiErrors = 'InvalidUser' | 'UserNotFound'

export type SignInMethodApiErros =
export type SignInMethodApiErrors =
| 'InvalidSignInMethod'
| 'UserAlreadyHasSignInMethod'
| 'PasswordTooWeak'
Expand All @@ -21,7 +21,7 @@ export type ErrorCode =
| 'UnknownError'
| AuthenticationErrors
| UserApiErrors
| SignInMethodApiErros
| SignInMethodApiErrors

export type ErrorStatus = 400 | 401 | 403 | 404 | 409 | 500

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kysely",
"version": "0.27.3",
"version": "0.27.4",
"description": "Type safe SQL query builder",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion src/query-builder/merge-query-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ export class WheneableMergeQueryBuilder<
)
}

compile(): CompiledQuery<never> {
compile(): CompiledQuery<O> {
return this.#props.executor.compileQuery(
this.toOperationNode(),
this.#props.queryId,
Expand Down
2 changes: 1 addition & 1 deletion src/util/infer-result.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,5 @@ type ResolveResult<O> = O extends
| UpdateResult
| DeleteResult
| MergeResult
? O
? O[]
: Simplify<O>[]
20 changes: 17 additions & 3 deletions test/typings/test-d/infer-result.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
InferResult,
InsertResult,
Kysely,
MergeResult,
Selectable,
UpdateResult,
} from '..'
Expand Down Expand Up @@ -46,7 +47,7 @@ function testInferResultInsertQuery(db: Kysely<Database>) {
})
const compiledQuery0 = query0.compile()

type Expected0 = InsertResult
type Expected0 = InsertResult[]
expectType<Equals<Expected0, InferResult<typeof query0>>>(true)
expectType<Equals<Expected0, InferResult<typeof compiledQuery0>>>(true)

Expand All @@ -73,7 +74,7 @@ function testInferResultUpdateQuery(db: Kysely<Database>) {
.where('pet.id', '=', '1')
const compiledQuery0 = query0.compile()

type Expected0 = UpdateResult
type Expected0 = UpdateResult[]
expectType<Equals<Expected0, InferResult<typeof query0>>>(true)
expectType<Equals<Expected0, InferResult<typeof compiledQuery0>>>(true)

Expand Down Expand Up @@ -110,7 +111,7 @@ function testInferResultDeleteQuery(db: Kysely<Database>) {
const query0 = db.deleteFrom('pet').where('id', '=', '1')
const compiledQuery0 = query0.compile()

type Expected0 = DeleteResult
type Expected0 = DeleteResult[]
expectType<Equals<Expected0, InferResult<typeof query0>>>(true)
expectType<Equals<Expected0, InferResult<typeof compiledQuery0>>>(true)

Expand All @@ -128,3 +129,16 @@ function testInferResultDeleteQuery(db: Kysely<Database>) {
expectType<Equals<Expected2, InferResult<typeof query2>>>(true)
expectType<Equals<Expected2, InferResult<typeof compiledQuery2>>>(true)
}

function testInferResultMergeQuery(db: Kysely<Database>) {
const query0 = db
.mergeInto('person')
.using('pet', 'pet.owner_id', 'person.id')
.whenMatched()
.thenDelete()
const compiledQuery0 = query0.compile()

type Expected0 = MergeResult[]
expectType<Equals<Expected0, InferResult<typeof query0>>>(true)
expectType<Equals<Expected0, InferResult<typeof compiledQuery0>>>(true)
}

0 comments on commit fcf13b9

Please sign in to comment.