0.4.0 • Published 7 years ago

hooki v0.4.0

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

Hooki

⚓️ An advanced Javascript hook system.

Installation

npm install hooki --save

Usage

// product.class.js

import Hooki from 'hooki';
import { before, after } from './hooks';

class Product {
  constructor(name, price, stock) {
    this.name = name;
    this.price = price;
    this.stock = stock;
  }

  buy(quantity) {
    console.log(`${this.name} x${quantity}`);
  }

}

export new Hooki(ProductClass, before, after);
// hooks.js

export const before = {
  buy: [
    function verifyStock(context) {
      if (context.params.quantity > context.self.quantity) {
        throw Error('Amount exceeds stock!');
      }
      return context;
    }
  ]
};

export const after = {
  buy: [
    function removeFromStock(context) {
      context.self.quantity -= context.params.quantity;
      return context
    }
  ]
};
// app.js

import Product from './product.class.js';

const bag = new Product('bag', 10.43, 5);

bag.buy(4); 
// -> bag x4
console.log(bag.stock); 
// -> 1
bag.buy(2); 
// -> Error: Amount exceeds stock!

Roadmap

Tests

  • tests

target types

  • object
  • class
  • function

action types

  • function
  • get
  • set
  • getter
  • setter
  • construct

hook types

  • after
  • before
  • errors

features

  • plugin system
  • async hooks (promises, callback)
  • extended hooks methods (target.after([hook]), target.before([hooks]))

plugins

  • hooki-events
  • hooki-validator
  • hooki-errors
  • hooki-lifecycle
  • hooki-modules
0.4.0

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.1

8 years ago