Skip to content
GQLoom

Getting Started

This guide will help you get started with GQLoom and create a simple GraphQL backend application.

Prerequisites

You only need a JavaScript/TypeScript runtime, such as Node.js, Bun, Deno, or Cloudflare Workers.

Initialize the project

Tip

If you already have a project, you can skip this step and jump straight to Installation.

First, create a new folder and initialize the project:

sh
mkdir gqloom-app # Create a new folder
cd ./gqloom-app # Enter the folder
npm init -y # Initialize an empty project

npm i -D typescript @types/node tsx # Install TypeScript and related dependencies
npx tsc --init # Initialize TypeScript configuration
sh
mkdir gqloom-app # Create a new folder
cd ./gqloom-app # Enter the folder
yarn init -y # Initialize an empty project

yarn add -D typescript @types/node tsx # Install TypeScript and related dependencies
yarn dlx -q -p typescript tsc --init # Initialize TypeScript configuration
sh
mkdir gqloom-app # Create a new folder
cd ./gqloom-app # Enter the folder
pnpm init # Initialize an empty project

pnpm add -D typescript @types/node tsx # Install TypeScript and related dependencies
pnpm exec tsc --init # Initialize TypeScript configuration
sh
mkdir gqloom-app # Create a new folder
cd ./gqloom-app # Enter the folder
bun init # Initialize the project
sh
mkdir gqloom-app # Create a new folder
cd ./gqloom-app # Enter the folder
deno init # Initialize the project

Installation

GQLoom supports multiple runtime types; choose your favorite ORM and validation library!

sh
npm i graphql @gqloom/core valibot @gqloom/valibot
sh
pnpm add graphql @gqloom/core valibot @gqloom/valibot
sh
yarn add graphql @gqloom/core valibot @gqloom/valibot
sh
bun add graphql @gqloom/core valibot @gqloom/valibot
sh
deno add npm:graphql npm:@gqloom/core npm:valibot npm:@gqloom/valibot

In addition, we need to choose an adapter to run our GraphQL server.
Here we choose the graphql-yoga adapter.

sh
npm i graphql-yoga
sh
pnpm add graphql-yoga
sh
yarn add graphql-yoga
sh
bun add graphql-yoga
sh
deno add npm:graphql-yoga

Hello, World

ts
import { 
createServer
} from "node:http"
import {
query
,
resolver
,
weave
} from "@gqloom/core"
import {
ValibotWeaver
} from "@gqloom/valibot"
import {
createYoga
} from "graphql-yoga"
import * as
v
from "valibot"
const
helloResolver
=
resolver
({
hello
:
query
(
v
.
string
())
.
input
({
name
:
v
.
nullish
(
v
.
string
(), "World") })
.
resolve
(({
name
}) => `Hello, ${
name
}!`),
}) const
schema
=
weave
(
ValibotWeaver
,
helloResolver
)
const
yoga
=
createYoga
({
schema
})
const
server
=
createServer
(
yoga
)
server
.
listen
(4000, () => {
console
.
info
("Server is running on http://localhost:4000/graphql")
})

Next steps