Commit Graph

102 Commits

Author SHA1 Message Date
Martin Sosic
6742c5d286 Failed wasp CLI commands now return exit code 1. 2023-04-21 19:38:55 +02:00
Martin Sosic
b8fb9a71be fixed small coloring mistake in CLI help. 2023-04-12 16:32:21 +02:00
Martin Sosic
89979beaf5 Small dx improvements for db starting. 2023-04-12 14:01:54 +02:00
Mihovil Ilakovac
809eb90386
Adds scaffolding based on giget (#1105) 2023-04-06 16:15:34 +02:00
Martin Šošić
0e5aa85014
Implement database seeding via 'wasp db seed' 2023-04-05 11:33:52 +02:00
Shayne Czyzewski
5d2b278e75
Adds vitest for testing client code (#1055) 2023-03-30 12:22:40 -04:00
Martin Šošić
91a8063081
Implemented wasp start db (managed dev db) (#1044)
Implemented 'wasp start db' + docs + e2e tests + refactoring.
2023-03-21 16:37:20 +01:00
Mihovil Ilakovac
7a0f8b5d58
Replaces Create React App with Vite (#1019) 2023-03-01 17:14:14 +01:00
Filip Sodić
c41f065ef4
Bring Prisma entities to the frontend (#962)
* 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>
2023-02-13 14:31:49 +01:00
Shayne Czyzewski
b14ed945fc
Adds wasp deploy CLI command for Fly.io (#961) 2023-02-07 10:29:25 -05:00
Mihovil Ilakovac
1017e20bf4
Adding uninstall command (#953)
* Adding uninstall command

* Updates docs and changelog related to the uninstall command
2023-02-01 11:18:24 +01:00
Martin Šošić
0002414fa1
Telemetry now recognizes when running on CI. (#963)
* Telemetry now recognizes when running on CI.

* Bumped cabal version from 0.8.0 to 0.8.1 .

* fixed e2e tests.
2023-01-28 14:31:35 +01:00
Martin Sosic
10531ee8e0 Expanded instructions in wasp version CLI cmd. 2022-12-14 11:51:11 +01:00
Shayne Czyzewski
a16aa73753
Add support for --create-only migrations (#862) 2022-12-13 13:55:01 -05:00
Martin Sosic
46c73058cb Added newsletter link to CLI. 2022-11-26 19:04:49 +01:00
Filip Sodić
31df276a25
Client-side TypeScript support (#824)
* 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>
2022-11-24 14:28:37 +01:00
Martin Šošić
bb8202109a
wasp version command now prints info how to change version. (#826) 2022-11-23 16:55:12 +01:00
Martin Šošić
4087774d26
Removed alpha messaging. (#825) 2022-11-23 14:33:18 +01:00
Filip Sodić
86e0893d6f
Separate user code into client, server, shared (#753)
* 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>
2022-11-11 17:20:49 +01:00
Martin Šošić
d9fc27bcde
Improved how Wasp prints output of underlying processes. (#794) 2022-11-04 19:57:34 +01:00
Martin Šošić
7c45475601
Detect when jobs quiet down and print compiler warnings/errors. (#781)
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>

Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
2022-11-01 22:43:39 +01:00
Anthony Suárez
0cde880f24
Feat: Validate wasp version from spec (#786)
* 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
2022-10-31 23:00:03 +01:00
Hari Sankar
76e43b3685
Add information of completion command in wasp help (#256) (#766)
* Add information of completion command in `wasp help` (fix #256)

* Fix syntax error

* Move completion command under GENERAL
2022-10-19 09:46:15 +02:00
Steven Garcia
c018d284a9
Update Wasp CLI bash completion list (#765)
* Update Wasp CLI bash completion list

* Add completion and completion:generate to commands

Co-authored-by: sgarcia <sgarcia@pop-os.localdomain>
2022-10-19 09:44:00 +02:00
Shayne Czyzewski
8fc6fd1836
Adds support for Dockerfile customization (#732) 2022-10-13 12:46:07 -04:00
Shayne Czyzewski
4cdc06dd13
Warn if .env file found (#746) 2022-10-06 13:23:40 +02:00
Peter Reshetin
3f63340fc1
feat: separate env vars for server and client (#683) 2022-10-06 12:51:28 +02:00
Filip Sodić
31391ee2dc Fix unused variable warning (#736) 2022-09-29 16:04:08 +02:00
Martin Šošić
99487ff2f7
waspls is now part of waspc (#716) 2022-09-08 13:56:37 +02:00
Martin Šošić
eb69deb348
Removed duplication between waspls and waspc, made them two packages in the same cabal project (#712) 2022-09-06 14:10:42 +02:00
Prat
51d7f30b97
Add support for kebab-case in project name (#590) (#700)
* 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>
2022-09-02 11:54:25 +02:00
Martin Šošić
25a1b991ef
Now waspc assumes all files to be UTF8 regardless of OS'es default locale. (#653) 2022-06-28 19:48:02 +02:00
Shayne Czyzewski
a264d2ee29
Make warnings filterable to avoid redundant messages (#610) 2022-06-02 14:04:57 -04:00
Shayne Czyzewski
4de7d16331
Adds cron support to pg-boss Jobs and documentation (#586) 2022-05-13 12:30:55 -04:00
Shayne Czyzewski
f14be11fc3
Add pg-boss as a Job executor (#582)
Note: This does not provide cron support, that is coming in the next PR.
2022-05-03 14:34:25 -04:00
Martin Šošić
4ee7cebc36
Context and user id can now be passed to our telemetry. (#564)
* 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.
2022-04-15 18:46:47 +02:00
Filip Sodić
b3d9014e37
Allow Wasp identifiers for project names (#520)
* 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
2022-03-30 01:25:56 +02:00
Shayne Czyzewski
1995ccdb9d
Make CLI code testable (#510) 2022-03-23 08:04:09 -04:00
Martin Šošić
2a16bfd3cf
App spec validation (#459) 2022-03-17 12:36:36 +01:00
Martin Šošić
857912c2cc
Migrated Wasp from Stack to Cabal (#471)
Co-authored-by: shayneczyzewski <shayne.czyzewski@gmail.com>
2022-03-16 16:00:18 +01:00
Martijn Faassen
b6f738416a
Use send message protocol in cli (#493)
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.
2022-03-09 15:43:41 +01:00
Shayne Czyzewski
84821005f4
Adds E2E CLI testing support via Golden Tests (Part 1) (#470) 2022-03-01 15:00:51 -05:00
Martijn Faassen
f944f0beb3
Send messages from the setup phase (#472)
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.
2022-02-24 12:20:37 +01:00
Martijn Faassen
540a4d0ded
Do npm install as part of generation process, only when needed (#464)
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.
2022-02-18 17:23:14 +01:00
Martijn Faassen
27b3c83f7a Introduce combinePackageDependencies
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
2022-02-11 11:05:02 +01:00
Martijn Faassen
91a40a6105 Revert to the previous behavior for now.
Leave comments in place on what to do once we can skip `npm install`.
2022-02-08 11:00:24 +01:00
Martijn Faassen
55d9bd1ef1 We now run compile and install each time the wasp file changes 2022-02-07 12:56:46 +01:00
Martijn Faassen
988929fbdc Factor out this function into its own module
We also need to reuse it during watch
2022-02-07 12:56:41 +01:00
Martijn Faassen
ae5f498b65 Rename to compileAndSetup
Until (and if) we ever rename setup, we should use this simpler name.

And it involves npm install of two projects, not one one anyway.
2022-02-07 12:55:24 +01:00
Martijn Faassen
4f1088ddf5 Remove commented out code 2022-02-07 12:55:24 +01:00