UNPKG

@mondaydotcomorg/setup-api

Version:

monday.com setup api cli

4 lines (3 loc) 11.2 kB
#!/usr/bin/env node "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("shelljs"),n=require("fs"),t=require("node:fs/promises"),r=require("node:path"),a=require("node:process");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var l=c(e),i=c(n),s=o(t),u=o(r),p=o(a);function d(e,n,t,r){return new(t||(t=Promise))((function(a,o){function c(e){try{i(r.next(e))}catch(e){o(e)}}function l(e){try{i(r.throw(e))}catch(e){o(e)}}function i(e){var n;e.done?a(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,l)}i((r=r.apply(e,n||[])).next())}))}function g(e,n){var t,r,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return c.next=l(0),c.throw=l(1),c.return=l(2),"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function l(l){return function(i){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;c&&(c=0,l[0]&&(o=0)),o;)try{if(t=1,r&&(a=2&l[0]?r.return:l[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,l[1])).done)return a;switch(r=0,a&&(l=[2&l[0],a.value]),l[0]){case 0:case 1:a=l;break;case 4:return o.label++,{value:l[1],done:!1};case 5:o.label++,r=l[1],l=[0];continue;case 7:l=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==l[0]&&2!==l[0])){o=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]<a[3])){o.label=l[1];break}if(6===l[0]&&o.label<a[1]){o.label=a[1],a=l;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(l);break}a[2]&&o.ops.pop(),o.trys.pop();continue}l=n.call(e,o)}catch(e){l=[6,e],r=0}finally{t=a=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,i])}}}"function"==typeof SuppressedError&&SuppressedError;const f=["npm","yarn","yarn@berry","pnpm","pnpm@6","bun","deno"],m={"bun.lock":"bun","bun.lockb":"bun","deno.lock":"deno","pnpm-lock.yaml":"pnpm","pnpm-workspace.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"},y={"node_modules/.deno/":"deno","node_modules/.pnpm/":"pnpm","node_modules/.yarn-state.yml":"yarn","node_modules/.yarn_integrity":"yarn","node_modules/.package-lock.json":"npm",".pnp.cjs":"yarn",".pnp.js":"yarn","bun.lock":"bun","bun.lockb":"bun"};async function b(e,n){try{const t=await s.default.stat(e);return"file"===n?t.isFile():t.isDirectory()}catch{return!1}}async function h(e,n){return e&&await b(e,"file")?await async function(e,n){try{const t=await s.default.readFile(e,"utf8"),r=n.packageJsonParser?await n.packageJsonParser(t,e):JSON.parse(t);let a;const o=function(e){const n=e=>e?.match(/\d+(\.\d+){0,2}/)?.[0]??e;if("string"==typeof e.packageManager){const[t,r]=e.packageManager.replace(/^\^/,"").split("@");return{name:t,ver:n(r)}}if("string"==typeof e.devEngines?.packageManager?.name)return{name:e.devEngines.packageManager.name,ver:n(e.devEngines.packageManager.version)};return}(r);if(o){const e=o.name,t=o.ver;let c=t;return"yarn"===e&&t&&Number.parseInt(t)>1?(a="yarn@berry",c="berry",{name:e,agent:a,version:c}):"pnpm"===e&&t&&Number.parseInt(t)<7?(a="pnpm@6",{name:e,agent:a,version:c}):f.includes(e)?(a=e,{name:e,agent:a,version:c}):n.onUnknown?.(r.packageManager)??null}}catch{}return null}(e,n):null}async function v(e={}){const{cwd:n,strategies:t=["lockfile","packageManager-field","devEngines-field"]}=e;let r;if("string"==typeof e.stopDir){const n=u.default.resolve(e.stopDir);r=e=>e===n}else r=e.stopDir;for(const a of function*(e=p.default.cwd()){let n=u.default.resolve(e);const{root:t}=u.default.parse(n);for(;n&&n!==t;)yield n,n=u.default.dirname(n)}(n)){for(const n of t)switch(n){case"lockfile":for(const n of Object.keys(m))if(await b(u.default.join(a,n),"file")){const t=m[n],r=await h(u.default.join(a,"package.json"),e);return r||{name:t,agent:t}}break;case"packageManager-field":case"devEngines-field":{const n=await h(u.default.join(a,"package.json"),e);if(n)return n;break}case"install-metadata":for(const e of Object.keys(y)){const n=e.endsWith("/")?"dir":"file";if(await b(u.default.join(a,e),n)){const n=y[e];return{name:n,agent:"yarn"===n?e.endsWith(".yarn_integrity")?"yarn":"yarn@berry":n}}}}if(r?.(a))break}return null}function k(e,n){return t=>t.length>1?[e,n,t[0],"--",...t.slice(1)]:[e,n,t[0]]}const w={agent:["npm",0],run:k("npm","run"),install:["npm","i",0],frozen:["npm","ci",0],global:["npm","i","-g",0],add:["npm","i",0],upgrade:["npm","update",0],"upgrade-interactive":null,dedupe:["npm","dedupe",0],execute:["npx",0],"execute-local":["npx",0],uninstall:["npm","uninstall",0],global_uninstall:["npm","uninstall","-g",0]},x={agent:["yarn",0],run:["yarn","run",0],install:["yarn","install",0],frozen:["yarn","install","--frozen-lockfile",0],global:["yarn","global","add",0],add:["yarn","add",0],upgrade:["yarn","upgrade",0],"upgrade-interactive":["yarn","upgrade-interactive",0],dedupe:null,execute:["npx",0],"execute-local":k("yarn","exec"),uninstall:["yarn","remove",0],global_uninstall:["yarn","global","remove",0]},q={agent:["pnpm",0],run:["pnpm","run",0],install:["pnpm","i",0],frozen:["pnpm","i","--frozen-lockfile",0],global:["pnpm","add","-g",0],add:["pnpm","add",0],upgrade:["pnpm","update",0],"upgrade-interactive":["pnpm","update","-i",0],dedupe:["pnpm","dedupe",0],execute:["pnpm","dlx",0],"execute-local":["pnpm","exec",0],uninstall:["pnpm","remove",0],global_uninstall:["pnpm","remove","--global",0]},j={agent:["deno",0],run:["deno","task",0],install:["deno","install",0],frozen:["deno","install","--frozen",0],global:["deno","install","-g",0],add:["deno","add",0],upgrade:["deno","outdated","--update",0],"upgrade-interactive":["deno","outdated","--update",0],dedupe:null,execute:e=>["deno","run",`npm:${e[0]}`,...e.slice(1)],"execute-local":["deno","task","--eval",0],uninstall:["deno","remove",0],global_uninstall:["deno","uninstall","-g",0]},_={npm:w,yarn:x,"yarn@berry":{...x,frozen:["yarn","install","--immutable",0],upgrade:["yarn","up",0],"upgrade-interactive":["yarn","up","-i",0],dedupe:["yarn","dedupe",0],execute:["yarn","dlx",0],"execute-local":["yarn","exec",0],global:["npm","i","-g",0],global_uninstall:["npm","uninstall","-g",0]},pnpm:q,"pnpm@6":{...q,run:k("pnpm","run")},bun:{agent:["bun",0],run:["bun","run",0],install:["bun","install",0],frozen:["bun","install","--frozen-lockfile",0],global:["bun","add","-g",0],add:["bun","add",0],upgrade:["bun","update",0],"upgrade-interactive":["bun","update","-i",0],dedupe:null,execute:["bun","x",0],"execute-local":["bun","x",0],uninstall:["bun","remove",0],global_uninstall:["bun","remove","-g",0]},deno:j};function S(e,n,t){return function(e,n){if(null==e)return null;const t="function"==typeof e?e(n):e.flatMap((e=>"number"==typeof e?n:[e]));return{command:t[0],args:t.slice(1)}}(_[e][n],t)}var O,E="graphql-request@6.1.0",M="graphql@16.8.2",F=function(){return d(void 0,void 0,void 0,(function(){return g(this,(function(e){switch(e.label){case 0:return void 0!==O?[2,O]:[4,v()];case 1:return[2,O=e.sent()]}}))}))},z=function(e,n){if(!e)return"npm run ".concat(n);var t=S(e.agent,"run",[n]);return t?"".concat(t.command," ").concat(t.args.join(" ")):"npm run ".concat(n)},I=function(){return d(void 0,void 0,void 0,(function(){var e,n,t,r;return g(this,(function(a){switch(a.label){case 0:return[4,d(void 0,void 0,void 0,(function(){var e,n,t,r,a;return g(this,(function(o){switch(o.label){case 0:return[4,F()];case 1:if(!(e=o.sent()))return console.warn("Could not detect package manager, falling back to npm"),[2,["npm install ".concat(E," ").concat(M),"npm install --save-dev @graphql-codegen/cli@^5.0.5 @graphql-codegen/client-preset@^4.8.0"]];if(console.log("Detected package manager: ".concat(e.agent)),!(n=S(e.agent,"add",[E,M])))throw new Error("Could not resolve add command for ".concat(e.agent));if(t="".concat(n.command," ").concat(n.args.join(" ")),!(r=S(e.agent,"add",["-D","@graphql-codegen/cli@^5.0.5","@graphql-codegen/client-preset@^4.8.0"])))throw new Error("Could not resolve add command for ".concat(e.agent));return a="".concat(r.command," ").concat(r.args.join(" ")),[2,[t,a]]}}))}))];case 1:for(e=a.sent(),n=0,t=e;n<t.length;n++)r=t[n],console.log("Executing: ".concat(r)),0!==l.exec(r).code&&(console.error("Error executing command: ".concat(r)),l.exit(1));return console.log("Packages installed"),[2]}}))}))},D=function(){i.writeFileSync("codegen.yml","overwrite: true\nschema: 'src/schema.graphql'\ndocuments: 'src/**/*.graphql.ts'\nignoreNoDocuments: true\ngenerates:\n src/generated/graphql/:\n presetConfig:\n fragmentMasking: false\n preset: client\n hooks:\n afterOneFileWrite:\n - node -e \"const fs = require('fs'); fs.writeFileSync('src/generated/graphql/index.ts', '/* eslint-disable */\\nexport * from \\'./gql\\';');\""),console.log("Codegen config created"),i.writeFileSync("graphql.config.yml","schema: src/schema.graphql"),console.log("created graphql.config.yml"),l.mkdir("-p","src"),console.log("Created src folder");i.writeFileSync("src/queries.graphql.ts",'\nimport { gql } from "graphql-request";\n\nexport const exampleQuery = gql`\n query GetBoards($ids: [ID!]) {\n boards(ids: $ids) {\n id\n name\n }\n }\n`;\n\nexport const exampleMutation = gql`\n mutation CreateItem($boardId: ID!, $groupId: String!, $itemName: String!) {\n create_item(board_id: $boardId, group_id: $groupId, item_name: $itemName) {\n id\n name\n }\n }\n`;\n'),console.log("created src/queries.graphql.ts");var e='#!/bin/bash\n curl "https://api.monday.com/v2/get_schema?format=sdl&version=current" -o src/schema.graphql\n '.trim();i.writeFileSync("fetch-schema.sh",e,{mode:493}),console.log("Fetch schema script created")},P=function(){return d(void 0,void 0,void 0,(function(){var e,n,t;return g(this,(function(r){switch(r.label){case 0:return e="./package.json",i.existsSync(e)?[4,F()]:(console.error("package.json not found!"),[2]);case 1:return n=r.sent(),(t=JSON.parse(i.readFileSync(e,"utf8"))).scripts=t.scripts||{},t.scripts["fetch:schema"]="bash fetch-schema.sh",t.scripts.codegen="graphql-codegen",t.scripts["fetch:generate"]="".concat(z(n,"fetch:schema")," && ").concat(z(n,"codegen")),i.writeFileSync(e,JSON.stringify(t,null,2)),console.log("Updated package.json with new scripts"),[2]}}))}))},$=function(){return d(void 0,void 0,void 0,(function(){var e;return g(this,(function(n){switch(n.label){case 0:return[4,I()];case 1:return n.sent(),D(),[4,P()];case 2:return n.sent(),[4,F()];case 3:return e=n.sent(),console.log("Setup complete! run `".concat(z(e,"fetch:generate"),"` to fetch the schema and generate types")),[2]}}))}))};require.main===module&&$().catch((function(e){console.error("Setup failed:",e),process.exit(1)})),exports._resetCache=function(){O=void 0},exports.createFiles=D,exports.installPackages=I,exports.setupGraphQL=$,exports.updatePackageJsonScripts=P; //# sourceMappingURL=index.js.map