jok
is a namespace which bundles utility functions for code generation, related to nodejs and graphql
The easiest way to create new project on nodejs
Those features are out of the box in default template :
✅ Configured dev environement (nodemon)
✅ Configured test environement (jest)
✅ Configured EditorConfig
✅ Configured CI/CD (bitbucket pipelines)
✅ Configured Linting (TSLint)
✅ Last but not least: 100% type safety! (TypeScript)
Note: jok init
command is next version of create-jokio-app
Generate sdk for graphql remote endpoint in front-end projects.
Features:
✅ Generates types (interfaces) based on remote graphql server
✅ Generates Queries, Mutations & Subscriptions api on top of Apollo Client
Recommended way to use jok-cli
is to have npx package installed globally on your computer and use following commands:
Note: npx will take care to use latest version of jok cli
every time you run the command, thats why its recommended way
USAGE
init [options] <directory-name>
OPTIONS
--nextjs with next.js
--graphql with graphql
EXAMPLES
npx jok init cool-app
npx jok init server-app --graphql
for generating graphql client in front-end projects (Angular, React, etc.) graphql-client
has dependencies on apollo client
USAGE
graphql-client [options]
OPTIONS
-e, --endpointUrl <endpointUrl> graphql endpoint url
-o, --output <output> result file address
--defaultFragments generate default fragments
-h, --help output usage information
EXAMPLES
$ jok graphql-client -e https://server.jok.io -o src/generated/graph.ts
import { ApolloClient } from 'apollo-client'
import getClient, { Client } from './generated/graph'
const apolloClient: ApolloClient = /* TODO: Set apollo client */
const graphql = getClient(apolloClient, {
query: {
fetchPolicy: 'network-only'
}
});
// example query call
graphql.query.me()
.then(x => console.log(x))
.catch(err => console.warn(err))
// example mutation call
graphql.mutation.login({ username: '[email protected]', password: 'Qwer!234' })
.then(x => console.log(x))
.catch(err => console.warn(err))
// example subscription call
graphql.subscription.musicChannelUpdated({}).subscribe(x => {
console.log('musicChannelUpdated', x);
})
Note: You will need to have apollo client already configured in your project
if you prefer using yarn, please install jok-cli globally first
yarn add global jok
and next you will be able to call jok commands
directly:
jok init testapp # initialize empty pre-configured project
jok init testapp --graphql # initialize graphql project
jok init testapp --nextjs # initialize nextjs project
jok graphql-client -e https://server.jok.io -o src/generated/jokio.ts # generate proxy client for remote url