Skip to content
/ jok-cli Public

πŸš€ CLI tool for code generation to speed up development process

Notifications You must be signed in to change notification settings

jokio/jok-cli

Repository files navigation

Jok

platform: jokio npm version codecov

jok is a namespace which bundles utility functions for code generation, related to nodejs and graphql

API (functions)

init

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

graphql-client

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



How to use

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

init

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

graphql-client

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


Alternative way to use

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