Filling the small gap between Appwrite and a perfect Developer Experience by providing an extensive suite of FOSS tools for Appwrite.
Go to file
Exponential-Workload 1f5a403786
Some checks failed
Build & Test Packages / build (push) Has been cancelled
feat: Move to a central tsconfig.json as a base, use strict mode
- Move to a central "base" tsconfig.json
- Enable strict mode project-wide
- Skip Default Lib Check; Typescript's .d.ts files are assumed to be correct
2024-04-30 19:01:03 +02:00
.changeset feat: Move to a central tsconfig.json as a base, use strict mode 2024-04-30 19:01:03 +02:00
.forgejo/workflows fix: make test depend on build in nx.json 2024-03-17 19:59:18 +01:00
.vscode fix: Fix a stupid circular dep, move to nx 2023-11-29 19:57:04 +01:00
ico feat: icons!!! 2024-03-04 23:41:05 +01:00
packages feat: Move to a central tsconfig.json as a base, use strict mode 2024-04-30 19:01:03 +02:00
scripts chore: remove tsc as a pnpm new option 2024-04-30 18:57:52 +02:00
.gitignore fix: Fix a stupid circular dep, move to nx 2023-11-29 19:57:04 +01:00
.npmrc chore: upd npmrc 2024-01-06 12:33:47 +01:00
.prettierignore feat: Add Lint Scripts 2023-12-04 18:25:00 +01:00
.prettierrc feat: initial @3xpo commit 2023-11-28 23:46:42 +01:00
base-tsconfig.json feat: Move to a central tsconfig.json as a base, use strict mode 2024-04-30 19:01:03 +02:00
LICENSE feat: Update License Year 2024-03-04 23:35:47 +01:00
nx.json fix: make test depend on build in nx.json 2024-03-17 19:59:18 +01:00
package.json feat: routine dependency upgrade time! 2024-04-30 18:46:51 +02:00
pnpm-lock.yaml feat: routine dependency upgrade time! 2024-04-30 18:46:51 +02:00
pnpm-workspace.yaml feat: initial @3xpo commit 2023-11-28 23:46:42 +01:00
README.md chore: mention we're mostly pre-1.x 2024-03-17 20:20:44 +01:00

We've moved!

Written has moved from Expo/Written to Written/Written on Codeberg! If you've cloned the repo, please run the below command:

git remote set-url origin git@codeberg.org:Written/Written.git

Written Logo

Written

Filling the small gap between Appwrite and a perfect Developer Experience by providing an extensive suite of FOSS tools for Appwrite.

Codeberg License

Packages

Templating Packages

The below packages are designed to be used in pnpm create or npm init commands, as they will initialize a Written project.

  • create-written (pnpm create written, npm init written) - A simple, yet powerful, project initializer for Written projects. It will initialize a Written project with the base setup, and will install the necessary dependencies for you. You need an Appwrite instance to use this package. Uses @written/base-monorepo-setup under the hood.
  • @written/create-function (pnpm create written-function, npm init written-function) - A utility to create a new Written Function in your existing Written project.

Core Packages

  • @written/app - A simple, yet powerful, Appwrite Function Framework. Allows you to have Routing and Middleware in your Appwrite Functions, similar to Koa or Express.
  • @written/appwrite-types - TypeScript types for Appwrite's Functions, allowing you to gain typesafety over primitive Appwrite Functions. Designed for @written/app, but is perfectly usable in any Appwrite Function.

Middleware Packages

The below packages are designed to be used with @written/app as middleware.

  • @written/cors-setup - A CORS wrapper, for use with @written/wrap. This is integrated into @written/app under App.cors(); the recommended way to use this.
  • @written/static - A microscopic static file server middleware for @written/app, allowing you to easily serve static files in your Appwrite Functions.
  • @written/throwables - Error handling made easy.

Utility Packages

  • @written/mkctx - A utility library for creating Appwrite Contexts, useful for testing, mocking and using Appwrite Functions outside of Appwrite.
  • @written/wrap - A tool for wrapping an Appwrite default function, as to modify either the request or response object. Works without written.
  • @written/httpcompat - Convert from/to node native http request/response objects to/from Appwrite's default function request/response objects.

Appwrite SDK Tooling

Generic Function Utilities

  • @awfn/define-handler - Simple alternative to satisfies AppwriteDefault that also gives you intellisense in plain-JS projects (and works fine in TS ones). Inspired by any configurations that have a define<LibraryNameHere> function.
  • @awfn/cli - A helper for Appwrite Functions, allowing tasks like automatically redeploying your function on changes, amongst other things. Cleans up the scripts section of your functions' package.jsons.

Generic Packages

The below packages are not designed to be Appwrite-specific, and are designed for use anywhere.

Version

A large chunk of written is pre-1.x. This means that minor version bumps (y in vx.y.z increasing) may introduce breaking changes. We will try to keep this to a minimum, but it may happen.

Assuming your semver range is limited to the nearest patch version, written is considered stable for production use. Note that create-written will limit to the nearest minor version; please adjust this to the nearest patch if you plan to deploy to production prior to a ?=1.y.z of a package being released.

Exceptions to this are the following packages:

These packages are considered stable for production use, and will not introduce breaking changes in minor version bumps.

Transitive dependencies are not considered stable for production use, even in these. If you depend on a dependency of a dependency, include it aswell; patch versions may bump major versions of transitive dependencies. (btw, please use a package manager like pnpm that can handle multiple versions of the same package)

Notice

This is a 3rd-party project and, while being made for Appwrite, is not affiliated with it.

License

This project is licensed under the MIT License. See the LICENSE file for details.