Skip to content

Commit

Permalink
Tweak Convex example (#39739)
Browse files Browse the repository at this point in the history
This is a followup to #39562 because I realized I made a few mistakes.

Remove convex.json file. Developers using the example should generate this on their own by running npx convex init.
Switch prettier to a dev dependency.
Ignore formatting in Convex generated code while running lint-staged and revert them back to the default generated form (I previously was only ignoring generated code in the main .prettierignore)
Change a let to a const

cc @thomasballinger
Documentation / Examples

 Make sure the linting passes by running pnpm lint
 The examples guidelines are followed from our contributing doc
  • Loading branch information
alexcole committed Aug 19, 2022
1 parent 3466862 commit aacc0ce
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 38 deletions.
3 changes: 2 additions & 1 deletion .prettierignore_staged
Expand Up @@ -7,4 +7,5 @@ packages/next/bundles/webpack/packages/*.runtime.js
lerna.json
packages/next-codemod/transforms/__testfixtures__/**/*
packages/next-codemod/transforms/__tests__/**/*
pnpm-lock.yaml
pnpm-lock.yaml
**/convex/_generated/**
6 changes: 0 additions & 6 deletions examples/convex/convex.json

This file was deleted.

14 changes: 7 additions & 7 deletions examples/convex/convex/_generated/dataModel.ts
Expand Up @@ -9,8 +9,8 @@
* @module
*/

import { AnyDataModel } from 'convex/server'
import { GenericId } from 'convex/values'
import { AnyDataModel } from "convex/server";
import { GenericId } from "convex/values";

/**
* No `schema.ts` file found!
Expand All @@ -26,12 +26,12 @@ import { GenericId } from 'convex/values'
/**
* The names of all of your Convex tables.
*/
export type TableNames = string
export type TableNames = string;

/**
* The type of a document stored in Convex.
*/
export type Document = any
export type Document = any;

/**
* An identifier for a document in Convex.
Expand All @@ -45,8 +45,8 @@ export type Document = any
* Using `===` will not work because two different instances of `Id` can refer
* to the same document.
*/
export type Id = GenericId<string>
export const Id = GenericId
export type Id = GenericId<string>;
export const Id = GenericId;

/**
* A type describing your Convex data model.
Expand All @@ -57,4 +57,4 @@ export const Id = GenericId
* This type is used to parameterize methods like `queryGeneric` and
* `mutationGeneric` to make them type-safe.
*/
export type DataModel = AnyDataModel
export type DataModel = AnyDataModel;
28 changes: 14 additions & 14 deletions examples/convex/convex/_generated/react.ts
Expand Up @@ -9,10 +9,10 @@
* @module
*/

import type getCounter from '../getCounter'
import type incrementCounter from '../incrementCounter'
import type { OptimisticLocalStore as GenericOptimisticLocalStore } from 'convex/browser'
import type { ClientMutation, ClientQuery } from 'convex/server'
import type getCounter from "../getCounter";
import type incrementCounter from "../incrementCounter";
import type { OptimisticLocalStore as GenericOptimisticLocalStore } from "convex/browser";
import type { ClientMutation, ClientQuery } from "convex/server";

/**
* A type describing your app's public Convex API.
Expand All @@ -25,14 +25,14 @@ import type { ClientMutation, ClientQuery } from 'convex/server'
*/
export type ConvexAPI = {
queries: {
getCounter: ClientQuery<typeof getCounter>
}
getCounter: ClientQuery<typeof getCounter>;
};
mutations: {
incrementCounter: ClientMutation<typeof incrementCounter>
}
}
incrementCounter: ClientMutation<typeof incrementCounter>;
};
};

import { makeUseQuery, makeUseMutation, makeUseConvex } from 'convex/react'
import { makeUseQuery, makeUseMutation, makeUseConvex } from "convex/react";

/**
* Load a reactive query within a React component.
Expand All @@ -46,7 +46,7 @@ import { makeUseQuery, makeUseMutation, makeUseConvex } from 'convex/react'
* @param args - The arguments to the query function.
* @returns `undefined` if loading and the query's return value otherwise.
*/
export const useQuery = makeUseQuery<ConvexAPI>()
export const useQuery = makeUseQuery<ConvexAPI>();

/**
* Construct a new {@link ReactMutation}.
Expand All @@ -64,7 +64,7 @@ export const useQuery = makeUseQuery<ConvexAPI>()
* @param name - The name of the mutation.
* @returns The {@link ReactMutation} object with that name.
*/
export const useMutation = makeUseMutation<ConvexAPI>()
export const useMutation = makeUseMutation<ConvexAPI>();

