-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create Database Command #435
Conversation
1b39d9c
to
e18006f
Compare
src/lib/fauna.mjs
Outdated
if (!_client && url && secret) { | ||
_client = await getV10Client({ url, secret }); | ||
} else if (!_client) { | ||
throw new Error("No client provided and no url and secret provided"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how about pushing the validation all the way down to getV10Client
? there's validation at the very top of the stack (argv); might make more sense for this validation to live at the very bottom of the stack and let the middle parts assume valid input.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure I can push it to getV10Client
. What's the downside of doing validation in runV10Query
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I kept a bit of validation in runV10Query
just to sanity check the args - let me know if you think there's a better way to do this though
src/lib/fauna.mjs
Outdated
@@ -0,0 +1,31 @@ | |||
export const getV10Client = async ({ url, secret }) => { | |||
const { Client } = (await import("fauna")).default; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also, i totally lied to you about there not being an existing v10 client usage in the project :(
the eval command has its own v10 query path that's used by it and the shell command:
https://github.com/fauna/fauna-shell/blob/v3/src/commands/eval.mjs#L101
i think it would make the most sense for eval and shell to only have the formatting logic, and for us to have only one implementation of the client/network stack. take a look at getSimpleClient
and performQuery
and see what you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah that v10 path is not using the driver though so that's why I set up these new helpers. I definitely agree about having a single implementation, I tried consolidating things a bit but it was proving to be difficult. Something to sort out next week :)
Ticket(s): FE-6125
Problem
The create database command is stubbed out and does not actually do anything.
Solution
Database.create
.typechecked
,protected
andpriority
options.Result
The
database create
command works using a secret. Providing a database name instead of a secret is not yet supported.Testing
Added tests to ensure the command executes the correct query.