From 27ca30d09ce876bb5d51760b3f5107fce5547a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Fri, 6 Sep 2024 17:04:05 +0200 Subject: [PATCH 01/10] Fix small mistakes in generator --- waspc/src/Wasp/AppSpec/Job.hs | 7 ------- waspc/src/Wasp/Generator/DbGenerator.hs | 2 +- waspc/src/Wasp/Generator/Setup.hs | 4 ++-- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/waspc/src/Wasp/AppSpec/Job.hs b/waspc/src/Wasp/AppSpec/Job.hs index 71f456cf2e..9d8a03cf21 100644 --- a/waspc/src/Wasp/AppSpec/Job.hs +++ b/waspc/src/Wasp/AppSpec/Job.hs @@ -28,8 +28,6 @@ data Job = Job } deriving (Show, Eq, Data) -instance IsDecl Job - data JobExecutor = PgBoss deriving (Show, Eq, Data, Ord, Enum, Bounded) @@ -39,8 +37,6 @@ data Perform = Perform } deriving (Show, Eq, Data) -instance IsDecl Perform - -- Allows jobs to run via some cron schedule. data Schedule = Schedule { cron :: String, -- 5 field cron expression, exe: "*/5 * * * *". @@ -49,13 +45,10 @@ data Schedule = Schedule } deriving (Show, Eq, Data) -instance IsDecl Schedule - -- These are optional executor-specific JSON options we pass -- directly through to the executor when submitting jobs. data ExecutorOptions = ExecutorOptions { pgBoss :: Maybe JSON, - simple :: Maybe JSON } deriving (Show, Eq, Data) diff --git a/waspc/src/Wasp/Generator/DbGenerator.hs b/waspc/src/Wasp/Generator/DbGenerator.hs index ac9b0c6a35..5a4870bcce 100644 --- a/waspc/src/Wasp/Generator/DbGenerator.hs +++ b/waspc/src/Wasp/Generator/DbGenerator.hs @@ -243,7 +243,7 @@ generatePrismaClient spec projectRootDir = do generatePrismaClientIfEntitiesExist :: IO (Maybe GeneratorError) generatePrismaClientIfEntitiesExist | entitiesExist = - either (Just . GenericGeneratorError) (const Nothing) <$> DbOps.generatePrismaClient projectRootDir + either (Just . GenericGeneratorError) (const Nothing) <$> DbOps.generatePrismaClient projectRootDir | otherwise = return Nothing entitiesExist = not . null $ getEntities spec diff --git a/waspc/src/Wasp/Generator/Setup.hs b/waspc/src/Wasp/Generator/Setup.hs index c89817a008..41749cd889 100644 --- a/waspc/src/Wasp/Generator/Setup.hs +++ b/waspc/src/Wasp/Generator/Setup.hs @@ -22,8 +22,8 @@ runSetup spec projectRootDir sendMessage = do setUpDatabaseResults@(_warnings, _errors@[]) -> do -- todo(filip): Should we consider building SDK as part of code generation? -- todo(filip): Avoid building on each setup if we don't need to. - buildsSdkResults <- buildSdk projectRootDir sendMessage - return $ setUpDatabaseResults <> buildsSdkResults + buildSdkResults <- buildSdk projectRootDir sendMessage + return $ setUpDatabaseResults <> buildSdkResults setUpDatabaseResults -> return setUpDatabaseResults Left npmInstallError -> return ([], [npmInstallError]) From a1842e8509006859bfa747486dbc7b773cb72c72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Fri, 6 Sep 2024 18:12:36 +0200 Subject: [PATCH 02/10] Fix syntax error --- waspc/src/Wasp/Project/Analyze.hs | 87 ++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/waspc/src/Wasp/Project/Analyze.hs b/waspc/src/Wasp/Project/Analyze.hs index 3cccb0856b..dee381021d 100644 --- a/waspc/src/Wasp/Project/Analyze.hs +++ b/waspc/src/Wasp/Project/Analyze.hs @@ -5,13 +5,24 @@ module Wasp.Project.Analyze findWaspFile, findPackageJsonFile, analyzePrismaSchema, + WaspFile (..), ) where +import Control.Applicative ((<|>)) import Control.Arrow (ArrowChoice (left)) +import Control.Concurrent (newChan, readChan) +import Control.Concurrent.Async (concurrently) +import Control.Concurrent.Chan (Chan) +import Control.Monad.IO.Class (liftIO) import qualified Data.Aeson as Aeson +import qualified Data.Conduit.Combinators as T +import Data.Conduit.Process.Typed (ExitCode (..)) import Data.List (find, isSuffixOf) +import qualified Data.Text as T import StrongPath (Abs, Dir, File', Path', toFilePath, ()) +import qualified StrongPath as SP +import StrongPath.Types (File) import qualified Wasp.Analyzer as Analyzer import Wasp.Analyzer.AnalyzeError (getErrorMessageAndCtx) import Wasp.Analyzer.Parser.Ctx (Ctx) @@ -23,6 +34,10 @@ import qualified Wasp.CompileOptions as CompileOptions import qualified Wasp.ConfigFile as CF import Wasp.Error (showCompilerErrorForTerminal) import qualified Wasp.Generator.ConfigFile as G.CF +import qualified Wasp.Generator.Job as J +import Wasp.Generator.Job.IO (readJobMessagesAndPrintThemPrefixed) +import Wasp.Generator.Job.IO.PrefixedWriter (printJobMessagePrefixed, runPrefixedWriter) +import Wasp.Generator.Job.Process (runNodeCommandAsJob) import Wasp.Project.Common ( CompileError, CompileWarning, @@ -69,8 +84,57 @@ analyzeWaspProject waspDir options = do where fileNotFoundMessage = "Couldn't find the *.wasp file in the " ++ toFilePath waspDir ++ " directory" -analyzeWaspFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) -analyzeWaspFile prismaSchemaAst waspFilePath = do +analyzeWaspFile :: Psl.Schema.Schema -> WaspFile -> IO (Either [CompileError] [AS.Decl]) +analyzeWaspFile prismaSchemaAst = \case + WaspLangFile waspFilePath -> analyzeWaspLangFile prismaSchemaAst waspFilePath + WaspTsFile waspFilePath -> analyzeWaspTsFile prismaSchemaAst waspFilePath + +analyzeWaspTsFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) +analyzeWaspTsFile _prismaSchemaAst waspFilePath = do + let workingDir = SP.parent waspFilePath + chan <- newChan + (_, tscExitCode) <- + concurrently + (readJobMessagesAndPrintThemPrefixed chan) + (runNodeCommandAsJob workingDir "npx" ["tsc", "-p", "tsconfig.node.json"] J.Wasp chan) + + case tscExitCode of + ExitFailure _status -> return $ Left ["Error while running TypeScript compiler on the *.wasp.mts file."] + ExitSuccess -> do + otherChan <- newChan + (_, runExitCode) <- + concurrently + (handleRunJsMessages otherChan) + ( runNodeCommandAsJob + workingDir + "node" + [ SP.fromAbsDir workingDir ++ "node_modules/wasp-ts-sdk/dist/run.js", + SP.fromAbsDir workingDir ++ ".wasp/config/main.wasp.mjs" + ] + J.Wasp + otherChan + ) + case runExitCode of + ExitFailure _status -> return $ Left ["Error while running the compiled *.wasp.mts file."] + ExitSuccess -> return $ Right [] + where + handleRunJsMessages :: Chan J.JobMessage -> IO () + handleRunJsMessages = runPrefixedWriter . processMessages + processMessages chan = do + jobMsg <- liftIO $ readChan chan + case J._data jobMsg of + J.JobOutput payload J.Stdout -> do + -- let payload:: String = read $ T.unpack text + liftIO $ putStrLn "Ovo smo dobili na stdout" + -- parse payload as json + let json = Aeson.toJSON payload + liftIO $ print json + return () + J.JobOutput _ J.Stderr -> printJobMessagePrefixed jobMsg >> processMessages chan + J.JobExit {} -> return () + +analyzeWaspLangFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) +analyzeWaspLangFile prismaSchemaAst waspFilePath = do waspFileContent <- IOUtil.readFile waspFilePath left (map $ showCompilerErrorForTerminal (waspFilePath, waspFileContent)) <$> analyzeWaspFileContent prismaSchemaAst waspFileContent @@ -118,16 +182,25 @@ constructAppSpec waspDir options packageJson parsedPrismaSchema decls = do return $ runValidation ASV.validateAppSpec appSpec -findWaspFile :: Path' Abs (Dir WaspProjectDir) -> IO (Maybe (Path' Abs File')) +data WaspFile + = WaspLangFile {_path :: !(Path' Abs File')} + | WaspTsFile {_path :: !(Path' Abs File')} + deriving (Show) + +findWaspFile :: Path' Abs (Dir WaspProjectDir) -> IO (Maybe WaspFile) findWaspFile waspDir = do files <- fst <$> IOUtil.listDirectory waspDir - return $ (waspDir ) <$> find isWaspFile files + return $ findWaspTsFile files <|> findWaspLangFile files where - isWaspFile path = - ".wasp" - `isSuffixOf` toFilePath path + findWaspTsFile files = WaspTsFile . (waspDir ) <$> find (`hasExtension` ".wasp.mts") files + findWaspLangFile files = WaspLangFile . (waspDir ) <$> find isWaspLangFile files + isWaspLangFile path = + path `hasExtension` ".wasp" && (length (toFilePath path) > length (".wasp" :: String)) +hasExtension :: Path' s (File f) -> String -> Bool +hasExtension path ext = ext `isSuffixOf` toFilePath path + analyzePackageJsonContent :: Path' Abs (Dir WaspProjectDir) -> IO (Either [CompileError] PackageJson) analyzePackageJsonContent waspProjectDir = findPackageJsonFile waspProjectDir >>= \case From 02dc4d8b8e5a4ca90dbf9e784aa468f2f0792526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Fri, 6 Sep 2024 18:13:38 +0200 Subject: [PATCH 03/10] Revert mistake with Job decl --- waspc/src/Wasp/AppSpec/Job.hs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/waspc/src/Wasp/AppSpec/Job.hs b/waspc/src/Wasp/AppSpec/Job.hs index 9d8a03cf21..2d067968ff 100644 --- a/waspc/src/Wasp/AppSpec/Job.hs +++ b/waspc/src/Wasp/AppSpec/Job.hs @@ -28,6 +28,8 @@ data Job = Job } deriving (Show, Eq, Data) +instance IsDecl Job + data JobExecutor = PgBoss deriving (Show, Eq, Data, Ord, Enum, Bounded) From 93a0eee90c45ec511b1605c2fdf59d2b86e7fd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Fri, 6 Sep 2024 18:14:10 +0200 Subject: [PATCH 04/10] Fix syntax error --- waspc/src/Wasp/AppSpec/Job.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/waspc/src/Wasp/AppSpec/Job.hs b/waspc/src/Wasp/AppSpec/Job.hs index 2d067968ff..edb3ce84c9 100644 --- a/waspc/src/Wasp/AppSpec/Job.hs +++ b/waspc/src/Wasp/AppSpec/Job.hs @@ -28,7 +28,7 @@ data Job = Job } deriving (Show, Eq, Data) -instance IsDecl Job +instance IsDecl Job data JobExecutor = PgBoss deriving (Show, Eq, Data, Ord, Enum, Bounded) @@ -50,7 +50,7 @@ data Schedule = Schedule -- These are optional executor-specific JSON options we pass -- directly through to the executor when submitting jobs. data ExecutorOptions = ExecutorOptions - { pgBoss :: Maybe JSON, + { pgBoss :: Maybe JSON } deriving (Show, Eq, Data) From 4fbbf5275deff137f9d877ec94919ab43139d596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Fri, 6 Sep 2024 18:21:38 +0200 Subject: [PATCH 05/10] Fix tests --- waspc/test/AnalyzerTest.hs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/waspc/test/AnalyzerTest.hs b/waspc/test/AnalyzerTest.hs index 1a93c29f1a..6b145d7478 100644 --- a/waspc/test/AnalyzerTest.hs +++ b/waspc/test/AnalyzerTest.hs @@ -269,8 +269,7 @@ spec_Analyzer = do ) ( Just $ Job.ExecutorOptions - { Job.pgBoss = JSON.JSON <$> Aeson.decode "{\"retryLimit\":1}", - Job.simple = Nothing + { Job.pgBoss = JSON.JSON <$> Aeson.decode "{\"retryLimit\":1}" } ) let jobSchedule = @@ -279,8 +278,7 @@ spec_Analyzer = do (JSON.JSON <$> Aeson.decode "{\"job\":\"args\"}") ( Just $ Job.ExecutorOptions - { Job.pgBoss = JSON.JSON <$> Aeson.decode "{\"retryLimit\":0}", - Job.simple = Nothing + { Job.pgBoss = JSON.JSON <$> Aeson.decode "{\"retryLimit\":0}" } ) let expectedJob = From 78b2be99dccdcf68d89367157f061d61769a8307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Mon, 9 Sep 2024 17:08:27 +0200 Subject: [PATCH 06/10] Revert "Fix syntax error" This reverts commit a1842e8509006859bfa747486dbc7b773cb72c72. --- waspc/src/Wasp/Project/Analyze.hs | 87 +++---------------------------- 1 file changed, 7 insertions(+), 80 deletions(-) diff --git a/waspc/src/Wasp/Project/Analyze.hs b/waspc/src/Wasp/Project/Analyze.hs index dee381021d..3cccb0856b 100644 --- a/waspc/src/Wasp/Project/Analyze.hs +++ b/waspc/src/Wasp/Project/Analyze.hs @@ -5,24 +5,13 @@ module Wasp.Project.Analyze findWaspFile, findPackageJsonFile, analyzePrismaSchema, - WaspFile (..), ) where -import Control.Applicative ((<|>)) import Control.Arrow (ArrowChoice (left)) -import Control.Concurrent (newChan, readChan) -import Control.Concurrent.Async (concurrently) -import Control.Concurrent.Chan (Chan) -import Control.Monad.IO.Class (liftIO) import qualified Data.Aeson as Aeson -import qualified Data.Conduit.Combinators as T -import Data.Conduit.Process.Typed (ExitCode (..)) import Data.List (find, isSuffixOf) -import qualified Data.Text as T import StrongPath (Abs, Dir, File', Path', toFilePath, ()) -import qualified StrongPath as SP -import StrongPath.Types (File) import qualified Wasp.Analyzer as Analyzer import Wasp.Analyzer.AnalyzeError (getErrorMessageAndCtx) import Wasp.Analyzer.Parser.Ctx (Ctx) @@ -34,10 +23,6 @@ import qualified Wasp.CompileOptions as CompileOptions import qualified Wasp.ConfigFile as CF import Wasp.Error (showCompilerErrorForTerminal) import qualified Wasp.Generator.ConfigFile as G.CF -import qualified Wasp.Generator.Job as J -import Wasp.Generator.Job.IO (readJobMessagesAndPrintThemPrefixed) -import Wasp.Generator.Job.IO.PrefixedWriter (printJobMessagePrefixed, runPrefixedWriter) -import Wasp.Generator.Job.Process (runNodeCommandAsJob) import Wasp.Project.Common ( CompileError, CompileWarning, @@ -84,57 +69,8 @@ analyzeWaspProject waspDir options = do where fileNotFoundMessage = "Couldn't find the *.wasp file in the " ++ toFilePath waspDir ++ " directory" -analyzeWaspFile :: Psl.Schema.Schema -> WaspFile -> IO (Either [CompileError] [AS.Decl]) -analyzeWaspFile prismaSchemaAst = \case - WaspLangFile waspFilePath -> analyzeWaspLangFile prismaSchemaAst waspFilePath - WaspTsFile waspFilePath -> analyzeWaspTsFile prismaSchemaAst waspFilePath - -analyzeWaspTsFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) -analyzeWaspTsFile _prismaSchemaAst waspFilePath = do - let workingDir = SP.parent waspFilePath - chan <- newChan - (_, tscExitCode) <- - concurrently - (readJobMessagesAndPrintThemPrefixed chan) - (runNodeCommandAsJob workingDir "npx" ["tsc", "-p", "tsconfig.node.json"] J.Wasp chan) - - case tscExitCode of - ExitFailure _status -> return $ Left ["Error while running TypeScript compiler on the *.wasp.mts file."] - ExitSuccess -> do - otherChan <- newChan - (_, runExitCode) <- - concurrently - (handleRunJsMessages otherChan) - ( runNodeCommandAsJob - workingDir - "node" - [ SP.fromAbsDir workingDir ++ "node_modules/wasp-ts-sdk/dist/run.js", - SP.fromAbsDir workingDir ++ ".wasp/config/main.wasp.mjs" - ] - J.Wasp - otherChan - ) - case runExitCode of - ExitFailure _status -> return $ Left ["Error while running the compiled *.wasp.mts file."] - ExitSuccess -> return $ Right [] - where - handleRunJsMessages :: Chan J.JobMessage -> IO () - handleRunJsMessages = runPrefixedWriter . processMessages - processMessages chan = do - jobMsg <- liftIO $ readChan chan - case J._data jobMsg of - J.JobOutput payload J.Stdout -> do - -- let payload:: String = read $ T.unpack text - liftIO $ putStrLn "Ovo smo dobili na stdout" - -- parse payload as json - let json = Aeson.toJSON payload - liftIO $ print json - return () - J.JobOutput _ J.Stderr -> printJobMessagePrefixed jobMsg >> processMessages chan - J.JobExit {} -> return () - -analyzeWaspLangFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) -analyzeWaspLangFile prismaSchemaAst waspFilePath = do +analyzeWaspFile :: Psl.Schema.Schema -> Path' Abs File' -> IO (Either [CompileError] [AS.Decl]) +analyzeWaspFile prismaSchemaAst waspFilePath = do waspFileContent <- IOUtil.readFile waspFilePath left (map $ showCompilerErrorForTerminal (waspFilePath, waspFileContent)) <$> analyzeWaspFileContent prismaSchemaAst waspFileContent @@ -182,25 +118,16 @@ constructAppSpec waspDir options packageJson parsedPrismaSchema decls = do return $ runValidation ASV.validateAppSpec appSpec -data WaspFile - = WaspLangFile {_path :: !(Path' Abs File')} - | WaspTsFile {_path :: !(Path' Abs File')} - deriving (Show) - -findWaspFile :: Path' Abs (Dir WaspProjectDir) -> IO (Maybe WaspFile) +findWaspFile :: Path' Abs (Dir WaspProjectDir) -> IO (Maybe (Path' Abs File')) findWaspFile waspDir = do files <- fst <$> IOUtil.listDirectory waspDir - return $ findWaspTsFile files <|> findWaspLangFile files + return $ (waspDir ) <$> find isWaspFile files where - findWaspTsFile files = WaspTsFile . (waspDir ) <$> find (`hasExtension` ".wasp.mts") files - findWaspLangFile files = WaspLangFile . (waspDir ) <$> find isWaspLangFile files - isWaspLangFile path = - path `hasExtension` ".wasp" + isWaspFile path = + ".wasp" + `isSuffixOf` toFilePath path && (length (toFilePath path) > length (".wasp" :: String)) -hasExtension :: Path' s (File f) -> String -> Bool -hasExtension path ext = ext `isSuffixOf` toFilePath path - analyzePackageJsonContent :: Path' Abs (Dir WaspProjectDir) -> IO (Either [CompileError] PackageJson) analyzePackageJsonContent waspProjectDir = findPackageJsonFile waspProjectDir >>= \case From 025393794b9945c20d572751128a6bda4401fc62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Wed, 11 Sep 2024 16:29:51 +0200 Subject: [PATCH 07/10] Fix formatting --- waspc/src/Wasp/Generator/DbGenerator.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/waspc/src/Wasp/Generator/DbGenerator.hs b/waspc/src/Wasp/Generator/DbGenerator.hs index 136dc77e85..275bc19032 100644 --- a/waspc/src/Wasp/Generator/DbGenerator.hs +++ b/waspc/src/Wasp/Generator/DbGenerator.hs @@ -258,7 +258,7 @@ generatePrismaClient spec projectRootDir = do generatePrismaClientIfEntitiesExist :: IO (Maybe GeneratorError) generatePrismaClientIfEntitiesExist | entitiesExist = - either (Just . GenericGeneratorError) (const Nothing) <$> DbOps.generatePrismaClient projectRootDir + either (Just . GenericGeneratorError) (const Nothing) <$> DbOps.generatePrismaClient projectRootDir | otherwise = return Nothing entitiesExist = not . null $ getEntities spec From fc2830ca304c2c51898cfbabbb930c9e3b51ae5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Wed, 11 Sep 2024 16:35:36 +0200 Subject: [PATCH 08/10] Simplify Generator Monad --- waspc/src/Wasp/Generator/Monad.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/waspc/src/Wasp/Generator/Monad.hs b/waspc/src/Wasp/Generator/Monad.hs index 05fe019bb7..905967c7eb 100644 --- a/waspc/src/Wasp/Generator/Monad.hs +++ b/waspc/src/Wasp/Generator/Monad.hs @@ -14,7 +14,7 @@ where import Control.Monad.Except (ExceptT, MonadError (throwError), runExceptT) import qualified Control.Monad.Except as MonadExcept import Control.Monad.Identity (Identity (runIdentity)) -import Control.Monad.State (MonadState, StateT (runStateT), modify) +import Control.Monad.State (MonadState, State, modify, runStateT) import Data.List.NonEmpty (NonEmpty, fromList) -- | Generator is a monad transformer stack where we abstract away the underlying @@ -25,7 +25,7 @@ import Data.List.NonEmpty (NonEmpty, fromList) -- The mechanism to catch errors is only there to assist in collecting more errors, not recover. -- There may optionally be additional errors or non-fatal warnings logged in the State. newtype Generator a = Generator - { _runGenerator :: ExceptT GeneratorError (StateT GeneratorState Identity) a + { _runGenerator :: ExceptT GeneratorError (State GeneratorState) a } deriving ( Functor, From ec1df7b9d225398135168f79868d0d6b2b625636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Wed, 11 Sep 2024 17:29:36 +0200 Subject: [PATCH 09/10] Remove redundant genRealSdk --- waspc/src/Wasp/Generator/SdkGenerator.hs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/waspc/src/Wasp/Generator/SdkGenerator.hs b/waspc/src/Wasp/Generator/SdkGenerator.hs index 81a5f1f090..33db461821 100644 --- a/waspc/src/Wasp/Generator/SdkGenerator.hs +++ b/waspc/src/Wasp/Generator/SdkGenerator.hs @@ -61,9 +61,6 @@ import qualified Wasp.Project.Db as Db import qualified Wasp.SemanticVersion as SV import Wasp.Util ((<++>)) -genSdk :: AppSpec -> Generator [FileDraft] -genSdk spec = genSdkReal spec - buildSdk :: Path' Abs (Dir ProjectRootDir) -> IO (Either String ()) buildSdk projectRootDir = do chan <- newChan @@ -77,8 +74,8 @@ buildSdk projectRootDir = do where dstDir = projectRootDir C.sdkRootDirInProjectRootDir -genSdkReal :: AppSpec -> Generator [FileDraft] -genSdkReal spec = +genSdk :: AppSpec -> Generator [FileDraft] +genSdk spec = sequence [ genFileCopy [relfile|vite-env.d.ts|], genFileCopy [relfile|prisma-runtime-library.d.ts|], From ebfe6965af18cf09e7a86e524033e016fa96cab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Sodi=C4=87?= Date: Thu, 19 Sep 2024 12:52:23 +0200 Subject: [PATCH 10/10] Update e2e tests --- .../.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts | 4 ++-- .../.wasp/out/sdk/wasp/dist/server/jobs/returnHelloJob.d.ts | 4 ++-- .../.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts index 0b1d0b120a..5bfe012bf8 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts @@ -16,7 +16,7 @@ export declare const mySpecialJob: { readonly pgBoss: { readonly cancel: () => ReturnType; readonly resume: () => ReturnType; - readonly details: () => Promise, "output" | "state"> & { + readonly details: () => Promise, "output" | "state"> & ({ data: JSONObject; } & ({ state: "failed"; @@ -35,7 +35,7 @@ export declare const mySpecialJob: { } | { value: true; }; - })>; + }))>; }; readonly job: import("./core/job").Job; readonly jobId: string; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/returnHelloJob.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/returnHelloJob.d.ts index 391dcfc649..94411dc1df 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/returnHelloJob.d.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/jobs/returnHelloJob.d.ts @@ -20,7 +20,7 @@ export declare const returnHelloJob: { readonly pgBoss: { readonly cancel: () => ReturnType; readonly resume: () => ReturnType; - readonly details: () => Promise, "output" | "state"> & { + readonly details: () => Promise, "output" | "state"> & ({ data: JSONObject; } & ({ state: "failed"; @@ -39,7 +39,7 @@ export declare const returnHelloJob: { } | { value: true; }; - })>; + }))>; }; readonly job: import("./core/job").Job; readonly jobId: string; diff --git a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts index 0b1d0b120a..5bfe012bf8 100644 --- a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts +++ b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/.wasp/out/sdk/wasp/dist/server/jobs/mySpecialJob.d.ts @@ -16,7 +16,7 @@ export declare const mySpecialJob: { readonly pgBoss: { readonly cancel: () => ReturnType; readonly resume: () => ReturnType; - readonly details: () => Promise, "output" | "state"> & { + readonly details: () => Promise, "output" | "state"> & ({ data: JSONObject; } & ({ state: "failed"; @@ -35,7 +35,7 @@ export declare const mySpecialJob: { } | { value: true; }; - })>; + }))>; }; readonly job: import("./core/job").Job; readonly jobId: string;