CLI
Create new taon project
# create single standalone project
taon new my-standalone-project
# create container with on standalone project
taon new my-projects-container/my-project
# create folder/container my-container-org and mark it as organization
taon new @my-container-org/my-project
Build & Release artifacts
Supported artifacts by taon cli:
- npm lib (entrypoint ./src/lib/index.ts)
- cli tool (entrypoint ./src/cli.ts)
- fe/be angular/node app (entrypoint ./src/app.ts)
- electron app (entrypoint ./src/app.electron.ts)
- vscode plugin (entrypoint ./src/app.vscode.ts)
- mobile cordova app (entrypoint ./src/app.mobile.ts)
- docs (mkdocs, storybook, compodoc) **/*.md, **/*.story.ts
Build process
Single easy to remember build command
taon build:lib # "ng build" form npm lib and whole /src
taon bl
taon build:watch:lib # "ng build --watch" form npm lib and whole /src
taon bwl
# REMEMBER: lib build command but be executed before each app/electron build
taon build:watch:app # "ng serve" for website apps
taon bwa
taon build:watch:electron # "ng serve" for electron apps
taon bwe
Scenario 1: developing website/npm library
first terminal
second terminal (wait for this command until lib build finish)Scenario 2: developing electron app/npm library
first terminal
second terminal (wait for this command until lib build finish)Scenario 3: developing vscode extension/npm library
first terminal
Each start of VSCode debugger recreates menu optionsRelease process
Single easy to remember release command
# show release menu
taon release
taon r
# release all stuff from taon.jsonc autoReleaseConfigAllowedItems
taon auto:release
taon ar
Link project or bundle
Similar command to npm link for taon projects
# - link local lib/cli development build as global cli tool
# - link local repo cli as global cli tools
taon link
Migrations (for databases)
taon migration # migration menu
taon m
# create migration file (with classes for all detected contexts)
taon migration:create
taon mc
# run all migrations (for all contexts)
taon migration:run # similar to 'taon run', but won't start express
taon mr # server and it will stop after contexts
# initialize() functions...
# revert migration to timestamp
taon migration:revert timestamp # similar to 'taon run', but won't start express
taon mr timestamp # server and it will stop after contexts
# initialize() functions...
Testing
# Unit/Integration tests (jest)
taon test
taon t
taon test:watch
taon tw
# recreate jest snapshots
taon test:up:snapshots
taon tu
# E2e testing (playwright)
taon e2e
taon e2e:watch
Branding
Recreate favicons, pwa assets from logo.png
Refactor
For every file: - fix prettier - fix eslint - wrap imports in region
Os
taon check:port 80 443 8080 => check if port(s) are taken
taon copy from-path to-path => copy file or folder
taon ln from-path to-path => link file or folder
taon refresh => refresh linked projects configuration
(after deleting or adding new repo)
taon settings:vscode => set random nice colors for you vscode window
java & tomcat
taon select:java => select java for $JAVA_HOME
taon select:tomcat => select tomcat for $TOMCAT_HOME
/etc/host
taon simulateDomain my-test-domain.com => modify /etc/host in a nice way
taon hosts => open /etc/hosts files in VSCode
Git
Handy shortcuts
taon soft => git reset --soft HEAD~1
taon count:commits => show origin of project
taon remove:submodules => remove all submodules from repo
taon remove:submodule my-not-wanted-git-submodules => remove submodule by folder name
taon remove:tag git-tag-name-optionally => remove git tag (if not provided name - select menu appears)
taon last:tag => display info aboutlast tag
taon clone git-repo-address-to-clone => display info aboutlast tag
Remotes
taon origin => show origin of project
taon remote => taon origin
taon origins => show all origins of project
taon remotes => taon origins
taon rename:origin http://my-new-origin => replaces default origin new provided
taon set:origin http://my-new-origin => alias to rename:origin
taon set:remote:ssh => changes http remote to ssh remote
taon set:remote:http => changes ssh remote to https remote
Rebase
taon rebase => rebase current branch with default branch
taon rebase branch-to-rebase => rebase current branch with changes from branch-to-rebase
Stash
taon stash => stash only staged files
taon stashall => stash all files
Reset + change branch
taon branch => git fetch / display menu with branches to select / select branch
taon reset => git fetch + remove tmp files for project + taon branch (include children)
taon reset my-branch => same as taon reset but specific branch
taon reset => reset hard and pull (recrusively)
Pull & Pull
taon pull => pull current branch or current workspace projects one after another
taon pul => taon pushall
taon repull => git reset hard --HEAD~10 + taon pull
taon pushall => push code to all remotes(origins) defined in .git/config
taon pall => taon pushall
taon push => (optionally git add +) commit with message based on branch name + push current branch
taon pp => push and pull
Smart Conventional Commits Branching
Checkout branch + add changes + commit message + push branch
Create special branches (with metadata inside name) that can be use later with command
taon push
to "re-push" changes and use matadata from branch name
as commit message.
fix
Quick commit and push bugfix
taon pfix JIRA-379089 JIRA-380320 proper counter message [my-lib]
<=>
git checkout -b bugfix/JIRA-379089-JIRA-380320--my-lib--proper-counter-message +
git add +
git commit -m "fix(my-lib): proper counter message JIRA-379089 JIRA-380320" +
git push origin bugfix/JIRA-379089-JIRA-380320--my-lib--proper-counter-message
taon pfix <=> taon pushfix <=> taon push:fix
feature
Quick commit and push feature
taon pf JIRA-379089 JIRA-380320 admin notification [my-lib]
<>=>
git checkout -b feature/JIRA-379089-JIRA-380320--my-lib--admin-notification +
git add +
git commit -m "feat(my-lib): admin notification JIRA-379089 JIRA-380320" +
git push origin feature/JIRA-379089-JIRA-380320--my-lib--admin-notification
taon pf <=> taon pushfeature <=> taon push:feature
chore
Quick commit and push chore
taon pc JIRA-379089 update deps
<=>
git checkout -b chore/JIRA-379089-update-deps +
git add +
git commit -m "chore: update deps JIRA-379089" +
git push origin chore/JIRA-379089-update-deps
taon pc <=> taon chore <=> taon pchore
docs
Quick commit and push docs update
taon pd explained installation
<=>
git checkout -b docs/explained-installation +
git add +
git commit -m "docs:explained installation" +
git push origin docs/explained-installation
taon pd <=> taon pdocs
test
Quick commit and push tests update
taon ptest admin permission new use case
<=>
git checkout -b test/admin-permission-new-use-case +
git add +
git commit -m "test: admin permission new use case" +
git push origin test/admin-permission-new-use-case
taon push:test <=> taon ptest <=> taon ptests
styl
Quick commit and push style update (formatting, linting etc.)
taon pstyle proper project methods
<=>
git checkout -b style/proper-project-methods +
git add +
git commit -m "style: proper project methods" +
git push origin style/proper-project-methods
taon pstyl <=> taon pstyle
refactor
Quick commit and push code refactor
taon pref new permission module
<=>
git checkout -b refactor/new-permission-module +
git add +
git commit -m "refactor: new permission module" +
git push origin refactor/new-permission-module
taon pref <=> taon prefactor
release
Quick commit and push release commit
taon prelease
<=>
git checkout -b release/version-v1-2-3 +
git add +
git commit -m "release: version v1.2.3" +
git push origin release/version-1-2-3
taon prel <=> taon prelase