MCPcopy
hub / github.com/opentrace/opentrace / parsePackageJson

Function parsePackageJson

ui/src/components/pipeline/parser/manifestParser.ts:115–153  ·  view source on GitHub ↗
(
  content: string,
  source: string,
)

Source from the content-addressed store, hash-verified

113// ---------------------------------------------------------------------------
114
115export function parsePackageJson(
116 content: string,
117 source: string,
118): ManifestParseResult {
119 const errors: string[] = [];
120 const deps: ParsedDependency[] = [];
121
122 let parsed: Record<string, unknown>;
123 try {
124 parsed = JSON.parse(content);
125 } catch (e) {
126 return { dependencies: [], errors: [`Failed to parse ${source}: ${e}`] };
127 }
128
129 const sections: Array<[string, string]> = [
130 ['dependencies', 'runtime'],
131 ['devDependencies', 'dev'],
132 ['peerDependencies', 'peer'],
133 ['optionalDependencies', 'optional'],
134 ];
135
136 for (const [key, depType] of sections) {
137 const section = parsed[key];
138 if (!section || typeof section !== 'object') continue;
139 for (const [name, version] of Object.entries(
140 section as Record<string, string>,
141 )) {
142 deps.push({
143 name,
144 version: typeof version === 'string' ? version : '',
145 registry: 'npm',
146 source,
147 dependencyType: depType,
148 });
149 }
150 }
151
152 return { dependencies: deps, errors };
153}
154
155// ---------------------------------------------------------------------------
156// go.mod

Callers 2

parseManifestFunction · 0.85

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected