Closed sambauers closed 1 year ago
One potential issue with this PR is that some of my syntax (tabs vs spaces) may not align to current repo practice. I think maybe there is a follow up PR where I can implement Prettier.
Hey @sambauers thank you for undertaking this 🎉
I've been looking things over and everything looks solid! We're planning on adding ESLint & Prettier together in an upcoming PR, so I think we can accept this PR as-is and get everything back in line there.
I'm going to Merge this into a working branch to setup a dev build pipeline to test the new release configuration (thank you for updating our actions as well!)
:tada: This PR is included in version 4.0.0-beta.1 :tada:
The release is available on:
Your semantic-release bot :package::rocket:
Change summary is under the line below, but the key change is obviously porting the codebase almost entirely to Typescript. This removes the need for a seperate set of type definitions derived from JSDoc, and adds all the typical quality improvements that Typescript brings.
It is key to note that moving to Typescript changes the release process by injecting a build stage. I have tried to adapt the workflows as required, but they are untested at this point. It may be best in any case to somehow release a "canary" branch and version before committing this to main.
BREAKING CHANGE: Existing implementations that rely on former JSDoc-based types or utilise undocumented parts of the API are likely to break.
Summary:
.nvmrc
file./lib
renamed./src
and reorganised./src/**/*.js
converted to Typescript./src/models
./src/models
./src/lib/buildCSPHeaders.ts
ts-jest
package.json
scripts, incorporating./scripts/copy-release-files.js
.nvmrc
and native Node caching.releaserc
to pointsemantic-release
to the./dist
directory - semantic release process is mostly untested due to lack of permissions.