MCPcopy Index your code
hub / github.com/formatjs/formatjs / generatePackageJson

Function generatePackageJson

tools/generate-package-json.ts:242–298  ·  view source on GitHub ↗
(
  metadata: PackageJsonMetadata,
  rootPackageJson: JsonObject
)

Source from the content-addressed store, hash-verified

240}
241
242export function generatePackageJson(
243 metadata: PackageJsonMetadata,
244 rootPackageJson: JsonObject
245): JsonObject {
246 if (metadata.fields.gitHead !== undefined) {
247 throw new Error(
248 'gitHead must not be set in generated package.json metadata'
249 )
250 }
251
252 for (const field of ROOT_VERSION_FIELDS) {
253 if (metadata.fields[field] !== undefined) {
254 throw new Error(
255 `${field} must be generated from Bazel labels, not static fields`
256 )
257 }
258 }
259
260 const rootVersions = rootVersionMap(rootPackageJson)
261 const workspaceDependencies = new Set(metadata.workspaceDependencies ?? [])
262 validateNoDevDependencies(metadata)
263 validateDependencyVersionOverrides(metadata, workspaceDependencies)
264 const result: JsonObject = {...metadata.fields}
265
266 for (const field of DEPENDENCY_FIELDS) {
267 const deps = dependencyObject(
268 metadata[field],
269 metadata,
270 rootVersions,
271 workspaceDependencies
272 )
273 if (deps) {
274 result[field] = deps
275 }
276 }
277
278 if (metadata.sortExports && result.exports) {
279 result.exports = orderExports(result.exports, metadata.sortExports)
280 }
281
282 if (result.keywords) {
283 result.keywords = orderedStringArray(result.keywords)
284 }
285
286 if (
287 result.repository &&
288 typeof result.repository === 'object' &&
289 !Array.isArray(result.repository)
290 ) {
291 result.repository = orderObjectByKeys(
292 result.repository as JsonObject,
293 REPOSITORY_SORT_FIRST
294 )
295 }
296
297 return orderObjectByKeys(result, metadata.sortFirst ?? [])
298}
299

Callers 2

mainFunction · 0.85

Calls 7

rootVersionMapFunction · 0.85
dependencyObjectFunction · 0.85
orderExportsFunction · 0.85
orderedStringArrayFunction · 0.85
orderObjectByKeysFunction · 0.85

Tested by

no test coverage detected