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:restore
by @iuioiua in #535 - feat:
deno task cov:view
by @iuioiua in #558 - feat: fetch preload
GET /api/me/votes
when 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.env
by @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/votes
when being signed in by @mbhrznr in #534 - fix: encode URI components by @iuioiua in #538
- fix(blog): add
dateTime
attribute to<time>
by @iuioiua in #539 - fix:
db:migrate
task 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=preload
for pages that perform fetching by @mbhrznr in #520 - perf:
<StaticVoteButton />
by @ryanponce in #517
Documentation
- docs:
CONTRIBUTING.md
by @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.ts
by @iuioiua in #533
Refactors
- refactor:
/user
to/users
by @iuioiua in #419 - refactor:
/item
to/items
by @iuioiua in #420 - refactor: icons tweaks by @iuioiua in #422
- refactor: use async route components by @iuioiua in #424
- refactor: use
x/tabler_icons_tsx
import 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 /submit
toPOST /api/items
by @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/comments
by @iuioiua in #494 - refactor: rename and restructure
/tools
folder by @rj2704 in #503 - refactor: use ULIDs for comment functionality by @iuioiua in #502
- refactor: cleanup
db:reset
script by @iuioiua in #509 - refactor: simplify
db:dump
task 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.ts
tests and docs by @iuioiua in #532 - refactor: use ULIDs for items by @iuioiua in #514
- refactor: move
fetchValues()
by @iuioiua in #540 - refactor: cleanup
hasNotifications
symbol by @iuioiua in #541 - refactor: expand test coverage to
/routes
by @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:content
for 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 [email protected] by @iuioiua in #450
- chore:
deno task check:types
by @iuioiua in #426 - chore: remove
/tools/migrate_kv.ts
by @iuioiua in #479 - chore: remove roadmap reference by @iuioiua in #480
- chore: add
--doc
totest
task 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.ts
by @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-webhooks
catches and tests by @iuioiua in #546 - chore: upgrade to
npm:[email protected]
by @iuioiua in #547 - chore: add e2e tests for
GET /account/manage
andGET /account/upgrade
by @revgum in #549 - chore: add e2e tests for
GET /notifications/[id]
by @revgum in #552 - chore: adds e2e tests for
POST /api/comments
by @revgum in #555 - chore: add e2e tests for
GET /items/:id
,GET /account
,GET /dashboard
,GET /dashboard/stats
andGET /dashboard/users
by @revgum in #557 - chore: add
GET /api/me/votes
test by @iuioiua in #562 - chore: add e2e tests for
POST /api/items
,DELETE /api/items/:id/vote
andPOST /api/items/:id/vote
by @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