1.2.2 • Published 10 years ago

kobservable v1.2.2

Weekly downloads
8
License
ISC
Repository
github
Last release
10 years ago

K-Observable

Build Status

This is a basic observable implementation to hold data and get notified whenever it changes. Inspired by the well-known KnockoutJS observable objects, but without any other magic (like bindings or dependency tracking). Just observables and subscriptions.

Observable

The most basic unit: you can store and retrieve data from them.

import observable from 'kobservable';

const name = observable('');
name.subscribe(newName => console.log(`The new name is '${newName)}'`);
name('foo');// sets the name
//The new name is foo
name();// gets the name

Computed

Given a number of observables, you can perform some aggregation conversion and get it like another read-only observable.

import observable, {computed} from 'kobservable';

const user = observable('me');
const password = observable('me too');
const canSubmit = computed([user, password], ([user, password]) => Boolean(user && password));

const mySubmitButton = document.querySelector('#submit');
canSubmit.subscribe(can => mySubmitButton.disabled = !can);

user('');// disables the button
password('');// the button remains disabled
user('me');// the button remains disabled
password('me again');// enables the button

Powered by TypeScript

If your IDE has TypeScript running (with a plugin, see more at https://www.typescriptlang.org/), you can:

  • Code in JavaScript and see how your IDE autocompletes all the K-Observable usages, with type inferences and so on. You can see an example under the test folder.
  • Code in TypeScript and... you know, TypeScript!

Compile

npm install && npm run build

Test

npm test

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.5

10 years ago

1.1.4

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago