NPM.Normalize (NPM v0.6.0)

Copy Markdown View Source

Normalizes package.json data.

Applies npm's normalization rules: defaulting main, normalizing repository URLs, handling people fields, etc.

Summary

Functions

Normalizes a package.json data map.

Normalizes the bugs field from a string URL.

Normalizes the homepage field — removes trailing slash.

Normalizes the main field. Defaults to index.js if missing.

Normalizes people fields (author, maintainers, contributors).

Normalizes the repository field.

Parses a person string like "Name <email> (url)" into a map.

Functions

normalize(data)

@spec normalize(map()) :: map()

Normalizes a package.json data map.

normalize_bugs(data)

@spec normalize_bugs(map()) :: map()

Normalizes the bugs field from a string URL.

normalize_homepage(data)

@spec normalize_homepage(map()) :: map()

Normalizes the homepage field — removes trailing slash.

normalize_main(data)

@spec normalize_main(map()) :: map()

Normalizes the main field. Defaults to index.js if missing.

normalize_people(data)

@spec normalize_people(map()) :: map()

Normalizes people fields (author, maintainers, contributors).

Converts shorthand "Name <email>" strings to objects.

normalize_repository(data)

@spec normalize_repository(map()) :: map()

Normalizes the repository field.

Converts shorthand strings like "github:user/repo" to full objects.

parse_person(str)

@spec parse_person(String.t()) :: map()

Parses a person string like "Name <email> (url)" into a map.