Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to argonaut-codecs from foreign-generic #212

Merged
merged 6 commits into from
Mar 27, 2021

Conversation

thomashoneyman
Copy link
Member

This PR continues #211 by migrating from foreign-generic to argonaut-codecs for JSON encoding and decoding. It also updates the tests and ensures they're exercised in CI.


-- | The range of text associated with an error
newtype ErrorPosition = ErrorPosition
type ErrorPosition =
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of these types can be generically encoded and decoded via Argonaut without requiring newtypes and generic instances, so I've returned them to be raw records. However, if we really want those newtypes (for example, for more readable type errors) then I can reinstate them.

client/package.json Outdated Show resolved Hide resolved
client/src/Main.purs Outdated Show resolved Hide resolved
client/src/Main.purs Outdated Show resolved Hide resolved
server/Main.hs Show resolved Hide resolved
@thomashoneyman thomashoneyman merged commit 9c11342 into master Mar 27, 2021
@thomashoneyman thomashoneyman deleted the argonaut-codecs branch March 27, 2021 18:37
@hdgarrood
Copy link
Collaborator

I think we can also remove the config key in package.json now too. Also it might be worth checking whether the changes to these package.json scripts mean that instructions in the readme or something need to be updated, if you haven’t done that already?

@thomashoneyman
Copy link
Member Author

Good point on the config key. The README doesn't need any changes as far as I can tell.

Comment on lines -147 to +110
requestBody = AXRB.String code
requestBody = Just $ AXRB.Json $ encodeJson code
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering if the CORS issue reported in #215 is (unexpectedly) related to using AXRB.Json instead of AXRB.String.

Copy link
Member Author

@thomashoneyman thomashoneyman Mar 30, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, great find -- it totally is. Changing this to AXRB.String $ unsafeCoerce (encodeJson code) works as expected. I don't know why -- going to look a little deeper.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, on reflection the code isn't actually JSON. It's just a string. Encoding it runs through a stringify call, which isn't what we want; I still don't know why this would cause a CORS issue (perhaps it's a red herring?) but regardless this wasn't a correct change to make in the first place.

@milesfrain milesfrain mentioned this pull request Mar 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants