yarn2nix-0.7.0: src/Distribution/Nixpkgs/Nodejs/Utils.hs
{-# LANGUAGE NoImplicitPrelude, OverloadedStrings, RecordWildCards, LambdaCase #-}
{-|
Description: Misc utils
-}
module Distribution.Nixpkgs.Nodejs.Utils where
import Protolude
import qualified Yarn.Lock.Types as YLT
-- | Representation of a PackageKey as nix attribute name.
packageKeyToSymbol :: YLT.PackageKey -> Text
packageKeyToSymbol (YLT.PackageKey{..}) =
packageKeyNameToSymbol name <> "@" <> npmVersionSpec
{-# INLINABLE packageKeyToSymbol #-}
-- | Representation of a PackageKeyName as nix attribute name.
packageKeyNameToSymbol :: YLT.PackageKeyName -> Text
packageKeyNameToSymbol = \case
YLT.SimplePackageKey n -> n
YLT.ScopedPackageKey scope n -> "@" <> scope <> "/" <> n
{-# INLINABLE packageKeyNameToSymbol #-}