diff --git a/waspc/ChangeLog.md b/waspc/ChangeLog.md index 6f83ca68fe..d691aa25fd 100644 --- a/waspc/ChangeLog.md +++ b/waspc/ChangeLog.md @@ -1,5 +1,11 @@ # Changelog +## 0.15.1 + +### 🐞 Bug fixes + +- Server and Client setup props are no longer mandatory when using TS Config. + ## 0.15.0 ### 🎉 New Features and improvements diff --git a/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp b/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp index 558931eaa0..bfc2f2d9a0 100644 --- a/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp +++ b/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp @@ -1,6 +1,6 @@ app waspBuild { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, title: "waspBuild" } diff --git a/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp b/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp index ff726b6370..a980e7b128 100644 --- a/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp +++ b/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp @@ -1,6 +1,6 @@ app waspCompile { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, title: "waspCompile" } diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp index 41be57f420..f3cc29241f 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp @@ -1,6 +1,6 @@ app waspComplexTest { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, auth: { userEntity: User, diff --git a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp index 550fcdff25..052299e759 100644 --- a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp +++ b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp @@ -1,6 +1,6 @@ app waspJob { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, title: "waspJob" } diff --git a/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp b/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp index f252b02110..fce994494c 100644 --- a/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp +++ b/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp @@ -1,6 +1,6 @@ app waspMigrate { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, title: "waspMigrate" } diff --git a/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp b/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp index dc65b1c369..a2871efefd 100644 --- a/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp +++ b/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp @@ -1,6 +1,6 @@ app waspNew { wasp: { - version: "^0.15.0" + version: "^0.15.1" }, title: "waspNew" } diff --git a/waspc/packages/wasp-config/src/mappers.ts b/waspc/packages/wasp-config/src/mappers.ts index ef46d22bad..711846b8b7 100644 --- a/waspc/packages/wasp-config/src/mappers.ts +++ b/waspc/packages/wasp-config/src/mappers.ts @@ -143,12 +143,18 @@ function mapOperationConfig( function mapExtImport(extImport: User.ExtImport): AppSpec.ExtImport { if ('import' in extImport) { - return { kind: 'named', name: extImport.import, path: extImport.from }; + return { kind: 'named', name: extImport.import, path: extImport.from } } else if ('importDefault' in extImport) { - return { kind: 'default', name: extImport.importDefault, path: extImport.from }; + return { + kind: 'default', + name: extImport.importDefault, + path: extImport.from, + } } else { - const _exhaustiveCheck: never = extImport; - throw new Error('Invalid ExtImport: neither `import` nor `importDefault` is defined'); + const _exhaustiveCheck: never = extImport + throw new Error( + 'Invalid ExtImport: neither `import` nor `importDefault` is defined' + ) } } @@ -326,16 +332,19 @@ function mapEmailSender( function mapServer(server: User.ServerConfig): AppSpec.Server { const { setupFn, middlewareConfigFn } = server return { - setupFn: mapExtImport(setupFn), - middlewareConfigFn: mapExtImport(middlewareConfigFn), + ...(setupFn && { setupFn: mapExtImport(setupFn) }), + ...(middlewareConfigFn && { + middlewareConfigFn: mapExtImport(middlewareConfigFn), + }), } } function mapClient(client: User.ClientConfig): AppSpec.Client { - const { setupFn, rootComponent } = client + const { setupFn, rootComponent, baseDir } = client return { - setupFn: mapExtImport(setupFn), - rootComponent: mapExtImport(rootComponent), + ...(setupFn && { setupFn: mapExtImport(setupFn) }), + ...(rootComponent && { rootComponent: mapExtImport(rootComponent) }), + ...(baseDir && { baseDir }), } } diff --git a/waspc/packages/wasp-config/src/userApi.ts b/waspc/packages/wasp-config/src/userApi.ts index 527a1ec61c..211c358a21 100644 --- a/waspc/packages/wasp-config/src/userApi.ts +++ b/waspc/packages/wasp-config/src/userApi.ts @@ -94,17 +94,19 @@ export type WaspConfig = AppSpec.Wasp export type AppConfig = Pick -export type ExtImport = { - import: string - from: AppSpec.ExtImport['path'] -} | { - importDefault: string - from: AppSpec.ExtImport['path'] -} +export type ExtImport = + | { + import: string + from: AppSpec.ExtImport['path'] + } + | { + importDefault: string + from: AppSpec.ExtImport['path'] + } export type ServerConfig = { - setupFn: ExtImport - middlewareConfigFn: ExtImport + setupFn?: ExtImport + middlewareConfigFn?: ExtImport } export type PageConfig = { @@ -118,8 +120,9 @@ export type WebsocketConfig = { } export type ClientConfig = { - rootComponent: ExtImport - setupFn: ExtImport + rootComponent?: ExtImport + setupFn?: ExtImport + baseDir?: `/${string}` } export type DbConfig = { diff --git a/waspc/src/Wasp/Analyzer/Evaluator/Evaluation/TypedExpr/Combinators.hs b/waspc/src/Wasp/Analyzer/Evaluator/Evaluation/TypedExpr/Combinators.hs index 8e6c70c7bd..410b8f19b3 100644 --- a/waspc/src/Wasp/Analyzer/Evaluator/Evaluation/TypedExpr/Combinators.hs +++ b/waspc/src/Wasp/Analyzer/Evaluator/Evaluation/TypedExpr/Combinators.hs @@ -20,8 +20,6 @@ where import Control.Arrow (left) import qualified Data.Aeson as Aeson import qualified Data.ByteString.Lazy.UTF8 as ByteStringLazyUTF8 -import Data.List (stripPrefix) -import qualified StrongPath as SP import Wasp.Analyzer.Evaluator.Evaluation.Internal (evaluation, evaluation', runEvaluation) import Wasp.Analyzer.Evaluator.Evaluation.TypedExpr (TypedExprEvaluation) import qualified Wasp.Analyzer.Evaluator.EvaluationError as ER diff --git a/waspc/waspc.cabal b/waspc/waspc.cabal index be15e43c26..9fd3e69690 100644 --- a/waspc/waspc.cabal +++ b/waspc/waspc.cabal @@ -6,7 +6,7 @@ cabal-version: 2.4 -- Consider using hpack, or maybe even hpack-dhall. name: waspc -version: 0.15.0 +version: 0.15.1 description: Please see the README on GitHub at homepage: https://github.com/wasp-lang/wasp/waspc#readme bug-reports: https://github.com/wasp-lang/wasp/issues