Commit Graph

132 Commits

Author SHA1 Message Date
Martin Šošić
82bec83769
Better type error messages (and context). (#400)
- Enriched Parser.AST, TypeChecker.AST and TypeError with Ctx.
2022-01-08 23:50:48 +01:00
Martin Sosic
c7ce883b5a Improved parse errors (added expected tokens, nicer error messages).
- Added expected tokens.
- Nice error messages + source position.
2021-12-21 16:36:49 +01:00
Martin Sosic
6756fa4d88 Added tuple to Wasp language. 2021-12-07 15:05:41 +01:00
Martin Šošić
880cd39226
Added support for custom evaluation to Analyzer. (#375) 2021-12-07 14:44:01 +01:00
Martin Šošić
bb3964ae6f
Made Dependencies and Entity full-featured (in AppSpec and Analyzer) (#374) 2021-11-26 15:26:03 +01:00
Martin Sosic
4eb5fac817 Added Server and Database to AppSpec / Analyzer. 2021-11-25 14:09:46 +01:00
Martin Sosic
c86ecdf62c Added Dependencies to AppSpec and Analyzer. 2021-11-25 14:09:46 +01:00
Martin Sosic
032e57a46b Added Action to AppSpec and Analyzer. 2021-11-25 14:09:46 +01:00
Martin Sosic
637e2e20aa Added Query to AppSpec and Analyzer. 2021-11-25 14:09:46 +01:00
Martin Šošić
18c5165df8
Added Route to AppSpec. (#372) 2021-11-25 12:02:02 +01:00
Martin Šošić
ee30923f7a
Added support for Page in Analyzer. (#371) 2021-11-25 10:47:50 +01:00
Martin Šošić
8d946b9ed7
Added support in Analyzer for AppSpec to have record as dict field. (#369) 2021-11-24 23:18:25 +01:00
Giovanni Garufi
dcd1549211
auth: Add onAuthSucceededRedirectTo option (#350)
Allows a user to specify a redirect target in case of successful authentication.
This used to be hardcoded to /, and the current implementation will fallback to that if the property is not specified.

Change-type: minor
Signed-off-by: Giovanni Garufi <nazrhom@gmail.com>
2021-11-22 14:23:19 +01:00
Martin Sosic
ff2543b42f Reviewed remaining hlint rules. 2021-11-17 12:24:39 +01:00
Phil de Joux
89c9d6a1db
ref: Fixed most of the hlint suggestions. (#366) 2021-11-17 00:36:46 +01:00
Martin Šošić
3feeed555f
Moved all src/ modules into Wasp module, and all cli/ modules into Wasp.Cli module. 2021-11-11 13:26:20 +01:00
Martin Šošić
4773ae36e3
Wrote initial version of new Wasp AST: AppSpec (#353)
* 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.
2021-11-10 16:27:27 +01:00
Martin Šošić
a7a69ff207
[Analyzer] Instead of directly embedding Declarations into AST, now they are referenced via Ref (#343) 2021-10-22 11:59:51 +02:00
Martin Sosic
074529d79c Made TypeDefinitions implementation Internal. 2021-09-18 00:08:42 +02:00
Martin Sosic
cb50008b98 fix 2021-09-14 17:08:53 +02:00
craigmc08
9686eaf4dc Add test for Analyzer module 2021-08-22 13:33:44 -04:00
craigmc08
2507a71abe Add evaluation for import, json, psl 2021-08-05 15:22:21 -04:00
craigmc08
4120bc53dc Add TH generation for IsDeclType, IsEnumType instances 2021-08-05 13:25:13 -04:00
craigmc08
d043548ecc Get evaluation working a bit
Code is probably not great, but passing tests for generating haskell
data structures exist!

Still have to hand write IsDeclType and IsEnumType instances, but it's cool
2021-08-05 13:25:13 -04:00
craigmc08
96450aa31d Suggestions from code review 2021-08-05 13:17:49 -04:00
craigmc08
6f178115dc Suggestions from code review 2021-08-05 13:17:49 -04:00
craigmc08
d335562263 Suggestions from code review 2021-08-05 13:17:49 -04:00
craigmc08
31a4ebaee3 Refactor typechecker tests 2021-08-05 13:17:49 -04:00
craigmc08
e1e062479e Suggestions from code review 2021-08-05 13:17:49 -04:00
Craig McIlwrath
46206c3fb3 Apply suggestions from code review
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2021-08-05 13:17:49 -04:00
craigmc08
c456ca8d2e Reorganize typechecker tests
Now matches typechecker module structure, and a couple more tests were added to
test more behavior.
2021-08-05 13:17:49 -04:00
craigmc08
f25f206b91 Remove some useless comments 2021-08-05 13:17:49 -04:00
craigmc08
cf55594eda Refactor typechecker module
Move code into Analyzer.TypeChecker.Internal to clean up interface, change lots of
names to be more readable, add comments to explain the complex parts of typechecker
code.
2021-08-05 13:17:49 -04:00
craigmc08
5ab608b8f1 Refactor TypeError
Instead of just a string, now the possible errors are enumerated. Recursive
error structures are used for dictionary/list type errors. Tests are updated
to check behavior of the new type errors.
2021-08-05 13:17:49 -04:00
craigmc08
51b6cda07a Implement Decl, Enum type checking 2021-08-05 13:17:49 -04:00
craigmc08
0357921162 Implement type checking for lists and dictionaries
Currently fails to type check empty lists, because the requisite type
inference has not been added yet.
2021-08-05 13:17:49 -04:00
craigmc08
ce7ee253bd Implement type checking of literal expressions
Type checks literal expressions + variables. Tests are included for all of
these cases as well.
2021-08-05 13:17:49 -04:00
Martin Šošić
d86b53cb24
Merge pull request #279 from saatvikshah/auth_opt_out
Allow operations to opt out of auth middleware
2021-07-21 16:28:18 +02:00
Martin Sosic
748dfb5725 feat: Wasp can now run custom setup code on server start (#199). 2021-07-21 16:14:38 +02:00
Martin Sosic
0b02e45354 Formatted tests with ormolu. 2021-07-21 16:13:21 +02:00
Saatvik Shah
3791b0ee7c Merge remote-tracking branch 'upstream/master' into auth_opt_out 2021-07-18 18:46:18 +02:00
Craig McIlwrath
be03c2a153
feat(analyzer): add new Analyzer module and implement parser
Implements the parser for the new wasp Analyzer. Additionally fixes some ambiguities/inconsistencies in the wasplang document.

Closes #274
2021-07-16 09:34:12 -04:00
Saatvik Shah
d0c5114a52 Address review comments 2021-07-09 08:04:29 +02:00
Saatvik Shah
c71eb58ea9 Merge remote-tracking branch 'upstream/master' into auth_opt_out 2021-07-05 21:26:47 +02:00
Saatvik Shah
a85b408b60 Allow operations to opt out of auth middleware
This patch allows operations to individually specify whether they want
to use or opt out of auth middleware, via an additional `auth` argument
under the actions/queries sections. If left unspecified it is assumed to
be true.

This is addressed by removing the current global auth middleware
registration, and adding it instead to individual operation route
specification.
2021-07-05 21:20:56 +02:00
Martin Sosic
eae7b20938 Replaced couple of last usages of Path with StrongPath. 2021-07-05 17:47:28 +02:00
Martin Sosic
7c7eaa5409 Updated StrongPath to 1.0.0.0, from Hackage. 2021-07-05 17:47:28 +02:00
Martin Sosic
1219a57bc9 Formatted whole codebase with ormolu. 2021-04-28 17:44:00 +02:00
Martin Šošić
f9e8f88b66
Upgraded to Prisma 2.21 (stable migrations) + postgre can be used in local dev.
- `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.
2021-04-21 14:06:25 +02:00
Martin Šošić
92937b5e65
Implemented support for dotenv file. (#208) 2021-04-16 12:43:57 +02:00
Martin Šošić
ad3bdd32ae
Implemented PSL model parser, used it for Entity. (#201) 2021-03-15 17:10:01 +01:00
Craig McIlwrath
82ea947981
Add ext/.waspignore file (#196) 2021-03-03 09:35:27 +01:00
Matija Sosic
316c727a8c
Implemented app.head property. (#170) 2021-02-04 11:42:01 +01:00
Matija Sosic
647814e920
Implemented "wasp build" cmd - generates different schema.prisma. (#166)
* Implemented "wasp build" cmd - generates different schema.prisma.

* PR fixes.
2021-02-01 17:37:42 +01:00
Matija Sosic
68155711e8
Implemented FE ACL & updated the examples. (#165)
* Implemented FE ACL & updated the examples.

* PR fixes, fixed tests.
2021-02-01 16:32:07 +01:00
Martin Sosic
247bf76aac Removed redundant TODOs in StrongPath tests. 2020-10-24 22:44:27 +02:00
Martin Sosic
4cbd2a6240 Extracted internals into Internal (StrongPath). 2020-10-24 22:44:27 +02:00
Martin Sosic
87e05823cf Added tests and support for "../" prefix to StrongPath. 2020-10-24 22:44:27 +02:00
Martin Sosic
3ab248b584 Removed redundant old templates and code (redux). 2020-10-21 17:41:04 +02:00
Martin Sosic
cb217fde44 Renamed EntityPSL to Entity. 2020-10-21 17:41:04 +02:00
Martin Sosic
58d10ab305 Removed old Entity. 2020-10-21 17:41:04 +02:00
Matija Sosic
bbe6dae679
Implemented parser for Auth Wasp element. (#72) 2020-10-08 16:17:47 +02:00
Martin Sosic
54b994bb0a Entities are now injected into operations (if declared in Wasp). 2020-10-07 15:29:21 +02:00
Martin Sosic
a06410dad8 Fixed execution of processes/jobs -> stderr was not being forwarded. 2020-10-06 21:24:41 +02:00
Martin Sosic
ca039304f9 Wasper can now specify npm dependencies. 2020-09-29 13:46:48 +02:00
Martin Sosic
e115ece29a External code paths now again use StrongPath. 2020-09-23 15:44:32 +02:00
Martin Sosic
2617bd5f66 Now AppVeyor CI builds Wasp on Windows and runs tests.
Also fixed path issues when running on Windows.
2020-09-18 15:22:58 +02:00
Martin Sosic
bc5caef944 Implemented new Action and removed old Action and Button. 2020-09-07 13:26:53 +02:00
Matija Sosic
3b0b284bac
Implemented parser for new PSL-based entities. (#30) 2020-09-04 14:21:47 +02:00
Martin Sosic
cf0208315f Added generation of external code in server. 2020-09-01 16:58:34 +02:00
Matija Sosic
bcfeb9b350 Page now accepts an external component instead of inline content. 2020-08-31 14:20:40 +02:00
Martin Sosic
ce6cf2bc5a Shortened Wasp.JsImport fields. 2020-08-25 15:55:37 +02:00
Martin Sosic
495ba96284 Implemented Query parser + tests. 2020-08-25 15:08:02 +02:00
Martin Sosic
3483582fc6 JsImport now distinguishes between default and named imports. 2020-08-25 12:06:46 +02:00
Martin Šošić
c825f8f811
JsImport now supports default import or single named import. (#25)
JsImport now supports default import or single named import.
2020-07-31 15:04:45 +02:00
Matija Sosic
25d7051c6d
Route is now a separate Wasp element. Implemented both parser and generator. (#24) 2020-07-31 14:26:10 +02:00
Martin Sosic
839beb4142 Refactored codebase so it uses StrongPath instead of Path (on 99% of places). 2020-07-29 16:22:15 +02:00
Martin Sosic
8bec4c8e20 Implemented generation of simple node server. 2020-07-27 17:44:21 +02:00
Martin Sosic
8922d9eb53 Implement StrongPath -> data type representing path where relative dirs are named on type level. 2020-07-27 17:40:42 +02:00
Martin Sosic
e45d077f54 Added Button and Action<entity>, also updated Todo app to use them. 2020-03-10 16:24:41 +01:00
Matija Sosic
fd39e5b658 Added support for entity-list mutex filters. 2020-03-10 14:01:29 +01:00
Martin Sosic
aa1072b20f Moved all code into waspc directory. 2020-02-20 12:30:58 +01:00