@spyglassmc/discord-bot 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
package/lib/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption } from '@discordjs/builders';
1
+ import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption, } from '@discordjs/builders';
2
2
  import { REST } from '@discordjs/rest';
3
- import { ConfigService, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig } from '@spyglassmc/core';
3
+ import { ConfigService, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig, } from '@spyglassmc/core';
4
4
  import { NodeJsExternals } from '@spyglassmc/core/lib/nodejs.js';
5
5
  import * as je from '@spyglassmc/java-edition';
6
6
  import * as mcdoc from '@spyglassmc/mcdoc';
7
7
  import { Routes } from 'discord-api-types/rest/v9';
8
- import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js';
8
+ import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed, } from 'discord.js';
9
9
  import { dirname, join } from 'path';
10
10
  import { fileURLToPath, pathToFileURL } from 'url';
11
11
  const MaxContentLength = 2000;
@@ -21,21 +21,18 @@ console.log(`projectPath = ${projectPath}`);
21
21
  const config = await loadConfig();
22
22
  const rest = new REST({ version: '9' }).setToken(config.token);
23
23
  const client = new Client({
24
- intents: [
25
- Intents.FLAGS.GUILDS,
26
- ],
24
+ intents: [Intents.FLAGS.GUILDS],
27
25
  });
28
26
  const service = new Service({
29
27
  logger: console,
30
28
  profilers,
31
29
  project: {
32
30
  cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
33
- defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
31
+ defaultConfig: ConfigService.merge(VanillaConfig, {
32
+ env: { dependencies: [] },
33
+ }),
34
34
  externals: NodeJsExternals,
35
- initializers: [
36
- mcdoc.initialize,
37
- je.initialize,
38
- ],
35
+ initializers: [mcdoc.initialize, je.initialize],
39
36
  projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
40
37
  },
41
38
  });