/**
* Get the {@link ConvexReactClient} within a React component.
Expand All @@ -73,10 +73,10 @@ export const useMutation = makeUseMutation<ConvexAPI>()
*
* @returns The active {@link ConvexReactClient} object, or `undefined`.
*/
export const useConvex = makeUseConvex<ConvexAPI>()
export const useConvex = makeUseConvex<ConvexAPI>();

/**
* A view of the query results currently in the Convex client for use within
* optimistic updates.
*/
export type OptimisticLocalStore = GenericOptimisticLocalStore<ConvexAPI>
export type OptimisticLocalStore = GenericOptimisticLocalStore<ConvexAPI>;
16 changes: 8 additions & 8 deletions examples/convex/convex/_generated/server.ts
Expand Up @@ -16,8 +16,8 @@ import {
MutationCtx as GenericMutationCtx,
DatabaseReader as GenericDatabaseReader,
DatabaseWriter as GenericDatabaseWriter,
} from 'convex/server'
import { DataModel } from './dataModel.js'
} from "convex/server";
import { DataModel } from "./dataModel.js";

/**
* Define a query in this Convex app's public API.
Expand All @@ -27,7 +27,7 @@ import { DataModel } from './dataModel.js'
* @param func - The query function. It receives a {@link QueryCtx} as its first argument.
* @returns The wrapped query. Include this as an `export` to name it and make it accessible.
*/
export const query = makeQuery<DataModel>()
export const query = makeQuery<DataModel>();

/**
* Define a mutation in this Convex app's public API.
Expand All @@ -37,7 +37,7 @@ export const query = makeQuery<DataModel>()
* @param func - The mutation function. It receives a {@link MutationCtx} as its first argument.
* @returns The wrapped mutation. Include this as an `export` to name it and make it accessible.
*/
export const mutation = makeMutation<DataModel>()
export const mutation = makeMutation<DataModel>();

/**
* A set of services for use within Convex query functions.
Expand All @@ -48,15 +48,15 @@ export const mutation = makeMutation<DataModel>()
* This differs from the {@link MutationCtx} because all of the services are
* read-only.
*/
export type QueryCtx = GenericQueryCtx<DataModel>
export type QueryCtx = GenericQueryCtx<DataModel>;

/**
* A set of services for use within Convex mutation functions.
*
* The mutation context is passed as the first argument to any Convex mutation
* function run on the server.
*/
export type MutationCtx = GenericMutationCtx<DataModel>
export type MutationCtx = GenericMutationCtx<DataModel>;

/**
* An interface to read from the database within Convex query functions.
Expand All @@ -65,7 +65,7 @@ export type MutationCtx = GenericMutationCtx<DataModel>
* document by its {@link Id}, or {@link DatabaseReader.table}, which starts
* building a query.
*/
export type DatabaseReader = GenericDatabaseReader<DataModel>
export type DatabaseReader = GenericDatabaseReader<DataModel>;

/**
* An interface to read from and write to the database within Convex mutation
Expand All @@ -76,4 +76,4 @@ export type DatabaseReader = GenericDatabaseReader<DataModel>
* your data in an inconsistent state. See [the Convex Guide](https://docs.convex.dev/understanding/convex-fundamentals/functions#atomicity-and-optimistic-concurrency-control)
* for the guarantees Convex provides your functions.
*/
export type DatabaseWriter = GenericDatabaseWriter<DataModel>
export type DatabaseWriter = GenericDatabaseWriter<DataModel>;
2 changes: 1 addition & 1 deletion examples/convex/convex/incrementCounter.ts
Expand Up @@ -2,7 +2,7 @@ import { mutation } from './_generated/server'

export default mutation(
async ({ db }, counterName: string, increment: number) => {
let counterDoc = await db
const counterDoc = await db
.table('counter_table')
.filter((q) => q.eq(q.field('name'), counterName))
.first()
Expand Down
2 changes: 1 addition & 1 deletion examples/convex/package.json
Expand Up @@ -8,14 +8,14 @@
"dependencies": {
"convex": "latest",
"next": "latest",
"prettier": "^2.7.1",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/node": "~16.11.12",
"@types/react": "17.0.45",
"@types/react-dom": "17.0.17",
"prettier": "^2.7.1",
"typescript": "^4.7.3"
}
}

0 comments on commit aacc0ce

Please sign in to comment.