0.0.1 • Published 5 years ago

object-accessors v0.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

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