v0.6.1
Notice
In our efforts to make Deno SaaSKit as simple to use and easy to understand as possible, we will remove some functionality that we've realised is out-of-scope for this codebase as a SaaS template. The functionality in question includes notifications, commenting and item pages. These removals will make future maintenance smoother while not losing out on too much of what makes the Deno Hunt awesome. Thank you to those who have helped develop and implement these ideas. This release will serve as a snapshot of Deno SaaSKit for these features.
Highlights
Some key aspects of this release include:
- The addition of the Deno SaaSKit REST API
- Cursor-based pagination islands
- Significant improvements in documentation clarity and test coverage
- Improved ergonomics of error-handling
- Various performance improvements
What's Changed
Features
- feat: add styles for visited item links by @niklasmtj in #367
- feat: REST API for users by @iuioiua in #440
- feat: REST API for items and comments by @iuioiua in #441
- feat: cursor-based pagination for comments using "Load more" button by @iuioiua in #438
- feat: REST API and cursor-based pagination for notifications by @iuioiua in #442
- feat: add URL validation by @mbhrznr in #443
- feat: cursor-based pagination for users table by @iuioiua in #446
- feat: disallow duplicate entries for users by @mbhrznr in #447
- feat:
<ItemsList />with cursor-based pagination by @iuioiua in #445 - feat: improved HTTP errors for REST API by @iuioiua in #444
- feat: protect routes plugin by @iuioiua in #487
- feat:
deno task db:restoreby @iuioiua in #535 - feat:
deno task cov:viewby @iuioiua in #558 - feat: fetch preload
GET /api/me/voteswhen user is signed in by @iuioiua in #567
Fixes
- fix: submit route import by @iuioiua in #448
- fix: migration script by @iuioiua in #449
- fix: user not found by @iuioiua in #413
- fix: omit Stripe vars from
.example.envby @iuioiua in #404 - fix:
timeAgo()usage by @iuioiua in #456 - fix: correct
getCursor()test location by @iuioiua in #482 - fix:
<ItemsList />fetch resources order by @iuioiua in #485 - fix: only call
/api/me/voteswhen being signed in by @mbhrznr in #534 - fix: encode URI components by @iuioiua in #538
- fix(blog): add
dateTimeattribute to<time>by @iuioiua in #539 - fix:
db:migratetask by @iuioiua in #536 - fix(profile): apply 2 column layout to Profile page by @hashrock in #553
- fix: avoid showing "No items found" stats in
<ItemsList />by @roberto-morado in #559 - fix: active dashboard link by @mbhrznr in #521
Performance Improvements
- perf:
<MadeWithFreshBadge />by @ryanponce in #518 - perf: use
rel=preloadfor pages that perform fetching by @mbhrznr in #520 - perf:
<StaticVoteButton />by @ryanponce in #517
Documentation
- docs:
CONTRIBUTING.mdby @iuioiua in #421 - docs: improve contributing guide by @iuioiua in #461
- docs: re-write "Get Started" README section by @iuioiua in #504
- docs: "Deploy to Production" cleanups by @iuioiua in #528
- docs: "Create a Blog Post" section by @iuioiua in #529
- docs: polish "Create a Blog Post" section by @iuioiua in #530
- docs: complete JSDocs for
utils/http.tsby @iuioiua in #533
Refactors
- refactor:
/userto/usersby @iuioiua in #419 - refactor:
/itemto/itemsby @iuioiua in #420 - refactor: icons tweaks by @iuioiua in #422
- refactor: use async route components by @iuioiua in #424
- refactor: use
x/tabler_icons_tsximport by @JacobDanton in #430 - refactor: move notifications REST API endpoint by @iuioiua in #451
- refactor: consolidate HTTP-related utilities by @iuioiua in #452
- refactor: improve "Load more" button design by @iuioiua in #453
- refactor: remove
getToggledStyles()by @iuioiua in #454 - refactor: polish display utilities by @iuioiua in #455
- refactor: remove submission validations and island utilities by @iuioiua in #457
- refactor: move Deno KV OAuth (auth) logic into custom plugin by @iuioiua in #458
- refactor: change e2e test name and point to "Writing tests" Fresh example by @iuioiua in #459
- refactor: session middleware by @iuioiua in #486
- refactor: move
POST /submittoPOST /api/itemsby @iuioiua in #493 - refactor: use ULID for notifications functionality by @iuioiua in #483
- refactor: remove
getValue()by @roberto-morado in #499 - refactor: move
POST /items/[id]toPOST /api/commentsby @iuioiua in #494 - refactor: rename and restructure
/toolsfolder by @rj2704 in #503 - refactor: use ULIDs for comment functionality by @iuioiua in #502
- refactor: cleanup
db:resetscript by @iuioiua in #509 - refactor: simplify
db:dumptask by @iuioiua in #511 - refactor: cleanup Stripe logic by @iuioiua in #525
- refactor: use npm specifier for feed package by @iuioiua in #526
- refactor: polish posts tests and documentation by @iuioiua in #531
- refactor: complete
utils/display.tstests and docs by @iuioiua in #532 - refactor: use ULIDs for items by @iuioiua in #514
- refactor: move
fetchValues()by @iuioiua in #540 - refactor: cleanup
hasNotificationssymbol by @iuioiua in #541 - refactor: expand test coverage to
/routesby @iuioiua in #560 - refactor: revert #560 by @iuioiua in #561
- refactor: error middleware and improvements by @iuioiua in #543
- refactor:
getAndDeleteNotification()by @iuioiua in #544 - refactor: move notification logic into
createComment()by @iuioiua in #568 - refactor: tweak
<NotificationsList />design by @iuioiua in #548 - refactor: error handling plugin by @iuioiua in #550
- refactor: remove
compareScore()by @iuioiua in #551 - refactor: improve and document users logic by @iuioiua in #554
- refactor:
after:contentfor new window symbol by @iuioiua in #556 - refactor: remove
assertIsEntry()by @gaurab-khanal in #477
Chores
- chore: upgrade to Fresh v1.4.2 by @iuioiua in #428
- chore: upgrade to deno_kv_oauth@0.5.0 by @iuioiua in #450
- chore:
deno task check:typesby @iuioiua in #426 - chore: remove
/tools/migrate_kv.tsby @iuioiua in #479 - chore: remove roadmap reference by @iuioiua in #480
- chore: add
--doctotesttask and correct JSDocs by @iuioiua in #489 - chore: remove lighthouse in CI by @iuioiua in #490
- chore: expand test code coverage by @iuioiua in #495
- chore(deps): bump actions/checkout from 3 to 4 by @dependabot in #498
- chore: update assertion imports by @mbhrznr in #506
- chore: flatten e2e tests by @mbhrznr in #508
- chore: disable comments unless user is signed in by @mbhrznr in #507
- chore: shorten deployment section in readme by @lambtron in #510
- chore: simplify
tasks/db_seed.tsby @mbhrznr in #519 - chore: upgrade to Fresh 1.4.3 by @iuioiua in #527
- chore: add testing and JSDocs to voting logic by @iuioiua in #542
- chore: add
getGitHubUser()JSDocs and test by @iuioiua in #545 - chore: add
POST /api/stripe-webhookscatches and tests by @iuioiua in #546 - chore: upgrade to
npm:stripe@13.5.0by @iuioiua in #547 - chore: add e2e tests for
GET /account/manageandGET /account/upgradeby @revgum in #549 - chore: add e2e tests for
GET /notifications/[id]by @revgum in #552 - chore: adds e2e tests for
POST /api/commentsby @revgum in #555 - chore: add e2e tests for
GET /items/:id,GET /account,GET /dashboard,GET /dashboard/statsandGET /dashboard/usersby @revgum in #557 - chore: add
GET /api/me/votestest by @iuioiua in #562 - chore: add e2e tests for
POST /api/items,DELETE /api/items/:id/voteandPOST /api/items/:id/voteby @revgum in #565 - chore: add
fetchValues()JSDocs and tests by @iuioiua in #566
New Contributors
- @JacobDanton made their first contribution in #430
- @gaurab-khanal made their first contribution in #477
- @dependabot made their first contribution in #498
- @roberto-morado made their first contribution in #499
- @rj2704 made their first contribution in #503
- @ryanponce made their first contribution in #518
- @revgum made their first contribution in #549
Full Changelog: v0.6.0...v0.6.1