Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(examples): Update convex example (#43741)
- Loading branch information
1 parent
8006dbc
commit dbc8334
Showing
21 changed files
with
615 additions
and
285 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,74 @@ | ||
# Welcome to your Convex functions directory! | ||
|
||
Write your Convex functions here. | ||
Write your Convex functions here. See | ||
https://docs.convex.dev/using/writing-convex-functions for more. | ||
|
||
A query function looks like: | ||
A query function that takes two arguments looks like: | ||
|
||
```typescript | ||
// myQueryFunction.ts | ||
import { query } from './_generated/server' | ||
|
||
export default query(async ({ db }) => { | ||
// Load data with `db` here! | ||
export default query(async ({ db }, first: number, second: string) => { | ||
// Validate arguments here. | ||
if (typeof first !== 'number' || first < 0) { | ||
throw new Error('First argument is not a non-negative number.') | ||
} | ||
if (typeof second !== 'string' || second.length > 1000) { | ||
throw new Error('Second argument is not a string of length 1000 or less.') | ||
} | ||
|
||
// Query the database as many times as you need here. | ||
// See https://docs.convex.dev/using/database-queries to learn how to write queries. | ||
const documents = await db.query('tablename').collect() | ||
|
||
// Write arbitrary JavaScript here: filter, aggregate, build derived data, | ||
// remove non-public properties, or create new objects. | ||
return documents | ||
}) | ||
``` | ||
|
||
Using this query function in a React component looks like: | ||
|
||
```typescript | ||
const data = useQuery('myQueryFunction', 10, 'hello') | ||
``` | ||
|
||
A mutation function looks like: | ||
|
||
```typescript | ||
// myMutationFunction.ts | ||
import { mutation } from './_generated/server' | ||
|
||
export default mutation(async ({ db }) => { | ||
// Edit data with `db` here! | ||
export default mutation(async ({ db }, first: string, second: string) => { | ||
// Validate arguments here. | ||
if (typeof first !== 'string' || typeof second !== 'string') { | ||
throw new Error('Both arguments must be strings') | ||
} | ||
|
||
// Insert or modify documents in the database here. | ||
// Mutations can also read from the database like queries. | ||
const message = { body: first, author: second } | ||
const id = await db.insert('messages', message) | ||
|
||
// Optionally, return a value from your mutation. | ||
return await db.get(id) | ||
}) | ||
``` | ||
|
||
Using this mutation function in a React component looks like: | ||
|
||
```typescript | ||
const mutation = useMutation('myMutationFunction') | ||
function handleButtonPress() { | ||
// fire and forget, the most common way to use mutations | ||
mutation('Hello!', 'me') | ||
// OR | ||
// use the result once the mutation has completed | ||
mutation('Hello!', 'me').then((result) => console.log(result)) | ||
} | ||
``` | ||
|
||
The Convex CLI is your friend. See everything it can do by running | ||
`npx convex -h` in your project root directory. To learn more, launch the docs | ||
with `npx convex docs`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* eslint-disable */ | ||
/** | ||
* Generated API. | ||
* | ||
* THIS CODE IS AUTOMATICALLY GENERATED. | ||
* | ||
* Generated by convex@0.5.0. | ||
* To regenerate, run `npx convex codegen`. | ||
* @module | ||
*/ | ||
|
||
import type { ApiFromModules } from "convex/api"; | ||
import type * as listMessages from "../listMessages"; | ||
import type * as sendMessage from "../sendMessage"; | ||
|
||
/** | ||
* A type describing your app's public Convex API. | ||
* | ||
* This `API` type includes information about the arguments and return | ||
* types of your app's query and mutation functions. | ||
* | ||
* This type should be used with type-parameterized classes like | ||
* `ConvexReactClient` to create app-specific types. | ||
*/ | ||
export type API = ApiFromModules<{ | ||
listMessages: typeof listMessages; | ||
sendMessage: typeof sendMessage; | ||
}>; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* eslint-disable */ | ||
/** | ||
* Generated development client configuration. | ||
* | ||
* THIS CODE IS AUTOMATICALLY GENERATED. | ||
* | ||
* Generated by convex@0.5.0. | ||
* To regenerate, run `npx convex codegen`. | ||
* @module | ||
*/ | ||
|
||
import type { ClientConfiguration } from "convex/browser"; | ||
|
||
/** | ||
* The DEV Convex client configuration. | ||
* | ||
* This configuration connects your client to your dev Convex deployment | ||
* when `npx convex dev` is running. | ||
* | ||
* To generate the production version, run `npx convex deploy`. | ||
* | ||
* Usage: | ||
* | ||
* ```ts | ||
* import clientConfig from "../convex/_generated/clientConfig"; | ||
* | ||
* const convex = new ConvexReactClient(clientConfig); | ||
* ``` | ||
*/ | ||
declare const clientConfig: ClientConfiguration; | ||
export default clientConfig; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* eslint-disable */ | ||
/** | ||
* Generated development client configuration. | ||
* | ||
* THIS CODE IS AUTOMATICALLY GENERATED. | ||
* | ||
* Generated by convex@0.5.0. | ||
* To regenerate, run `npx convex codegen`. | ||
* @module | ||
*/ | ||
|
||
/** | ||
* The DEV Convex client configuration. | ||
* | ||
* This configuration connects your client to your dev Convex deployment | ||
* when `npx convex dev` is running. | ||
* | ||
* To generate the production version, run `npx convex deploy`. | ||
* | ||
* Usage: | ||
* | ||
* ```ts | ||
* import clientConfig from "../convex/_generated/clientConfig"; | ||
* | ||
* const convex = new ConvexReactClient(clientConfig); | ||
* ``` | ||
*/ | ||
const clientConfig = { | ||
address: "http://localhost:8187", | ||
}; | ||
export default clientConfig; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.