UNPKG

@gqty/cli

Version:

Interactive codegen for GQty

3 lines (2 loc) 1.28 kB
#! /usr/bin/env node import"@commander-js/extra-typings";import"@graphql-codegen/core";import"@graphql-codegen/typescript";import"@graphql-tools/utils";import"@graphql-tools/wrap";import*as l from"@inquirer/prompts";import"cosmiconfig";import"cross-fetch";import"fast-glob";import"graphql";import"lodash-es/sortBy.js";import"prettier";import{getUserPackageManager as o}from"./getUserPackageManager.mjs";const d=async t=>{const s=c(t),r=o()??"npm",n=p(r).concat(s);if(!await l.confirm({message:`Do you want us to run "${r} ${n[0]}" for you?`,default:!0}))return;const{spawnSync:a}=await import("child_process");a(r,n,{stdio:"inherit"})},g=async({dependencies:t,devDependencies:s},r)=>{const n=new Set([...Object.keys(t??{}),...Object.keys(s??{})]),e=c(r).filter(u=>!n.has(u));if(e.length===0)return;const a=o()??"npm",i=p(a).concat(e),{spawnSync:m}=await import("child_process");m(a,i,{stdio:"inherit"})},p=t=>{switch(t){case"npm":return["install","--save-dev"];case"pnpm":return["add","--save-dev"];case"yarn":return["add","--dev"]}},c=t=>{const s=["gqty","graphql"];return t.react&&s.push("@gqty/react"),t.subscriptions===!0?s.push("graphql-ws"):t.subscriptions&&s.push(t.subscriptions),t.javascriptOutput||s.push("typescript"),s};export{d as promptInstall,g as runInstall};