npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@nikitajs/core

v1.0.0-alpha.4

Published

Provides the Nikita engine and the core Nikita actions and plugins.

Downloads

15

Readme

Nikita "core" package

The core package provides the Nikita engine and the core Nikita actions and plugins.

Documentation

The Nikita website covers:

  • The API created by this package
  • several guides to learn the Foundamental concepts.
  • The actions registered in this package.

Architecture

The package is composed of:

  • The core engine:
    • The package entry point to instantiate Nikita sessions loaded with plugins and which register the actions present in this package.
    • The session module which is the internal engine.
    • The registry module to associate action names to modules.
    • The scheduler to orchestrate the execution of actions and their children.
    • The register script to register the package's actions.
  • Foundamental actions covering:
    • Basic actions such as assert, call and wait.
    • Execute actions to interact with Unix commands and process.
    • SSH related actions.
    • Filesystem related actions.
  • Plugins which extends Nikita in various ways such as:
    • Assertions to validate action behavior.
    • Conditions to enable and disable action execution.
    • Metadata to modify action's behaviors.
    • Tools to provide usefull data and functions to actions.

Usage

Nikita is commonly imported by refering to the nikita package. However, it will load a lot of actions which are potentially not necessary. By using the core package directly, you reduce your dependencies and the number of modules loaded in your Node.js process.

To import the module:

import nikita from "@nikitajs/core";

Then, call the register scripts to register additionnal actions, for example the lxd actions:

import "@nikitajs/lxd/lib/register";

Following this example, you can now use any action present in the core and the lxd packages:

// Use the `execute` action from the `core` package
const {
  stdout: whoami
} = await nikita.execute('whoami', { trim: true });
// Use the `lxc.init` action from the `lxd` package
nikita.lxc.init({
  image: 'images:alpine/3.13',
  container: `nikita-${whoami}`
});