Project goal is to provide an easy-to-use tool for Angular engineers to check HTTP response schemas at run-time and to identify/handle schema errors.
- io-ts support: relevant sources available in
projects/typesafe-http-iotsdirectory - zod support: relevant sources available in
projects/typesafe-http-zoddirectory
- Node.js 20.19.0 — use NVM to manage versions
- Angular CLI is available via the local dev dependency (
npm run ng -- ...)
Contributions are welcome! Please follow these high-level steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push the branch.
- Submit a pull request.
The libraries are built with compilationMode: "partial", so a single ng21 build is compatible with the full peer-dependency range (ng16–ng21). When bumping to a newer Angular major:
- Update
package.jsondependencies to the new Angular version and runnpm install. - Update
angular.jsonif any version-specific schema or builder references changed. - Update
peerDependenciesinprojects/typesafe-http-iots/package.jsonandprojects/typesafe-http-zod/package.jsonto reflect the new supported range (e.g. adding ng22 →>=16.0.0 <23.0.0). - Verify lint + tests + build still pass.
- Bump the version in
package.jsonto the next major version.
NOTE: Only the oldest supported version may be removed, and only one per release.
- Update
peerDependenciesinprojects/typesafe-http-iots/package.jsonandprojects/typesafe-http-zod/package.jsonto raise the lower bound (e.g. dropping ng16 →>=17.0.0 <22.0.0). - Bump the version in
package.jsonto the next major version.
- Apply your changes under
projects/directory. npm run lint:libnpm test- Follow Manual testing to verify the change works end-to-end.
- Update the version in
package.jsononly (it is propagated automatically to each library'spackage.jsonright before its build step):- minor bump — new feature added to all libraries, or new runtime-type-checker support added
- patch bump — any fix applied on at least one library
npm install
npm run build:libnpm run build:release
npm run publish:iots
npm run publish:zodMinimalist sample apps are included in the sample-apps/ directory.
npm run lint:lib && npm test && npm run build:lib
rm -rf projects/sample-iots projects/sample-zod
npm run ng -- generate application sample-iots
npm run ng -- generate application sample-zod
rm -rf projects/sample-iots/src projects/sample-zod/src
cp -R sample-apps/iots/ projects/sample-iots
cp -R sample-apps/zod/ projects/sample-zod
npm run ng -- serve sample-iots # Ctrl-C when done
npm run ng -- serve sample-zod # Ctrl-C when doneThis project is licensed under the MIT License. See the LICENSE.md file for details.
For questions or support, please contact peppierre@gmail.com.