UNPKG

@prisma/cli-dev

Version:

Dev CLI for Prisma

4 lines (3 loc) 1.48 kB
import { createRequire } from 'module'; const require = createRequire(import.meta.url); import{ServerState as a}from"@prisma/dev/internal/state";import{defineCommand as i}from"citty";function o(t,n=t){return`\x1B]8;;${t.toString()}\x07${n.toString()}\x1B]8;;\x07`}import l from"table-layout";var c={debug:{default:!1,description:"Enable debug logging. Defaults to `false`.",required:!1,type:"boolean"}},u={description:"List available servers",name:"list"},L=i({args:c,meta:u,run:async t=>{let n=await a.scan({debug:t.args.debug}),r=new l([{name:s("name"),status:s("status"),urls:s("urls")},...n.map(e=>({name:e.name,status:e.status,urls:m(e)}))]);console.log(r.toString())}});function s(t){return`\x1B[1m${t}\x1B[0m`}function m(t){if(t.status!=="running")return"";let n=g(t),r=p(t),e=f(t);return[n?`${s("DATABASE_URL")}: ${n}`:null,r?`${s("TCP")}: ${r}`:null,e?`${s("Terminal")}: ${e}`:null].filter(Boolean).join(` `)}function g(t){let{url:n}=t.exports?.ppg||{};if(!n)return"";let r=new URL(n),e=r.searchParams.get("api_key");return r.searchParams.set("api_key",`${e.slice(0,4)}...${e.slice(-4)}`),o(n,r)}function p(t){let{connectionString:n,prismaORMConnectionString:r}=t.exports?.database||{};if(!r&&!n)return"";let e=new URL(r||n);return o(e,`${e.protocol}//...@${e.host}/...`)}function f(t){let{connectionString:n,terminalCommand:r}=t.exports?.database||{};if(!n||!r)return"";let e=new URL(n);return o(r,`...psql -h ${e.hostname} -p ${e.port} ...`)}export{L as ListCommand};