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

CUE Roadmap Alignment #37

Open
sdboyer opened this issue Oct 21, 2021 · 0 comments
Open

CUE Roadmap Alignment #37

sdboyer opened this issue Oct 21, 2021 · 0 comments

Comments

@sdboyer
Copy link
Contributor

sdboyer commented Oct 21, 2021

To help the CUE folks decide what they ought work on next, we'll use this issue to highlight the things scuemata would most benefit from progress on.

Cleaner API for working with cue.Value

This is kinda broad-strokes, but we currently do absolutely unholy things in this project to achieve our desired generated Typescript results. N.B., it's possible that we're just approaching this problem space all wrong, and should be relying on more of a backbone of syntactic analysis (ast package) rather than almost entirely semantic (cue package).

  • Representing everything as a cue.Value gets really confusing when you're deep in the weeds of teasing out an .Expr()
  • Differentiating between a selector with a subject that's an import vs. a local-file struct is extremely, almost prohibitively difficult

Replacement for cue.Instance

Recent versions of CUE deprecated cue.Instance. In general, we prefer operating on cue.Value, as it allows us to grant flexible control to the cuetsy consumer about exactly what's getting converted. (This is essential for scuemata, where we want to convert only the latest schema, not the whole logical structure)

We need to be able to inspect imports in order to generate corresponding typescript imports, and being able to reach back up to them from a cue.Value - or whatever successor to it exists - is key to being able to make a nice, tight API for cuetsy.

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

No branches or pull requests

1 participant