MCPcopy Index your code
hub / github.com/SchemaStore/schemastore / readDataFile

Function readDataFile

cli.js:334–382  ·  view source on GitHub ↗
(
  /** @type {{filepath: string, text: string }} */ obj,
)

Source from the content-addressed store, hash-verified

332}
333
334async function readDataFile(
335 /** @type {{filepath: string, text: string }} */ obj,
336) {
337 const fileExtension = path.parse(obj.filepath).ext
338 switch (fileExtension) {
339 case '.json':
340 try {
341 return JSON.parse(obj.text)
342 } catch (err) {
343 printErrorAndExit(err, [
344 `Failed to parse JSON file "./${obj.filepath}"`,
345 ])
346 }
347 break
348 case '.jsonc':
349 try {
350 return jsoncParser.parse(obj.text)
351 } catch (err) {
352 printErrorAndExit(err, [
353 `Failed to parse JSONC file "./${obj.filepath}"`,
354 ])
355 }
356 break
357 case '.yaml':
358 case '.yml':
359 try {
360 return YAML.parse(obj.text)
361 } catch (err) {
362 printErrorAndExit(err, [
363 `Failed to parse YAML file "./${obj.filepath}"`,
364 ])
365 }
366 break
367 case '.toml':
368 try {
369 return TOML.parse(obj.text)
370 } catch (err) {
371 printErrorAndExit(err, [
372 `Failed to parse TOML file "./${obj.filepath}"`,
373 ])
374 }
375 break
376 default:
377 printErrorAndExit(new Error(), [
378 `Unable to handle file extension "${fileExtension}" for file "./${obj.filepath}"`,
379 ])
380 break
381 }
382}
383
384/**
385 * @param {unknown} error

Callers 1

toFileFunction · 0.85

Calls 1

printErrorAndExitFunction · 0.85

Tested by

no test coverage detected