Packages
LowEndInsight is a simple 'bus-factor' risk analysis library for Open Source Software which is managed within a Git repository. Provide the git URL and the library will respond with a basic Elixir Map structure report.
Current section
Files
Jump to
Current section
Files
lib/npm/packagefile.ex
defmodule Npm.Packagefile do
@moduledoc """
Provides package.json dependency parser
"""
@doc """
parse!: parses package.json dependencies, returning a list of those
dependencies along with the count of total dependencies.
"""
@spec parse!(binary) :: {[any], non_neg_integer}
def parse!(content) do
deps =
content
|> Jason.decode()
|> extract_deps()
|> Enum.to_list()
{deps, length(deps)}
end
defp extract_deps({:ok, %{"dependencies" => deps, "devDependencies" => devDeps}}), do: Map.merge(deps, devDeps)
defp extract_deps({:ok, %{"dependencies" => deps}}), do: deps
defp extract_deps({:ok, %{"devDependencies" => devDeps}}), do: devDeps
end