v0.1.0 (MVP) Milestones
v0.0.1
Milestone
Capability to take a basic scalar (being, no foreign keys) TypeScript class and convert it to:
- Basic SQLite database schema (PKs, real, integer, blob, text)
- TypeScript workers backend revealing static and instantiated class methods as API endpoints.
- Frontend Client API identical to that of original TypeScript class, utilizing a Result monad return type.
- Basic Wrangler configuration generation
Being the first milestone, we will focus on scaffolding out the project for continous development.
v0.0.2
Milestone
Expand on the types available in our grammar: models, arrays, nullability.
Introduce foreign key relationships (1:1, 1:M, M:M), along with navigation properties and data sources.
v0.0.3
Milestone
Work towards a published NPM package capable of orchestrating the compilation process with a single command.
Expand on our types to add "Plain Old Objects", being, objects that are not models but serializable as parameters or return types.
Introduce a dependency injection layer, allowing the wrangler environment to be passed as a parameter to all methods.
Expand on our testing suite to have full E2E tests, regression tests and run-fail tests.
Move hardcoded TypeScript code to WASM such that it can be used in other language implementations.
v0.0.4
Milestone
Create a migrations engine capable of adding, updating, and reverting different states of the model schema.
Support middleware at various points in our request process state machine (global, model, data source, method).
Support middleware for the frontend such that requests can be intercepted and augmented (allowing things like authentication headers).
Create a suite of ORM primitives in WASM, allowing for easy CRUD operations.
Add automatic CRUD endpoints utilizing the ORM primitives.
Marks the end of D1+Workers development
v0.0.5
Milestone
Create a Blob type, which will influence a MediaType for all methods.
Create a new Cloesce Service, essentially a suite of Workers endpoints under a namespace, not tied to a D1 table.
R2 wrangler toml generation
R2 navigation properties and ORM implementation
Allow Cloesce projects to run without any models or databases defined.
v0.0.6
Milestone
Durable Object support. More info to be figured out soon.
v0.0.7
Milestone
Open to community for testing-- squash as many bugs as possible. Investigate feedback and unintended constraints Cloesce imposes, addressing them here, potentially postponing to v0.2.0.
v0.0.8
Milestone
Add Python language support. Analyze and refactor the project to remove language hardcoded areas. Submodulize TS and Py runtimes