{ "tasks": { "build": { "name": "build", "description": "Full release build", "steps": [ { "spawn": "default" }, { "spawn": "pre-compile" }, { "spawn": "compile" }, { "spawn": "post-compile" }, { "spawn": "test" }, { "spawn": "package" } ] }, "bump": { "name": "bump", "description": "Bumps version based on latest git tag and generates a changelog entry", "env": { "OUTFILE": "package.json", "CHANGELOG": "dist/changelog.md", "BUMPFILE": "dist/version.txt", "RELEASETAG": "dist/releasetag.txt", "RELEASE_TAG_PREFIX": "v" }, "steps": [ { "builtin": "release/bump-version" } ], "condition": "! git log --oneline -1 | grep -q \"chore(release):\"" }, "clobber": { "name": "clobber", "description": "hard resets to HEAD of origin and cleans the local repo", "env": { "BRANCH": "$(git branch --show-current)" }, "steps": [ { "exec": "git checkout -b scratch", "name": "save current HEAD in \"scratch\" branch" }, { "exec": "git checkout $BRANCH" }, { "exec": "git fetch origin", "name": "fetch latest changes from origin" }, { "exec": "git reset --hard origin/$BRANCH", "name": "hard reset to origin commit" }, { "exec": "git clean -fdx", "name": "clean all untracked files" }, { "say": "ready to rock! (unpushed commits are under the \"scratch\" branch)" } ], "condition": "git diff --exit-code > /dev/null" }, "compile": { "name": "compile", "description": "Only compile", "steps": [ { "exec": "tsc --build" } ] }, "default": { "name": "default", "description": "Synthesize project files", "steps": [ { "exec": "node .projenrc.cjs" } ] }, "eject": { "name": "eject", "description": "Remove projen from the project", "env": { "PROJEN_EJECTING": "true" }, "steps": [ { "spawn": "default" } ] }, "eslint": { "name": "eslint", "description": "Runs eslint against the codebase", "steps": [ { "exec": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern src test build-tools .projenrc.js" } ] }, "package": { "name": "package", "description": "Creates the distribution package", "steps": [ { "exec": "ncc build --source-map --license licenses.txt" } ] }, "post-compile": { "name": "post-compile", "description": "Runs after successful compilation" }, "pre-compile": { "name": "pre-compile", "description": "Prepare the project for compilation" }, "release": { "name": "release", "description": "Prepare a release from \"main\" branch", "env": { "RELEASE": "true", "MAJOR": "2", "RELEASE_TAG_PREFIX": "v" }, "steps": [ { "exec": "rm -fr dist" }, { "spawn": "bump" }, { "spawn": "build" }, { "spawn": "unbump" }, { "exec": "git diff --ignore-space-at-eol --exit-code" } ] }, "test": { "name": "test", "description": "Run tests", "steps": [ { "exec": "jest --passWithNoTests --all --coverageProvider=v8 --updateSnapshot" }, { "spawn": "eslint" } ] }, "test:watch": { "name": "test:watch", "description": "Run jest in watch mode", "steps": [ { "exec": "jest --watch" } ] }, "unbump": { "name": "unbump", "description": "Restores version to 0.0.0", "env": { "OUTFILE": "package.json", "CHANGELOG": "dist/changelog.md", "BUMPFILE": "dist/version.txt", "RELEASETAG": "dist/releasetag.txt", "RELEASE_TAG_PREFIX": "v" }, "steps": [ { "builtin": "release/reset-version" } ] }, "watch": { "name": "watch", "description": "Watch & compile in the background", "steps": [ { "exec": "tsc --build -w" } ] } }, "env": { "PATH": "$(npx -c \"node -e \\\"console.log(process.env.PATH)\\\"\")" }, "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." }