* 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
* Add .jsconfig to enable go-to-definition
* Watch shared directory for changes
* Add final newline to jsconfigs
* Fix regular and e2e tests
* Update 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
* Update waspc.cabal with jsconfigs
* Minimize jsconfig.json files
* Add jsconfigs to waspc todoApp
* Update e2e tests
* Update e2e tests
* Update docs for new project structure
* Update todoApp example to new structure
* Update ItWaspsOnMyMachine
* Update thoughts
* Update Waspello to new structure
* Update Waspleau to new structure
* Update Realworld to new structure, fix warnings
* Fix directory tree watching on wasp start
* Implement review feedback
* Fix typo in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Fix typo in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Fix another typo in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Add src prefix to file path in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Remove env server file
* Apply suggestions from code review
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Address code review comments
* Fix incorrect path in docs
* Fix references to ext in docs
* Edit changelog and add migration guide
* Further update docs to new structure
* Update blogs about example apps to new structure
* Fix typo in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Update typo on frontpage
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
* Add missing src in docs
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
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
* Add .jsconfig to enable go-to-definition
* Watch shared directory for changes
* Add final newline to jsconfigs
* Fix regular and e2e tests
* Update 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
* Update waspc.cabal with jsconfigs
* Minimize jsconfig.json files
* Add jsconfigs to waspc todoApp
* Update e2e tests
* Update e2e tests
* 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>
* 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 trailing slash note in deploying document
* Remove trailing slash, if present in the wasp backend URL
* e2e-test for trailing slash fix
* e2e test for trailing slash in wasp backend url
* Fix e2e-tests checksums
Co-authored-by: Filip Sodić <filip.sodic@gmail.com>
* Fix query cache key generation issue
* Make waspc/todoApp return tasks in consistent order
* Implement basic support for optimistic updates
* Fix query cache key generation issue again
* Add action counter to prevent flickering updates
* Add remove todo to action counter
* Count only optimistically updated cache keys
* Make waspc/todoApp return tasks in consistent order
(cherry picked from commit 57606c74e4)
* Reduce duplication in frontend actions and queries
* Fix formatting
* Fix optimistic updates after merge
* Experimenting
* Hash queries before counting
* Rename parameters in counter
* Add task done toggling to task page
* Fixes after merge
* Fix wrong condition in example todo app
* Simplify counter with react-query's internal hash
* Remove console log and add notes
* Clear up some todos and tidy up
* Fix formatting
* Remove leftover todo
* Fix a bug that caused double action calls
* Simplify query key hashing function
* Revert accidental blog changes
* Revert accidental blog changes
* Apply optimistic updates on each query response
* Clean up code for optimistic updates
* Clean up more code for optimistic updates
* Remove redundant optimistic update tuple list
* Rename query to queryKey
* Return previous data from onMutate
* Move counter into the constructor function
* Move updatesHandler into the constructor function
* Remove debug logs from optimisticUpdatesMap
* Rename and refactor optimistic updates
* Fix typo in comments
* Remove the option to directly specify query key
* Remove flickering fixes for optimistic updates
* Add optimistic updates to Task.js
* First round of code review feedback
* Remove react query's additional options from hook
* Futher review feedback and code docs
* Fix and document error handling for optimistic updates
* Fix formatting and remove comment
* Further document optimistic update mechanisms
* Fix memory leak in updates handler map
* Update optimistic update docs
* Improve comment for useAction
* Further improve comments in actions/index
* Heavily comment actions/index
* Fix capitalization in action/index
* Add types to actions/index
* Fix jsdoc types in actions/index
* Comment testing sleeps
* Comment sleep function in todoApp/ext/actions
* Properly handle type errors in actions/index
* Fix formatting in actions/index
* Rename an argument in actions/index
* Move updateFn change to optimistic update instantiation
* Extract common functionality in actions/index
* Reuse common functionality for optimistic updates
* Fix formatting in actions/index
* Comment the internal action mechanism
* Add jsdoc types to actions/index
* Revise jsdoc in actions/index
* Document makeOptimisticUpdateMutationFn
* Add updateQuery constraints
* Address PR comments
* Update e2e tests
* Mention optimistic updates in cache invalidation
* Further elaborate updateQuery constraints
* Update e2e tests
* 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>
* First try.
* first version that compiles.
* Added range function.
* fixed tests.
* Fixed order of funcions in the code.
* fix
* Simplify semantic version module
* Change qualified import name for SV
Co-authored-by: Filip Sodić <filip.sodic@fer.hr>
* Add CST parsing code into waspc
* Implement CST -> AST conversion
* Implement parseExpression & isValidWaspIdentifier
* Implement golden tests for Parser
* Configure CI git checkout to always use LF line endings
* Limited Wasp node version to ^16.0.0 && <=16.15.0.
In the process, I removed .nvmrc files from generated code and
refactored SemanticVersion to follow npm spec.
I also updated CI to use node 16.15.0, and not any 16.
I also updated docs.
* Make waspc/todoApp return tasks in consistent order
(cherry picked from commit 57606c74e4)
* Reduce duplication in frontend actions and queries
* Fix formatting
* Update e2e tests to include queries/core
* Add clientSetup support to analyzer and tidy up generator
* Add clientSetup support to generator
* Add tests for client setup function and tidy up
* Address PR comments for client setup function
* Clean up server and web app generators
* Document react query invalidation on logout
* Update e2e tests after query client cache clean
* Fix syntax error in exmaple app
* Remove leftover todos
* Fix formatting
* Fix formatting
* Fix tests for client setup function
* Update e2e test
* Fix todos in templates
* Add docs for client setup
* Fix docs typo
* Fix docs typo
* Fix docs typo
* Fix docs typo
* Update e2e test
* 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.
* Apply minor syntax fixes to templates
* Fix Wasp react app warnings
* Fix small bug in waspc todo app
* Rearrange functions in RouterGenerator
* Migrate react-query to v3
* Collapse config in react query
* Update e2e tests after react-query migration
* Rename function in RouterGenerator
* Update job tests
* 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
* Reverse the order for TypeError messages
* Remove redundant import and unused pragma
* Remove redundant import and unused pragma
* Reverse additional type error messages
* Remove redundant import
* Format util test file
* Address PR comments
* Add empty line to TypeError.hs
* Address PR comments
* Format TypeError.hs
* Reverse message order in evaluation errors
* Extract common error message functions
* Add tests for EvaluationErrors
* Improve naming in Wasp.ErrorMessage
* Fix formatting
* Fix formatting
* Format code
* Change naming and syntax in ErrorMessage
* hange names in EvaluationError tests
* Add full stops to documentation
* Fix formatting in tests
* Require LTS node and npm on client and server
* Update node and npm versions in the docs
* Add npmrc and nvmrc to WebAppGenerator
* Change function name in test
* Add newline to nvmrc
* Add newline to Common.hs
* Remove extra empty line in nvmrc
* Remove extra empty line in Common.hs
* Update end to end tests for node LTS
* Add newline at the end of server/nvmrc
* Ensure Node version 16 in CI
* Fix broken ci file
* Change how Wasp specifies required versions
* Fix formatting
* Use type alias for semantic versions
* Remove incorrect comment on Prisma LTS
* Update e2e checksums
* Fix typo in gitignore
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Sort e2e checksums
* Extract semantic version to its module
* Fix formatting
* Fix formatting again
* Add comment explaining nvmrc
* Add tests and change semver naming
* Add natural numbers and formatting to semver
* Add newline at the end of semver module
* Add missing space to node mismatch message
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
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
Create a new resolveDependencies
Use Map to do differences between Wasp and user package.json dependencies.
This is now used internally in resolveNpmDeps.
Also fixes a bug in the conflict error message, where the wasp and user dependency
were previously not properly distinguished.
Add .vscode and move everything that appears text editor related to a section