A helpful toolkit to simplify building NodeJS applications on the cloud. The most mature set of libraries is currently focussed on Google Cloud Platform (GCP).
Built for ESM only.
- gcp-core
- gcp-firestore
- gcp-firestore-backups
- gcp-firestore-migrations
- gcp-datastore
- gcp-datastore-backups
- gcp-storage
- gcp-tasks
- gcp-bigquery
- gcp-google-auth
- gcp-firebase-auth
These libraries have most recently evolved from GAE JS, authored by the same team. They have been re-branded, given they are not just useful for Google App Engine, updated for ESM, and cleaned up with deprecations removed.
This is a mono-repo using npm workspaces. Publishing is done using Atlassian Changesets (https://github.com/changesets/changesets). This helps be consistent with versioning and auto-generates changelogs.
Here's the basic flow:
- Create one or more changesets
- Once you've made your changes, create a changeset. You can create more than one changeset for a single version.
npx changeset
- From the cli tool, choose which packages to update and if major/minor/patch update
- Enter summary for changes
- Review and commit files
- Update package versions
- Based on the changeset configuration - this will automatically version the packages.
npx changeset version
- Commit changes
- Build and publish
Would be nice if this was done from CI but for now we do this locally.
- Check you're running a suitable version of node/npm. If not switch and clear out old node_modules.
- Build and publish
npm run publish-libs
There's nothing automated to do this. Essentially you just need to add a new package to /packages
folder but
these steps should save some time:
- Create new folder in
/packages
. e.g./packages/gcp-new-thing
,/packages/aws-new-thing
,/packages/azure-new-thing
- Copy
package.json
,tsconfig.json
,tsconfig.prod.json
,jest.config.json
from one of the existing packages - Update
package.json
to match desired name, version, dependencies, etc - Update
tsconfig.json
to match desired project references. - Create file
src/index.ts
and export some constant - Run
npm install
from root folder - Run
npm run build
from project folder
Feel free to change:
- the name of your local branch in the first step
- the name of the branch you are merging from in
gae-js
in the last step
git checkout -b feature/gae-js-merge
git remote add gae-js https://github.com/mondo-mob/gae-js.git
git remote update
git merge gae-js/main