Skip to content

Commit

Permalink
feat: add condition for hacky replacment
Browse files Browse the repository at this point in the history
  • Loading branch information
wirekang committed Aug 28, 2023
1 parent 04843b0 commit 8fa8d76
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 4 deletions.
Binary file modified bin/generate
Binary file not shown.
28 changes: 26 additions & 2 deletions generator/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/wirekang/kysely-playground/generator/cmdutils"
"io/fs"
"os"
"strconv"
"strings"
"text/template"
)
Expand Down Expand Up @@ -192,8 +193,11 @@ func generateKyselyHelpersTypeFile(dialect string, module Module, root string) e
if err != nil {
return err
}
newData := bytes.ReplaceAll(data, []byte("expr: SelectQueryBuilder<any, any, O>"), []byte("expr: Expression<O>"))
err = os.WriteFile(out, newData, os.ModePerm)
major, minor, patch, err := parseVersion(version.Name)
if major == 0 && (minor <= 25 || (minor == 26 && patch <= 1)) && strings.HasSuffix(version.ModuleAlias, "helpers/mysql") {
data = bytes.ReplaceAll(data, []byte("expr: SelectQueryBuilder<any, any, O>"), []byte("expr: Expression<O>"))
}
err = os.WriteFile(out, data, os.ModePerm)
if err != nil {
return err
}
Expand All @@ -216,6 +220,26 @@ func reverse[S ~[]E, E any](s S) {
}
}

func parseVersion(name string) (int, int, int, error) {
s := strings.Split(name, ".")
if len(s) != 3 {
return 0, 0, 0, fmt.Errorf("%s is not valid semantic version", name)
}
major, err := strconv.ParseInt(s[0], 10, 32)
if err != nil {
return 0, 0, 0, err
}
minor, err := strconv.ParseInt(s[1], 10, 32)
if err != nil {
return 0, 0, 0, err
}
patch, err := strconv.ParseInt(s[2], 10, 32)
if err != nil {
return 0, 0, 0, err
}
return int(major), int(minor), int(patch), nil
}

func Start() error {
err := clearDirs()
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions src/generated/types/kysely_0.26.2_helpers_mysql.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13120,7 +13120,7 @@ type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = Dra
* from `person`
* ```
*/
declare function jsonArrayFrom<O>(expr: Expression<O>): RawBuilder<Simplify<O>[]>;
declare function jsonArrayFrom<O>(expr: SelectQueryBuilder<any, any, O>): RawBuilder<Simplify<O>[]>;
/**
* A MySQL helper for turning a subquery into a JSON object.
*
Expand Down Expand Up @@ -13169,7 +13169,7 @@ declare function jsonArrayFrom<O>(expr: Expression<O>): RawBuilder<Simplify<O>[]
* from `person`
* ```
*/
declare function jsonObjectFrom<O>(expr: Expression<O>): RawBuilder<Simplify<O> | null>;
declare function jsonObjectFrom<O>(expr: SelectQueryBuilder<any, any, O>): RawBuilder<Simplify<O> | null>;
/**
* The MySQL `json_object` function.
*
Expand Down
15 changes: 15 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1446,6 +1446,21 @@ jsonc-parser@^3.2.0:
resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.26.0.tgz#22591d77dbfb4406c55f431c25ff02bd94d7cee1"
integrity sha512-uj4wsWeWyGYoJlT4vNjO5wMjZxYp55I+igJJsJGe12R2WDZ4AWHNyRRMQz8Mdnv35DnHXck0S7/I2FIPEIZwjw==

"kysely_0.26.1@npm:[email protected]":
version "0.26.1"
resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.26.1.tgz#2d2fb9316d53f3062596102c98d0d476e4e097b5"
integrity sha512-FVRomkdZofBu3O8SiwAOXrwbhPZZr8mBN5ZeUWyprH29jzvy6Inzqbd0IMmGxpd4rcOCL9HyyBNWBa8FBqDAdg==

"kysely_0.26.2@npm:[email protected]":
version "0.26.2"
resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.26.2.tgz#7efbc9b1bbd9288602ca33f554cfe6459d0d2d21"
integrity sha512-ew6xjKm99ik154goi03L6KKH1MWGFnZF3WpA76rgWxtkzx2SlMSIiVxdfp0GW4WoU43BTyxP6/6bfoQwmg9YYQ==

"kysely_0.26.3@npm:[email protected]":
version "0.26.3"
resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.26.3.tgz#45fdd0153d8c9418b0ea9a6f05ed46b95ed27678"
integrity sha512-yWSgGi9bY13b/W06DD2OCDDHQmq1kwTGYlQ4wpZkMOJqMGCstVCFIvxCCVG4KfY1/3G0MhDAcZsip/Lw8/vJWw==

local-pkg@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
Expand Down

0 comments on commit 8fa8d76

Please sign in to comment.