{-# 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 #-}