Comments (4)
So you want to be able to serialize queries, not the whole Kysely
instance with drivers, connections, plugins and all?
So something like this:
const serialized: string = db.selectFrom('thing').selectAll().serialize()
const query = db.deserialize(serialized)
That should be doable, but the type of db.deserialize(serialized)
would obviously be wrong, since we can't deserialize the type from just a string
. The deserialized query would be something like QueryBuilder<DB, any, unknown>
.
I don't think we should override toString()
. People would assume toString()
returns the SQL and fromString
parses SQL into a QueryBuilder.
You can already serialize the query like this:
const serialized = JSON.stringify(query.toOperationNode())
from kysely.
Yes, only the query.
Agreed, toString is too invasive. JSON is better, yes.
toOperation node is probably good enough, maybe we don't need deserialization at all. Will check it.
Thank you for the answer.
from kysely.
@koskimas Is there an interface representing a valid SQL? To detect:
db.selectFrom('thing')
not valid
db.selectFrom('thing').selectAll()
valid, toOperationNode can be called.
from kysely.
Hmm, forget about it. It's specialized case. I don't want to distract you.
from kysely.
Related Issues (20)
- SQLite STRICT tables
- Allow plugins that transform results to affect the output type. HOT 3
- Syntax error at the end of input when using onConflict and empty values HOT 4
- Behavior when an alias matches some existing table name HOT 2
- Add option to use "=" in order by HOT 1
- Inaccurate Type Narrowing when using `.selectAll` on multiple tables
- Legacy Tedious Prior to v18 Support / Documentation HOT 4
- Invalid parameter serialization when using array operators (@>, <@, &&) HOT 3
- Migrations with custom provider don't work properly HOT 2
- Migrations with custom provider don't work properly if Migrations are instances of classes, implementing Migration interface. HOT 1
- Migrations with custom provider don't work properly if Migrations are instances of classes, implementing Migration interface. HOT 2
- JSON Array of Column Values
- Failed to update JSON column in Mariadb, supplied JSON not stringfied HOT 1
- Can't connect to better-sqlite 3 driver
- How to manipulate RootOperationNode ? HOT 1
- How to concatenate multiple Compiled Queries HOT 1
- How can I bind a compiled query with it's parameters ? HOT 3
- Failing Migration HOT 1
- Raw SQL to CALL PROCEDURE with MySQL
- Support expressions in constraints HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kysely.