Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move PackageJson to AppSpec #2506

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion waspc/src/Wasp/AppSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ import qualified Wasp.AppSpec.ExternalFiles as ExternalFiles
import Wasp.AppSpec.Job (Job)
import Wasp.AppSpec.Operation (Operation)
import qualified Wasp.AppSpec.Operation as AS.Operation
import Wasp.AppSpec.PackageJson (PackageJson)
import Wasp.AppSpec.Page (Page)
import Wasp.AppSpec.Query (Query)
import Wasp.AppSpec.Route (Route)
import Wasp.Env (EnvVar)
import Wasp.ExternalConfig.PackageJson (PackageJson)
import Wasp.Node.Version (oldestWaspSupportedNodeVersion)
import Wasp.Project.Common (SrcTsConfigFile, WaspProjectDir)
import Wasp.Project.Db.Migrations (DbMigrationsDir)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}

module Wasp.ExternalConfig.PackageJson
module Wasp.AppSpec.PackageJson
( PackageJson (..),
DependenciesMap,
PackageName,
Expand Down
2 changes: 1 addition & 1 deletion waspc/src/Wasp/Generator/ExternalConfig/PackageJson.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module Wasp.Generator.ExternalConfig.PackageJson
where

import qualified Data.Map as M
import qualified Wasp.ExternalConfig.PackageJson as P
import qualified Wasp.AppSpec.PackageJson as P
import Wasp.Generator.Common (prismaVersion)
import Wasp.Generator.ExternalConfig.Common (ErrorMsg)
import Wasp.Generator.WebAppGenerator.Common (reactRouterVersion, reactVersion)
Expand Down
6 changes: 3 additions & 3 deletions waspc/src/Wasp/Generator/NpmDependencies.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import GHC.Generics
import Wasp.AppSpec (AppSpec)
import qualified Wasp.AppSpec as AS
import qualified Wasp.AppSpec.App.Dependency as D
import qualified Wasp.ExternalConfig.PackageJson as EC.PackageJson
import qualified Wasp.AppSpec.PackageJson as AS.PackageJson
import Wasp.Generator.Monad (Generator, GeneratorError (..), logAndThrowGeneratorError)

data NpmDepsForFramework = NpmDepsForFramework
Expand Down Expand Up @@ -110,9 +110,9 @@ buildWaspFrameworkNpmDeps spec forServer forWebApp =
getUserNpmDepsForPackage :: AppSpec -> NpmDepsForUser
getUserNpmDepsForPackage spec =
NpmDepsForUser
{ userDependencies = EC.PackageJson.getDependencies $ AS.packageJson spec,
{ userDependencies = AS.PackageJson.getDependencies $ AS.packageJson spec,
-- Should we allow user devDependencies? https://github.com/wasp-lang/wasp/issues/456
userDevDependencies = EC.PackageJson.getDevDependencies $ AS.packageJson spec
userDevDependencies = AS.PackageJson.getDevDependencies $ AS.packageJson spec
}

conflictErrorToMessage :: DependencyConflictError -> String
Expand Down
8 changes: 4 additions & 4 deletions waspc/src/Wasp/Project/ExternalConfig.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ where

import Control.Monad.Except (ExceptT (ExceptT), runExceptT)
import StrongPath (Abs, Dir, File, Path', Rel)
import qualified Wasp.ExternalConfig.PackageJson as P
import qualified Wasp.ExternalConfig.TsConfig as T
import Wasp.AppSpec.PackageJson (PackageJson)
import Wasp.ExternalConfig.TsConfig (TsConfig)
import Wasp.Project.Common
( CompileError,
SrcTsConfigFile,
Expand All @@ -17,8 +17,8 @@ import Wasp.Project.ExternalConfig.PackageJson (analyzePackageJsonFile)
import Wasp.Project.ExternalConfig.TsConfig (analyzeSrcTsConfigFile)

data ExternalConfigs = ExternalConfigs
{ _packageJson :: P.PackageJson,
_tsConfig :: T.TsConfig,
{ _packageJson :: PackageJson,
_tsConfig :: TsConfig,
_srcTsConfigPath :: Path' (Rel WaspProjectDir) (File SrcTsConfigFile)
}
deriving (Show)
Expand Down
6 changes: 3 additions & 3 deletions waspc/src/Wasp/Project/ExternalConfig/PackageJson.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Control.Monad.Except (ExceptT (ExceptT), MonadError (throwError), runExce
import qualified Data.Aeson as Aeson
import Data.Either.Extra (maybeToEither)
import StrongPath (Abs, Dir, File, Path', toFilePath)
import qualified Wasp.ExternalConfig.PackageJson as P
import Wasp.AppSpec.PackageJson (PackageJson)
import Wasp.Generator.ExternalConfig.PackageJson (validatePackageJson)
import Wasp.Project.Common
( PackageJsonFile,
Expand All @@ -18,7 +18,7 @@ import Wasp.Project.Common
)
import qualified Wasp.Util.IO as IOUtil

analyzePackageJsonFile :: Path' Abs (Dir WaspProjectDir) -> IO (Either [String] P.PackageJson)
analyzePackageJsonFile :: Path' Abs (Dir WaspProjectDir) -> IO (Either [String] PackageJson)
analyzePackageJsonFile waspProjectDir = runExceptT $ do
packageJsonFile <- ExceptT findPackageJsonFileOrError
packageJson <- ExceptT $ readPackageJsonFile packageJsonFile
Expand All @@ -32,7 +32,7 @@ analyzePackageJsonFile waspProjectDir = runExceptT $ do
findPackageJsonFile :: Path' Abs (Dir WaspProjectDir) -> IO (Maybe (Path' Abs (File PackageJsonFile)))
findPackageJsonFile waspProjectDir = findFileInWaspProjectDir waspProjectDir packageJsonInWaspProjectDir

readPackageJsonFile :: Path' Abs (File PackageJsonFile) -> IO (Either [String] P.PackageJson)
readPackageJsonFile :: Path' Abs (File PackageJsonFile) -> IO (Either [String] PackageJson)
readPackageJsonFile packageJsonFile = do
byteString <- IOUtil.readFileBytes packageJsonFile
return $ maybeToEither ["Error parsing the package.json file"] $ Aeson.decode byteString
8 changes: 3 additions & 5 deletions waspc/src/Wasp/Util.hs
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,9 @@ camelToKebabCase camel@(camelHead : camelTail) = kebabHead : kebabTail
isCamelHump (a, b) = (not . isUpper) a && isUpper b

kebabToCamelCase :: String -> String
kebabToCamelCase = concat . capitalizeAllWordsExceptForTheFirstOne . wordsBy (== '-')
where
capitalizeAllWordsExceptForTheFirstOne :: [String] -> [String]
capitalizeAllWordsExceptForTheFirstOne [] = []
capitalizeAllWordsExceptForTheFirstOne (firstWord : otherWords) = firstWord : map toUpperFirst otherWords
kebabToCamelCase kebabCaseStr = case wordsBy (== '-') kebabCaseStr of
[] -> ""
(firstWord : otherWords) -> concat $ firstWord : map toUpperFirst otherWords
Comment on lines +81 to +83
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has nothing to do with the PR, but I couldn't resist.


-- | Applies given function to the first element of the list.
-- If list is empty, returns empty list.
Expand Down
10 changes: 5 additions & 5 deletions waspc/test/AppSpec/ValidTest.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ import qualified Wasp.AppSpec.Crud as AS.Crud
import qualified Wasp.AppSpec.Entity as AS.Entity
import qualified Wasp.AppSpec.ExtImport as AS.ExtImport
import qualified Wasp.AppSpec.Job as AS.Job
import qualified Wasp.AppSpec.PackageJson as AS.PackageJson
import qualified Wasp.AppSpec.Page as AS.Page
import qualified Wasp.AppSpec.Query as AS.Query
import qualified Wasp.AppSpec.Route as AS.Route
import qualified Wasp.AppSpec.Valid as ASV
import qualified Wasp.ExternalConfig.PackageJson as EC.PackageJson
import qualified Wasp.Psl.Ast.Argument as Psl.Argument
import qualified Wasp.Psl.Ast.Attribute as Psl.Attribute
import qualified Wasp.Psl.Ast.Model as Psl.Model
Expand Down Expand Up @@ -477,10 +477,10 @@ spec_AppSpecValid = do
AS.externalCodeFiles = [],
AS.externalPublicFiles = [],
AS.packageJson =
EC.PackageJson.PackageJson
{ EC.PackageJson.name = "testApp",
EC.PackageJson.dependencies = M.empty,
EC.PackageJson.devDependencies = M.empty
AS.PackageJson.PackageJson
{ AS.PackageJson.name = "testApp",
AS.PackageJson.dependencies = M.empty,
AS.PackageJson.devDependencies = M.empty
},
AS.isBuild = False,
AS.migrationsDir = Nothing,
Expand Down
10 changes: 5 additions & 5 deletions waspc/test/Generator/WebAppGeneratorTest.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import qualified Wasp.AppSpec as AS
import qualified Wasp.AppSpec.App as AS.App
import qualified Wasp.AppSpec.App.Wasp as AS.Wasp
import qualified Wasp.AppSpec.Core.Decl as AS.Decl
import qualified Wasp.ExternalConfig.PackageJson as EC.PackageJson
import qualified Wasp.AppSpec.PackageJson as AS.PackageJson
import Wasp.Generator.FileDraft
import qualified Wasp.Generator.FileDraft.CopyAndModifyTextFileDraft as CMTextFD
import qualified Wasp.Generator.FileDraft.CopyDirFileDraft as CopyDirFD
Expand Down Expand Up @@ -52,10 +52,10 @@ spec_WebAppGenerator = do
AS.externalCodeFiles = [],
AS.externalPublicFiles = [],
AS.packageJson =
EC.PackageJson.PackageJson
{ EC.PackageJson.name = "testApp",
EC.PackageJson.dependencies = M.empty,
EC.PackageJson.devDependencies = M.empty
AS.PackageJson.PackageJson
{ AS.PackageJson.name = "testApp",
AS.PackageJson.dependencies = M.empty,
AS.PackageJson.devDependencies = M.empty
},
AS.isBuild = False,
AS.migrationsDir = Nothing,
Expand Down
1 change: 1 addition & 0 deletions waspc/test/UtilTest.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ spec_kebabToCamelCase = do
"todo-App" ~> "todoApp"
"TODO-app" ~> "TODOApp"
"s3-folder" ~> "s3Folder"
"-s3--folder---" ~> "s3Folder"
"foo---bar-baz" ~> "fooBarBaz"
"-foo-" ~> "foo"
"-" ~> ""
Expand Down
2 changes: 1 addition & 1 deletion waspc/waspc.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@ library
Wasp.AppSpec.Job
Wasp.AppSpec.JSON
Wasp.AppSpec.Operation
Wasp.AppSpec.PackageJson
Wasp.AppSpec.Page
Wasp.AppSpec.Query
Wasp.AppSpec.Route
Expand All @@ -267,7 +268,6 @@ library
Wasp.Db.Postgres
Wasp.Error
Wasp.Env
Wasp.ExternalConfig.PackageJson
Wasp.ExternalConfig.TsConfig
Wasp.Generator
Wasp.Generator.AuthProviders
Expand Down
Loading