object-accessors

0.0.1 • Public • Published

Object-Accessor

Initially this module was developed for designing SDKs in a similar way you would in OOP based languages and therefore make the SDK more maintainable. Using this module you get:

  • ✅ truly private variables
  • ✅ getters
  • ✅ setters

to restrict the accessibility and to make sdk's across multiple languages more maintainble by designing them in a similar way.

Setup

npm install object-acessibility -s

Usage

function Client() {
 
  // Add a state
  const state = (state => {
    // q can't be modified
    state.q = 2;
    // "priate" ths is really private
    state.private = 100;
 
    // we could add something calculated here like
    // state.calced = this.state.private / 100;
    return state;
  })({});
 
  // Add Getters
  const getters = state => ({
    q: () => state.q,
    value: () => state.value,
    calculatedValue: () => (state.value / state.q * state.private)
  });
 
  // Add Setters
  const setters = state => ({
    value: (val) => {state.value = val}
  })
 
  // Use the accessibility lib
  return accessability({ getters, setters, state });
}
 
const testClient = Client();
 
console.log(testClient.value);
// undefined
 
// Set a value
testClient.value = 500;
 
console.log(testClient.value);
// 500
 
// We can't set values without a setter
testClient.q = 200
console.log(testClient.q);
// 2
 
// We can't access values without a getter
console.log(testClient.private)
// undefined
 

Package Sidebar

Install

npm i object-accessors

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

3.46 kB

Total Files

3

Last publish

Collaborators

  • robinfeh