Maintainers Information
When working with a team on a monorepo that is made of several individual packages, it's very common that the same people have to be added to the author
, contributors
and maintainers
fields in the package.json
files for these packages.
To make this job easier and faster, you can use the people
field in the typescript config to store information about the contributors that are referred in multiple places, and then you can simply refer them by their ID.
Example
typescript:
people:
bruce:
name: Bruce Wayne
email: bruce@gotham.com
url: brucewayne.com
package_json_presets:
people-example:
author: bruce # Using the id from the store
maintainers:
# Literal definition
- name: Clark Kent
url: clarkkent.com
email: clark-kent@dailyplanet.com
- bruce
contributors:
- bruce
# Since package.json presets are extensible,
# you can use the above as a base for other package.json files,
# if the author or contributors are always the same
some-other-project:
extends:
- people-example
scripts:
say-hi: echo hi!
package_presets:
people-example:
dir: packages/people-example
package_json: people-example
After we run
sketch ts package --preset people-example
We get this package.json
file in the root of the new package:
{
"name": "people-example",
"private": true,
"version": "0.1.0",
"type": "module",
"packageManager": "pnpm",
"scripts": {},
"contributors": [
{
"name": "Bruce Wayne",
"email": "bruce@gotham.com",
"url": "brucewayne.com"
}
],
"maintainers": [
{
"name": "Bruce Wayne",
"email": "bruce@gotham.com",
"url": "brucewayne.com"
},
{
"name": "Clark Kent",
"email": "clark-kent@dailyplanet.com",
"url": "clarkkent.com"
}
],
"devDependencies": {
"oxlint": "^1.16.0",
"typescript": "^5.9.2",
"vitest": "^3.2.4"
},
"dependencies": {}
}