@@ -47,7 +44,9 @@ client.on('interactionCreate', async (i) => {
47
44
  const info = activeInteractions.get(i.message.id);
48
45
  if (!info) {
49
46
  await i.update({
50
- embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
47
+ embeds: [
48
+ new MessageEmbed().setDescription('The interaction has expired!'),
49
+ ],
51
50
  components: [],
52
51
  });
53
52
  return;
@@ -63,7 +62,10 @@ client.on('interactionCreate', async (i) => {
63
62
  else if (i.isCommand()) {
64
63
  switch (i.commandName) {
65
64
  case 'ping':
66
- await i.reply({ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`, ephemeral: true });
65
+ await i.reply({
66
+ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`,
67
+ ephemeral: true,
68
+ });
67
69
  break;
68
70
  case 'spy':
69
71
  const command = i.options.getString('command', true);
@@ -92,7 +94,7 @@ __profiler.task('Register Commands').finalize();
92
94
  */
93
95
  async function loadConfig() {
94
96
  const path = join(parentPath, 'config.json');
95
- const config = await fileUtil.readJson(NodeJsExternals, path);
97
+ const config = (await fileUtil.readJson(NodeJsExternals, path));
96
98
  if (!(typeof config.clientId === 'string' &&
97
99
  typeof config.guildId === 'string' &&
98
100
  typeof config.token === 'string')) {
@@ -150,7 +152,19 @@ function getReplyOptions(info) {
150
152
  content: content.length > MaxContentLength
151
153
  ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
152
154
  : content,
153
- components: info.errors.length > 1 ? [new MessageActionRow().addComponents(new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex <= 0), new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex >= info.errors.length - 1))] : [],
155
+ components: info.errors.length > 1
156
+ ? [
157
+ new MessageActionRow().addComponents(new MessageButton()
158
+ .setCustomId('previous')
159
+ .setLabel('Previous Error')
160
+ .setStyle('PRIMARY')
161
+ .setDisabled(info.activeErrorIndex <= 0), new MessageButton()
162
+ .setCustomId('next')
163
+ .setLabel('Next Error')
164
+ .setStyle('PRIMARY')
165
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1)),
166
+ ]
167
+ : [],
154
168
  fetchReply: true,
155
169
  };
156
170
  }
@@ -196,19 +210,28 @@ function getReplyContent(info) {
196
210
  /**
197
211
  * @returns Unsorted tokens.
198
212
  */
199
- function toRenderTokens({ tokens, errors, activeErrorIndex }) {
200
- const ans = tokens.map(t => ({ formats: ColorTokenTypeLegend[t.type], range: t.range }));
213
+ function toRenderTokens({ tokens, errors, activeErrorIndex, }) {
214
+ const ans = tokens.map((t) => ({
215
+ formats: ColorTokenTypeLegend[t.type],
216
+ range: t.range,
217
+ }));
201
218
  const activeError = errors[activeErrorIndex];
202
219
  if (activeError) {
203
- ans.push({ formats: new Set(['background_orange', 'foreground_white']), range: activeError.range });
220
+ ans.push({
221
+ formats: new Set(['background_orange', 'foreground_white']),
222
+ range: activeError.range,
223
+ });
204
224
  }
205
225
  return ans;
206
226
  }
207
227
  function getAnsiCode(content, tokens) {
208
228
  let ans = toAnsiEscapeCode(['reset']);
209
229
  tokens = tokens
210
- .map(t => t.range.end - t.range.start === 0
211
- ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
230
+ .map((t) => t.range.end - t.range.start === 0
231
+ ? {
232
+ range: { start: t.range.start, end: t.range.start + 1 },
233
+ formats: t.formats,
234
+ }
212
235
  : t)
213
236
  .sort((a, b) => a.range.start - b.range.start);
214
237
  for (let i = 0; i < tokens.length - 1; i++) {
@@ -228,7 +251,10 @@ function getAnsiCode(content, tokens) {
228
251
  }
229
252
  insertedTokens.push({
230
253
  formats: new Set([...current.formats, ...next.formats]),
231
- range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
254
+ range: {
255
+ start: next.range.start,
256
+ end: Math.min(current.range.end, next.range.end),
257
+ },
232
258
  });
233
259
  if (current.range.end !== next.range.end) {
234
260
  insertedTokens.push({
@@ -254,7 +280,7 @@ function getAnsiCode(content, tokens) {
254
280
  return ans;
255
281
  }
256
282
  function toAnsiEscapeCode(formats) {
257
- return `\u001b[${[...formats].map(v => AnsiCodeMap[v]).join(';')}m`;
283
+ return `\u001b[${[...formats].map((v) => AnsiCodeMap[v]).join(';')}m`;
258
284
  }
259
285
  function errorSeverityToChar(severity) {
260
286
  switch (severity) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spyglassmc/discord-bot",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "@discordjs/rest": "^0.4.1",
14
14
  "discord.js": "^13.7.0",
15
15
  "discord-api-types": "^0.33.1",
16
- "@spyglassmc/core": "0.3.0",
17
- "@spyglassmc/java-edition": "0.3.0",
18
- "@spyglassmc/locales": "0.3.0",
19
- "@spyglassmc/mcdoc": "0.3.0"
16
+ "@spyglassmc/core": "0.4.1",
17
+ "@spyglassmc/java-edition": "0.3.2",
18
+ "@spyglassmc/locales": "0.3.1",
19
+ "@spyglassmc/mcdoc": "0.3.2"
20
20
  },
21
21
  "devDependencies": {},
22
22
  "scripts": {
package/src/index.ts CHANGED
@@ -1,13 +1,36 @@
1
- import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption } from '@discordjs/builders'
1
+ import {
2
+ SlashCommandBooleanOption,
3
+ SlashCommandBuilder,
4
+ SlashCommandStringOption,
5
+ } from '@discordjs/builders'
2
6
  import { REST } from '@discordjs/rest'
3
- import type { ColorToken, ColorTokenType, LanguageError } from '@spyglassmc/core'
4
- import { ConfigService, ErrorSeverity, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig } from '@spyglassmc/core'
7
+ import type {
8
+ ColorToken,
9
+ ColorTokenType,
10
+ LanguageError,
11
+ } from '@spyglassmc/core'
12
+ import {
13
+ ConfigService,
14
+ ErrorSeverity,
15
+ FileNode,
16
+ fileUtil,
17
+ ProfilerFactory,
18
+ Range,
19
+ Service,
20
+ VanillaConfig,
21
+ } from '@spyglassmc/core'
5
22
  import { NodeJsExternals } from '@spyglassmc/core/lib/nodejs.js'
6
23
  import * as je from '@spyglassmc/java-edition'
7
24
  import * as mcdoc from '@spyglassmc/mcdoc'
8
25
  import { Routes } from 'discord-api-types/rest/v9'
9
26
  import type { Snowflake } from 'discord.js'
10
- import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'
27
+ import {
28
+ Client,
29
+ Intents,
30
+ MessageActionRow,
31
+ MessageButton,
32
+ MessageEmbed,
33
+ } from 'discord.js'
11
34
  import { dirname, join } from 'path'
12
35
  import { fileURLToPath, pathToFileURL } from 'url'
13
36
 
@@ -28,42 +51,43 @@ console.log(`projectPath = ${projectPath}`)
28
51
  const config = await loadConfig()
29
52
  const rest = new REST({ version: '9' }).setToken(config.token)
30
53
  const client = new Client({
31
- intents: [
32
- Intents.FLAGS.GUILDS,
33
- ],
54
+ intents: [Intents.FLAGS.GUILDS],
34
55
  })
35
56
  const service = new Service({
36
57
  logger: console,
37
58
  profilers,
38
59
  project: {
39
60
  cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
40
- defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
61
+ defaultConfig: ConfigService.merge(VanillaConfig, {
62
+ env: { dependencies: [] },
63
+ }),
41
64
  externals: NodeJsExternals,
42
- initializers: [
43
- mcdoc.initialize,
44
- je.initialize,
45
- ],
46
- projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
65
+ initializers: [mcdoc.initialize, je.initialize],
66
+ projectRoot: fileUtil.ensureEndingSlash(
67
+ pathToFileURL(projectPath).toString(),
68
+ ),
47
69
  },
48
70
  })
49
71
  const DocumentUri = 'spyglassmc://discord-bot/file.mcfunction'
50
72
 
51
73
  interface InteractionInfo {
52
- content: string,
53
- errors: LanguageError[],
54
- activeErrorIndex: number,
55
- tokens: readonly ColorToken[],
56
- showRaw: boolean,
74
+ content: string
75
+ errors: LanguageError[]
76
+ activeErrorIndex: number
77
+ tokens: readonly ColorToken[]
78
+ showRaw: boolean
57
79
  }
58
80
  const activeInteractions = new Map<Snowflake, InteractionInfo>()
59
81
 
60
- client.on('interactionCreate', async i => {
82
+ client.on('interactionCreate', async (i) => {
61
83
  try {
62
84
  if (i.isButton()) {
63
85
  const info = activeInteractions.get(i.message.id)
64
86
  if (!info) {
65
87
  await i.update({
66
- embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
88
+ embeds: [
89
+ new MessageEmbed().setDescription('The interaction has expired!'),
90
+ ],
67
91
  components: [],
68
92
  })
69
93
  return
@@ -78,7 +102,10 @@ client.on('interactionCreate', async i => {
78
102
  } else if (i.isCommand()) {
79
103
  switch (i.commandName) {
80
104
  case 'ping':
81
- await i.reply({ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`, ephemeral: true })
105
+ await i.reply({
106
+ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`,
107
+ ephemeral: true,
108
+ })
82
109
  break
83
110
  case 'spy':
84
111
  const command = i.options.getString('command', true)
@@ -104,9 +131,9 @@ await registerCommands()
104
131
  __profiler.task('Register Commands').finalize()
105
132
 
106
133
  interface Config {
107
- clientId: string,
108
- guildId: string,
109
- token: string,
134
+ clientId: string
135
+ guildId: string
136
+ token: string
110
137
  }
111
138
 
112
139
  /**
@@ -114,10 +141,14 @@ interface Config {
114
141
  */
115
142
  async function loadConfig(): Promise<Config> {
116
143
  const path = join(parentPath, 'config.json')
117
- const config = await fileUtil.readJson(NodeJsExternals, path) as Config
118
- if (!(typeof config.clientId === 'string' &&
119
- typeof config.guildId === 'string' &&
120
- typeof config.token === 'string')) {
144
+ const config = (await fileUtil.readJson(NodeJsExternals, path)) as Config
145
+ if (
146
+ !(
147
+ typeof config.clientId === 'string' &&
148
+ typeof config.guildId === 'string' &&
149
+ typeof config.token === 'string'
150
+ )
151
+ ) {
121
152
  throw new Error(`Bad config: ${JSON.stringify(config)}`)
122
153
  }
123
154
  return config
@@ -133,29 +164,43 @@ async function registerCommands(): Promise<unknown> {
133
164
  .toJSON()
134
165
  const spyCommand = new SlashCommandBuilder()
135
166
  .setName('spy')
136
- .setDescription('Renders a mcfunction command. Error reporting coming soon™')
137
- .addStringOption(new SlashCommandStringOption()
138
- .setName('command')
139
- .setDescription('Put a single mcfunction command here')
140
- .setRequired(true)
167
+ .setDescription(
168
+ 'Renders a mcfunction command. Error reporting coming soon™',
141
169
  )
142
- .addBooleanOption(new SlashCommandBooleanOption()
143
- .setName('showraw')
144
- .setDescription('Whether to show the result ANSI code in raw code blocks')
145
- .setRequired(false)
170
+ .addStringOption(
171
+ new SlashCommandStringOption()
172
+ .setName('command')
173
+ .setDescription('Put a single mcfunction command here')
174
+ .setRequired(true),
175
+ )
176
+ .addBooleanOption(
177
+ new SlashCommandBooleanOption()
178
+ .setName('showraw')
179
+ .setDescription(
180
+ 'Whether to show the result ANSI code in raw code blocks',
181
+ )
182
+ .setRequired(false),
146
183
  )
147
184
  .toJSON()
148
185
 
149
- return rest.put(Routes.applicationGuildCommands(config.clientId, config.guildId), { body: [pingCommand, spyCommand] })
186
+ return rest.put(
187
+ Routes.applicationGuildCommands(config.clientId, config.guildId),
188
+ { body: [pingCommand, spyCommand] },
189
+ )
150
190
  }
151
191
 
152
- async function getInteractionInfo(content: string, showRaw: boolean): Promise<InteractionInfo> {
192
+ async function getInteractionInfo(
193
+ content: string,
194
+ showRaw: boolean,
195
+ ): Promise<InteractionInfo> {
153
196
  if (activeInteractions.has(content)) {
154
197
  return activeInteractions.get(content)!
155
198
  }
156
199
 
157
200
  await service.project.onDidOpen(DocumentUri, 'mcfunction', 0, content)
158
- const docAndNode = await service.project.ensureClientManagedChecked(DocumentUri)
201
+ const docAndNode = await service.project.ensureClientManagedChecked(
202
+ DocumentUri,
203
+ )
159
204
  service.project.onDidClose(DocumentUri)
160
205
  if (!docAndNode) {
161
206
  throw new Error('docAndNode is undefined')
@@ -175,16 +220,34 @@ async function getInteractionInfo(content: string, showRaw: boolean): Promise<In
175
220
  }
176
221
  }
177
222
 
178
- function getReplyOptions(info: InteractionInfo): { content: string, components: MessageActionRow[], fetchReply: true } {
223
+ function getReplyOptions(info: InteractionInfo): {
224
+ content: string
225
+ components: MessageActionRow[]
226
+ fetchReply: true
227
+ } {
179
228
  const content = getReplyContent(info)
180
229
  return {
181
- content: content.length > MaxContentLength
182
- ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
183
- : content,
184
- components: info.errors.length > 1 ? [new MessageActionRow().addComponents(
185
- new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex <= 0),
186
- new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex >= info.errors.length - 1)
187
- )] : [],
230
+ content:
231
+ content.length > MaxContentLength
232
+ ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
233
+ : content,
234
+ components:
235
+ info.errors.length > 1
236
+ ? [
237
+ new MessageActionRow().addComponents(
238
+ new MessageButton()
239
+ .setCustomId('previous')
240
+ .setLabel('Previous Error')
241
+ .setStyle('PRIMARY')
242
+ .setDisabled(info.activeErrorIndex <= 0),
243
+ new MessageButton()
244
+ .setCustomId('next')
245
+ .setLabel('Next Error')
246
+ .setStyle('PRIMARY')
247
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1),
248
+ ),
249
+ ]
250
+ : [],
188
251
  fetchReply: true,
189
252
  }
190
253
  }
@@ -201,7 +264,7 @@ type RenderFormat =
201
264
  | 'reset'
202
265
  | 'underline'
203
266
  interface RenderToken {
204
- formats: Set<RenderFormat>,
267
+ formats: Set<RenderFormat>
205
268
  range: Range
206
269
  }
207
270
  const AnsiCodeMap: Record<RenderFormat, number> = {
@@ -243,19 +306,33 @@ function getReplyContent(info: InteractionInfo): string {
243
306
 
244
307
  const activeError: LanguageError | undefined = errors[activeErrorIndex]
245
308
 
246
- return `\`\`\`${info.showRaw ? '' : 'ansi'}\n${ansiCode}\n\`\`\`${activeError
247
- ? `\n\`${errorSeverityToChar(activeError.severity)} ${Range.toString(activeError.range)} ${activeError.message}\``
248
- : ''}`
309
+ return `\`\`\`${info.showRaw ? '' : 'ansi'}\n${ansiCode}\n\`\`\`${
310
+ activeError
311
+ ? `\n\`${errorSeverityToChar(activeError.severity)} ${Range.toString(
312
+ activeError.range,
313
+ )} ${activeError.message}\``
314
+ : ''
315
+ }`
249
316
  }
250
317
 
251
318
  /**
252
319
  * @returns Unsorted tokens.
253
320
  */
254
- function toRenderTokens({ tokens, errors, activeErrorIndex }: InteractionInfo): RenderToken[] {
255
- const ans: RenderToken[] = tokens.map(t => ({ formats: ColorTokenTypeLegend[t.type], range: t.range }))
321
+ function toRenderTokens({
322
+ tokens,
323
+ errors,
324
+ activeErrorIndex,
325
+ }: InteractionInfo): RenderToken[] {
326
+ const ans: RenderToken[] = tokens.map((t) => ({
327
+ formats: ColorTokenTypeLegend[t.type],
328
+ range: t.range,
329
+ }))
256
330
  const activeError: LanguageError | undefined = errors[activeErrorIndex]
257
331
  if (activeError) {
258
- ans.push({ formats: new Set(['background_orange', 'foreground_white']), range: activeError.range })
332
+ ans.push({
333
+ formats: new Set(['background_orange', 'foreground_white']),
334
+ range: activeError.range,
335
+ })
259
336
  }
260
337
  return ans
261
338
  }
@@ -263,9 +340,13 @@ function toRenderTokens({ tokens, errors, activeErrorIndex }: InteractionInfo):
263
340
  function getAnsiCode(content: string, tokens: RenderToken[]): string {
264
341
  let ans: string = toAnsiEscapeCode(['reset'])
265
342
  tokens = tokens
266
- .map(t => t.range.end - t.range.start === 0
267
- ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
268
- : t
343
+ .map((t) =>
344
+ t.range.end - t.range.start === 0
345
+ ? {
346
+ range: { start: t.range.start, end: t.range.start + 1 },
347
+ formats: t.formats,
348
+ }
349
+ : t,
269
350
  )
270
351
  .sort((a, b) => a.range.start - b.range.start)
271
352
 
@@ -287,11 +368,15 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
287
368
  }
288
369
  insertedTokens.push({
289
370
  formats: new Set([...current.formats, ...next.formats]),
290
- range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
371
+ range: {
372
+ start: next.range.start,
373
+ end: Math.min(current.range.end, next.range.end),
374
+ },
291
375
  })
292
376
  if (current.range.end !== next.range.end) {
293
377
  insertedTokens.push({
294
- formats: current.range.end < next.range.end ? next.formats : current.formats,
378
+ formats:
379
+ current.range.end < next.range.end ? next.formats : current.formats,
295
380
  range: {
296
381
  start: Math.min(current.range.end, next.range.end),
297
382
  end: Math.max(current.range.end, next.range.end),
@@ -314,8 +399,10 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
314
399
  return ans
315
400
  }
316
401
 
317
- function toAnsiEscapeCode(formats: Iterable<RenderFormat>): `\u001b[${string}m` {
318
- return `\u001b[${[...formats].map(v => AnsiCodeMap[v]).join(';')}m`
402
+ function toAnsiEscapeCode(
403
+ formats: Iterable<RenderFormat>,
404
+ ): `\u001b[${string}m` {
405
+ return `\u001b[${[...formats].map((v) => AnsiCodeMap[v]).join(';')}m`
319
406
  }
320
407
 
321
408
  function errorSeverityToChar(severity: ErrorSeverity): string {