FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
copilot-api/src/debug.ts at master · SRHSolution/copilot-api · GitHub
SRHSolution
copilot-api
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
copilot-api
/
src
/
debug.ts
Copy path
More file actions
More file actions
Latest commit
History
History
History
127 lines (108 loc) · 2.8 KB
Breadcrumbs
copilot-api
/
src
/
debug.ts
Copy path
File metadata and controls
127 lines (108 loc) · 2.8 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/env node
import
{
defineCommand
}
from
"citty"
import
consola
from
"consola"
import
fs
from
"node:fs/promises"
import
os
from
"node:os"
import
{
PATHS
}
from
"./lib/paths"
interface
DebugInfo
{
version
:
string
runtime
:
{
name
:
string
version
:
string
platform
:
string
arch
:
string
}
paths
:
{
APP_DIR
:
string
GITHUB_TOKEN_PATH
:
string
}
tokenExists
:
boolean
}
interface
RunDebugOptions
{
json
:
boolean
}
async
function
getPackageVersion
(
)
:
Promise
<
string
>
{
try
{
const
packageJsonPath
=
new
URL
(
"../package.json"
,
import
.
meta
.
url
)
.
pathname
//
@ts
-expect-error https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-json-parse-buffer.md
// JSON.parse() can actually parse buffers
const
packageJson
=
JSON
.
parse
(
await
fs
.
readFile
(
packageJsonPath
)
)
as
{
version
:
string
}
return
packageJson
.
version
}
catch
{
return
"unknown"
}
}
function
getRuntimeInfo
(
)
{
const
isBun
=
typeof
Bun
!==
"undefined"
return
{
name
:
isBun
?
"bun"
:
"node"
,
version
:
isBun
?
Bun
.
version
:
process
.
version
.
slice
(
1
)
,
platform
:
os
.
platform
(
)
,
arch
:
os
.
arch
(
)
,
}
}
async
function
checkTokenExists
(
)
:
Promise
<
boolean
>
{
try
{
const
stats
=
await
fs
.
stat
(
PATHS
.
GITHUB_TOKEN_PATH
)
if
(
!
stats
.
isFile
(
)
)
return
false
const
content
=
await
fs
.
readFile
(
PATHS
.
GITHUB_TOKEN_PATH
,
"utf8"
)
return
content
.
trim
(
)
.
length
>
0
}
catch
{
return
false
}
}
async
function
getDebugInfo
(
)
:
Promise
<
DebugInfo
>
{
const
[
version
,
tokenExists
]
=
await
Promise
.
all
(
[
getPackageVersion
(
)
,
checkTokenExists
(
)
,
]
)
return
{
version
,
runtime
:
getRuntimeInfo
(
)
,
paths
:
{
APP_DIR
:
PATHS
.
APP_DIR
,
GITHUB_TOKEN_PATH
:
PATHS
.
GITHUB_TOKEN_PATH
,
}
,
tokenExists
,
}
}
function
printDebugInfoPlain
(
info
:
DebugInfo
)
:
void
{
consola
.
info
(
`copilot-api debug
Version:
${
info
.
version
}
Runtime:
${
info
.
runtime
.
name
}
${
info
.
runtime
.
version
}
(
${
info
.
runtime
.
platform
}
${
info
.
runtime
.
arch
}
)
Paths:
- APP_DIR:
${
info
.
paths
.
APP_DIR
}
- GITHUB_TOKEN_PATH:
${
info
.
paths
.
GITHUB_TOKEN_PATH
}
Token exists:
${
info
.
tokenExists
?
"Yes"
:
"No"
}
`
)
}
function
printDebugInfoJson
(
info
:
DebugInfo
)
:
void
{
console
.
log
(
JSON
.
stringify
(
info
,
null
,
2
)
)
}
export
async
function
runDebug
(
options
:
RunDebugOptions
)
:
Promise
<
void
>
{
const
debugInfo
=
await
getDebugInfo
(
)
if
(
options
.
json
)
{
printDebugInfoJson
(
debugInfo
)
}
else
{
printDebugInfoPlain
(
debugInfo
)
}
}
export
const
debug
=
defineCommand
(
{
meta
:
{
name
:
"debug"
,
description
:
"Print debug information about the application"
,
}
,
args
:
{
json
:
{
type
:
"boolean"
,
default
:
false
,
description
:
"Output debug information as JSON"
,
}
,
}
,
run
(
{
args
}
)
{
return
runDebug
(
{
json
:
args
.
json
,
}
)
}
,
}
)
Back
|
FazBrowse Home
|
New Git URL