Skip to main content

Panoptes

A simple array and object watcher function for Deno.

DenoLib Build Status

Table of Contents

Usage

import { watch } from 'https://deno.land/x/panoptes/mod.ts';

A simple example of how to use Panoptes’s watch().

import { watch } from 'https://deno.land/x/panoptes/mod.ts';

// Example interface for the base object.
interface BaseObjectStruct {
  a: String;
  b: {
    c: Array<String>;
  };
  e: Number;
}

// The base object that will be watched.
const baseObject: BaseObjectStruct = {
  a: 'a',
  b: {
    c: ['d'],
  },
  e: 1,
};

// The new reference object that is being watched.
const watchedObject: any = watch(
  baseObject,
  () => {
    console.log('Something happened!');
  },
  {
    callbackOnGet: false,
  },
);

// The watch callback should fire for each execution below.
watchedObject.a = 'b';
watchedObject.b.c.push('e'); // Array methods will fire the callback multiple times.
delete watchedObject.e;

//> Something happened!
//> Something happened!
//> Something happened!
//> Something happened!

API

watch()

watch(object: Object, callback: Function, options?: OptionsStruct);

object: Object

The base object in which you would like watched.

callback: Function<void>

The callback that will be fired on change. Function should not return.

options?: Object

The options object passed into the watch() function. This is optional and implements the interface OptionsStruct.

interface OptionsStruct {
  callbackOnGet: Boolean;
}
callbackOnGet

Setting this to true will enable the watcher to fire the callback function on get operations. Not setting it will disable this feature.