New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bifrost-zero-common

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bifrost-zero-common

A library of commonly used functions to interact with BIFROST

  • 1.0.2
  • npm
  • Socket score

Version published
Weekly downloads
4
decreased by-55.56%
Maintainers
1
Weekly downloads
 
Created
Source

bifrost-common

A library of commonly used functions to interact with BIFROST. Useful for module developers.

Installation

npm i bifrost-common

Components

BasicBifrostModule

A base class for simple BIFROST modules.

import { BasicBifrostModule } from 'bifrost-common'

const newModule = new BasicBifrostModule({
    moduleId            : 'NewModule',
    moduleDescription   : 'A simple template module',
    author              : 'rmos'
})

newModule.start()

Log

A module to print nice logging information to the console and, optionally, to files.

const { Log } = require('bifrost-common')

const log = new Log('myComponent', 'myApplication', options)

log.write(`Abandon ship`, Log.level.WARNING)
log.write(`Run like hell`, Log.level.INFO)

Log levels are DEBUG, INFO, WARNING, ERROR, FAILURE

Allowed options are:

  • enableLogFiles (default: false): log to files as well as the console
  • logDir (default: log): the log file directory (will be created as necessary)
  • maxLogFileSize (default: 1m): maximum size of the log files, after which a new file will be started
  • maxArchiveSize(default: 5): maximum number of log files to keep

time

Some useful operations involving time, mostly for formatting Log output.

idOfRef

Resolve the ID contained in an object. If no 'id' field is found in the object pointed to with ref, the last part of the reference is returned instead.

const { idOfRef } = require('bifrost-common')

console.log(idOfRef({ A: { id: '1' }}, '/A')) // '1'
console.log(idOfRef({ A: { B: {} }}, '/A/B')) // 'B'

tokens

An object collecting string tokens commonly used in the BIFROST state.

const { tokens } = require('bifrost-common')

console.log(tokens.tkId) // "id"

select

Selectors returning fully-qualified JSON paths into the BIFROST state.

const { select } = require('bifrost-common')

console.log(select.meta())                      // "/meta"
console.log(select.dynamicId('DYNAMIC-1'))      // "/dynamics/byId/DYNAMIC-1"
console.log(select.eventParentRef('EVENT-1'))   // "/events/byId/EVENT-1/parentRef"

safepointer

A wrapper around json-pointer that allows to specify default values if paths can not be resolved. This is best used in conjunction with select and a copy of the BIFROST state.

API
const { safepointer } = require('bifrost-common')
.has(obj, path)

Determine whether the fully-qualified JSON pointer path points to something in obj.

safepointer.has({ A: { B: 1} }, '/A/B') // true
safepointer.has({ A: { B: 1} }, '/A/C') // false
.get(obj, path, def = null)

Resolve path against obj. If the path does not exist, def is returned instead.

safepointer.get({ A: { B: 1} }, '/A/B', 0)  // 1
safepointer.get({ A: { B: 1} }, '/A/C', 0)  // 0

const { select } = require('bifrost-common')

safepointer.get(state, select.meta(), {}) // { id: ... }

SelectFrom

A declarative state selection library. Use this to select elements from the BIFROST state or from module subscription data.

    SelectFrom(state)
        .allDynamics()
        .ofType('VOLTAGE-3P')
        .asValueMap()

    SelectFrom(subs)
        .allEntries()
        .ofType('CLIMATE-MODEL')
        .asValueList()

    SelectFrom(subs, state)
        .allEntries()
        .withParentOfType('WEATHER')
        .asValueMap()

Keywords

FAQs

Package last updated on 21 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc