Skip to content

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

taon build:watch:lib # or taon bwl
second terminal (wait for this command until lib build finish)
taon build:watch:app # or taon bwa

Scenario 2: developing electron app/npm library

first terminal

taon build:watch:lib # or taon bwl
second terminal (wait for this command until lib build finish)
taon build:watch:electron # or taon bwe

Scenario 3: developing vscode extension/npm library

first terminal

taon build:watch:lib # or taon bwl
Each start of VSCode debugger recreates menu options

Release 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

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

taon branding

Refactor

For every file: - fix prettier - fix eslint - wrap imports in region

taon refactor

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