@solomon-ai/data-contracts
v1.0.1
Published
## Project Purpose
Downloads
1
Readme
YourProjectName
Project Purpose
This is a template repository, intended to accelerate teams at Lokalise to create public packages for publishing on NPM.
This repository is not specifically frontend focused.
Key Features
The following are all handled for you and do not need to be configured:
- Licensing
- Linting
- Formatting
- Testing
- Building
- Bundling
- Automated Versioning
- Publishing
Getting Started
- [ ] Find and replace all instances of the symbols (case-insensitive) with your project name:
your-project-name
YourProjectName
- [ ] Add an NPM token to GitHub secrets with the name
NPM_TOKEN
- This is required for publishing under the
@lokalise
NPM namespace.
- This is required for publishing under the
- [ ] Add a GitHub token to GitHub secrets with the name
GITHUB_TOKEN
- This is required to allow the automated semantic release process to push to
main
.
- This is required to allow the automated semantic release process to push to
- [ ] Update the
CODEOWNERS
file with your personal and/or team tags.
Once you are all setup, we recommend reviewing and rewriting this README as necessary to make it more specific to your project.
The last thing to do is actually start writing your code! We recommend starting from src/index.ts
and src/index.test.ts
.
Customizing the build
The build system uses Vite. It is configured to treat ./src/index.ts
as the entry point of your repository. Feel free
to change any particulars in ./vite.config.ts
. In particular if you require multiple entry points, we recommend
reviewing Vite's documentation on this here: Vite Library Mode.
In case you add direct or peer dependencies, you should uncomment following lines (and corresponding import above) to ensure those dependencies are not directly included in the built package.
external: Object.keys(packageJson.dependencies).flatMap((dep) => [
dep,
// Include all dependency paths, not just root
new RegExp(`^${dep}/`),
])
Husky
By default, pre-commit hook will run npm run lint:fix
. Feel free to remove that if it's undesirable or add your own
pre-commit commands.
Check out husky docs for more info.
commitlint
You can use npm run commit
to interactively construct correct commit messsage.
Check out commitlint docs for examples of how to customise.
Release actions
The following token needs to be set in the Github repo for the prerelease
and release
Github Actions to work:
secrets.NPM_TOKEN
(need this to publish on NPM)
When performing a release, make sure to follow our conventional commit approach, as described in contribution documentation.
License
This project is APACHE, VERSION 2.0 licensed, see LICENSE.md for details.
Template Specific Internal Notes
The following notes are only relevant to the maintainers of this template. You may delete this section when you clone it.
Creating a release of the template
- Merge your PR and create a new draft release.
- Create a new tag
vx.x.x
. Consider the type of changes you added. Major, minor or patch. - In Release title mention the same version
vx.x.x
. - Generate release notes.
- Publish Release
Other Resources
This template represents the culmination of Lokalise technical recommendations as documented in the Frontend Radar.
Support Us
lokalise-npm-package-template was created by Lokalise Engineering Team. Support our work by keeping this line in your README.