Skip to content

frouriojs/notios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cdf213e · Jul 12, 2024
Jun 18, 2023
Jul 11, 2024
Jul 10, 2024
Jul 11, 2024
Apr 26, 2022
Jul 10, 2024
Jul 11, 2024
Jul 11, 2024
Jul 12, 2024
Jul 10, 2024
Mar 9, 2022
May 23, 2022
Jul 10, 2024
Mar 24, 2022
Jun 18, 2023
May 23, 2022
Mar 24, 2022
Jun 12, 2022
Jul 10, 2024
Jul 12, 2024
Jul 12, 2024
Apr 11, 2022
Jul 11, 2024

Repository files navigation


notios


Notios

Setup

For npm-run-all users

Just uninstall npm-run-all and install notios.

npm remove npm-run-all
npm install -D notios

Binaries (n-run-p, n-run-s and n-npm-run-all) behavies perfectly the same as npm-run-all unless starting from notios.

As an other option, you can keep npm-run-all with using n-run-p, n-run-s and n-npm-run-all binaries.

Usage

# Show help.
npx notios --help

# Start UI.
npx notios

# Or specify script name.
npx notios dev

Incompatibility

  • Flags other than -s and -p in npm-run-app are not supported when starting from notios.
  • Supplying flags over patterns like run-s 'build:* -- --watch'.

Fix npm-run-all version

Notios will check existence of @notios/npm-run-all.

npm i -D @notios/npm-run-all@npm:npm-run-all@${version}

# example for ^3
npm i -D @notios/npm-run-all@npm:npm-run-all@^3

Note that you should replace run-p, run-s and npm-run-all with n- prefixed ones.

Configuration

Notios can be configured with user level config file. Please npx notios --help to check default config file location or explicitly specify the location by --config flag.

Project level configuration is not recommended.

For linux users, ~/.config/notios/notios.config.cjs is the default location of configuration.

mkdir -p ~/.config/notios
cd ~/.config/notios
npm init -y
npm i @notios/config@latest

Then edit ~/.config/notios/notios.config.cjs like following.

// @ts-check
const { defineNotiosConfig } = require('@notios/config');

module.exports = defineNotiosConfig((defaultConfig) => ({
  ...defaultConfig,
  v1: {
    ...defaultConfig.v1,

    // your configurations...

    // Example for the configuration to show timestamp by default.
    showTimestampByDefault: true,

    // Following is just an example for keymapping.

    keymappings: {
      ...defaultConfig.v1.keymappings,
      "tree-procs": {
        ...defaultConfig.v1.keymappings["tree-procs"],

        // My original safe kill keymapping [CTRL-X then CTRL-X]
        kill: [
          {
            type: "seq",
            seq: [
              {
                type: "char",
                char: "x",
                ctrl: true,
              },
              {
                type: "char",
                char: "x",
                ctrl: true,
              },
            ],
          }
        ],

        // Add my own keymapping [CTRL-R] for restart over the default keymapping
        restart: [
          ...defaultConfig.v1.keymappings["tree-procs"].restart,
          {
            type: "char",
            char: "r",
            ctrl: true,
          }
        ],
      },

      // Common keymappings should be avoided confliction with any other keymappings
      common: {
        ...defaultConfig.v1.keymappings.common,

        // Change exit mapping from [CTRL-C] to [CTRL-Q]
        exit: [
          {
            type: "char",
            char: "q",
            ctrl: true,
          }
        ],
      },
    },
  },
}));

Utility defineNotiosConfig enables you use completion and not necessary. Directive // @ts-check enables you write configuration type-safely.

Notios never fallbacks to any value of configuration to default values. You should use defaultConfig to explicitly specify what and how you want to fallback. Spreading in any nesting level like ...defaultConfig.v1, is necessary to make your configuration working properly for various notios versions.

Until the detailed documatation is ready, please refer to the default configuration.