fauna-gql-upload
Version:
Manage your FaunaDB resources in within your project and upload them using a single command
42 lines (37 loc) • 954 B
text/typescript
//@ts-ignore
import { query as q } from "faunadb";
import { IndexResource, Resource } from "../types";
import getClient from "./client";
import wait from "./wait";
import createOrUpdateResources from "./createOrUpdateStandardResources";
export default async function updateIndexes(indexes: IndexResource[]){
// 1. Delete original indexes
await deleteOriginalIndexes(indexes);
// 2. Wait 60 seconds
await wait(60 * 1000);
// 3. Create indexes
await createOrUpdateResources(indexes as Resource[], "indexes");
}
async function deleteOriginalIndexes(indexes: IndexResource[]){
const client = await getClient();
return client.query(
q.Foreach(
indexes,
q.Lambda(
"index",
q.Let(
{
name: q.Select(["name"], q.Var("index")),
indexRef: q.Index(q.Var("name")),
exists: q.Exists(q.Var("indexRef"))
},
q.If(
q.Var("exists"),
q.Delete(q.Var("indexRef")),
null
)
)
)
)
)
}