* Support typing backend queries
* Implement types for actions and extract entities
* Add Prisma entities to the frontend
* Add frontend types to internal todoApp
* Undo moving for easier review
* Revert back to generating a query.js file
* Rename buildEntityData
* Remove solved todo in schema template
* Fix docs in method
* Adding uninstall command (#953)
* Adding uninstall command
* Updates docs and changelog related to the uninstall command
* Use StrongPath instead of FilePath
* Fix review feedback
* Move prisma client generation messages
* Generalize FileDraft functions
* Generate prisma clients using ENV
* Fix schema checksum check
* Small refactor in db generator
* Run prisma generate from server root dir
* Fix types for useAction
* Fix type error for useAction
* Fix schema generation in Dockerfile
* Refactor passing env vars to prisma schema
* Fix useAction types
* Replace Prelude readFile with SP readFile
* Add comment for prisma/client in web app
* Replace Prelude writeFile with SP writeFile
* Replace do and if with ifM
* Rename readProjectTelemetryFile
* Refactor readOrCreateUserSignatureFile
* Remove redundant comment
* Fix typo in variable name
* Simulate unions with a type class
* Further improve strongpath types
* Generate prisma clients after migration
* Change ModuleRootDir to ComponentRootDir
* Remove solved todo
* Improve naming
* Remove redundant env variable
* Improve formatting
* Fix errors after merging
* Change local function name
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Rename local function again
* Update changelog
* Fix error type in useQuery
* Rename Component to AppComponent
* Refactor DbGenerator
* Explain Abs paths in SP helpers
* Update e2e tests
* Fix formatting
* Change signature for doesFileExist
* Change signature for SP functions
* Remove redundant do block
* Fix formatting
* Reorder functions
* Rename module to appComponent in functions
* Rename module to component in functions
* Rename telemetry cache function
* Fix formatting
---------
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Add typescript support to generator
* Change jsconfig to tsconfig for client
* Change Main.js to Main.tsx
* Implement TypeScript support on client
* Fix formatting
* Fixes in actions/index.ts
* Remove extra types from comments
* Update waspc/src/Wasp/Generator/ServerGenerator.hs
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Remove server-specific typescript stuff
* Fix useQuery type
* Add typeroots to client tsconfig
* Improve TypeScript support on client
* Remove tsx extension from template wasp file
* Format code
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* 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