Big News: Socket Selected for OpenAI's Cybersecurity Grant Program.Details
Socket
Book a DemoSign in
Socket

@nhz.io/abstract-resource-manager

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nhz.io/abstract-resource-manager

AbstractResourceManager Class

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
2
Created
Source

AbstractResourceManager Class

Travis Build NPM Version

Install

npm i -S @nhz.io/abstract-resource-manager

Usage

const AbstractResourceManager = require('@nhz.io/abstract-resource-manager')

class Manager extends AbstractResourceManager {
  /* Implement the methods */
}

...

Literate Source

Manager

class AbstractResourceManager

Start managing resource

  manage: (resource) ->

    return unless resource = @register resource

    job = @getJob resource

    if job

      @stop job, resource if @shouldStop job, resource

      config = @needUpgrade job, resource

      job = @upgrade job, config if config

      @start job, resource if @shouldStart job, resource

Return the resource

    resource

Stop managing resouce

  unmanage: (resource) ->

    return unless resource = @unregister resource

    job = @getJob resource

    if job

      @stop job, resource if @shouldStop job, resource

      config = @needDowngrade job, resource

      job = @downgrade job, config if config

      @start job, resource if @shouldStart job, resource

Return the resource

    resource

Unimplemented methods with sane defaults

  register: (resource) -> resource

  unregister: (resource) -> resource

  getJob: (resource) -> null

  shouldStart: (job, resource) -> false

  shouldStop: (job, resource) -> false

  needUpgrade: (job, resource) -> null

  needDowngrade: (job, resource) -> null

  upgrade: (job, config) -> null

  downgrade: (job, config) -> null

  start: (job, resource) -> job

  stop: (job, resource) -> job

module.exports = AbstractResourceManager

Tests

test = require 'tape-async'

test 'AbstractResourceManager constructor', (t) ->
  t.plan 1

  manager = new AbstractResourceManager

  t.ok manager instanceof AbstractResourceManager

Version 0.1.1

License MIT

Keywords

nhz-io

FAQs

Package last updated on 17 Nov 2017

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