* Separate ext code to client and server
* Use skeleton in createNewProject and refactor
* Refactor Lib.hs to use ExceptT
* Fix formatting
* Pop up returns
* Extract liftIO and add a do block
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Address some review comments
* Add skeleton comment
* Extract common CommandError message
* Separate skeleton comment into two rows
* Move server and client dirs into src
* Simplify maybeToEither
* Further refactor Lib.hs
* Further simplify skeleton comment
* Add shared code directory to project structure
* Update e2e test inputs
* Update e2e test outputs
* Fix formatting
* Fix bug in compile function
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Change map to fmap in compile function
* Fix formatting
* Force git to include empty directories
* Remove extra empty line from .gitkeep files
* Watch shared directory for changes
* Fix regular and e2e tests
* Fix cli template packaging and update todoApp
* Add a shared function demo to todoApp
* Update waspc and e2e tests
* Fix compiler warnings and rename function
* Rename mkError to mkParserError
* Remove redundant empty line
* Fix test warnings
* Fix formatting
* Fix directory tree watching on wasp start
* Implement review feedback
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Add wasp field to AppSpec.App
* Validate app.wasp.version in AppSpec.Valid
* Add app.wasp.version field on .wasp file generated by CreateNewProject
* Add app.wasp.version to .wasp files of e2e tests
* Add app.wasp.version to examples' .wasp files
* Add app.wasp.version to docs
* Change waspc version from 0.6.0.0 to 0.6.0
* Change app.wasp.version validation to use regular semver
* Format code
* Refactor app.wasp.version validation
* Refactor app.wasp.version validation
* Update supported app.wasp.version format in docs
* Add TODO to validateWaspVersion
* Refactor app.wasp.version using toEnum
* Create Wasp.Version module with waspVersion constant
* Fix parseWaspVersionRange regex
Fixed:
- The regex wasn't checking the string *starts* with ^.
- The . symbols were not escaped.
- The $ token is not specified as supported in the regex-tdfa docs.
\' is used instead.
* Add comment explaining wasp version validation restrictions
* Use Wasp.Version.waspVersion instead of Paths_wasp.version
* Add support for kebab-case in project name (#590)
* clean up kebab case naming (#590)
* clean up code for create new project (#590)
* clean up code for kebab-name project (#590)
Co-authored-by: Prat T <pt2121@users.noreply.github.com>
* Added 'context' field to our telemetry, specifically to recognize when Wasp is running on Gitpod.
* Telemetry user id can now be specified via ENV var.
* Improved user signature obtaining code a bit.
* Added fromMaybeM.
* Allow Wasp identifiers for project names
* Rename initialState to makeInitialState
* Fix formatting
* Use parser to parse Wasp identifiers
* Add newline at the end of Wasp.Analyzer.Parser
* Fix newline at the end of Wasp.Analyzer.Parser
* Clean up and rename parsing
* Fix newline at the end of Wasp.Analyzer.Parser
* Add tests for new parser functions
* Fix formatting
* Fix formatting
* Reformat where statement
* Address PR comments and remove redundant module
* Remove keywords from error message
* Fix formatting in CreateNewProject.hs
* Remove redundant note on duplication
Use cliSendMessage everywhere in CLI
Instead of using waspSays and friends, we use the new cliSendMessage protocol everywhere to
send messages. For convenience we introduce a cliSendMessageC that's lifted to commands.
We handle CommandErrors specially now, and have a special way to display errors (failures) and warnings
with a heading.
We introduce a SendMessage protocol.
We implement it in the CLI as that knows how to send messages. We also pass it into the generator so that it can reach the setup phase. There we use it to emit messages on the CLI.
Create a seperate runSetup function
This does the `npm install` (if required) and the database setup.
Since this is now happening in the generation phase, this means we don't need
`compileAndSetup` anymore.
Since compile now sets up the dependencies, we only need to compile in any db command
Reworked the naming and types of combining the various dependencies.
This is the base operation used now to combine package dependencies. It
knows about dev dependencies too. I've adjusted the code for
both web app and server to use this.
I've factored out commonalities in error handling into PackageJsonGenerator
We now support devDependencies for web app and in the deps command
We also have nicer functions to generate the package json entries
directly from the PackageJsonDependencies structure
* Introduced AppSpec, replacement for previous Wasp.hs as a core IR in Wasp.
* Organized AppSpec into Core and Domain.
* Removed Domain from AppSpec.
* Moved ExternalCode.File to AppSpec.
* Added some TODOs.
* Added IsDecl to AppSpec.
* Removed ExternalCode File reexports.
* Added comments.
* refactor: convert functions in Util.IO to use StrongPath instead of Path
* Clean up import in IO
* Updated version of strong-path to the newest one, that doesn't cause version conflicts.
* Tightened types a bit in Util/IO.hs
Co-authored-by: Martin Sosic <sosic.martin@gmail.com>
This patch moves majority of the bash completion logic from Bash to
Haskell taking advantage of the environment variables exposed by the
`complete` builtin to infer and suggest possible outputs.
Co-authored-by: sshah1 <saatvik.shah@imc.com>
- `wasp db migrate-save` and `wasp db migrate-up` got replaced with `wasp db migrate-dev`.
- Wasp now has a declarative way to express which db is used, postgresql or sqlite: `db { system: PostgreSQL }`.
- Prisma is now at the latest version, 2.21. PSL parser was upgraded to work with this.
- PostgreSQL can now be used for local development.
- We migrated examples/realworld to work with this new version of Wasp.