1.2.2 • Published 6 years ago

typescript-lazy-get-decorator v1.2.2

Weekly downloads
1,169
License
MIT
Repository
github
Last release
6 years ago

Typescript Lazy Getter

Build Status Coverage Status Dependency status Dev dependency status Greenkeeper badge

NPM

API

/**
 * Evaluate the getter function and cache the result
 * @param {boolean} [setProto=false] Set the value on the class prototype as well. Only applies to non-static getters.
 * @param {boolean} [makeNonConfigurable=false] Set to true to make the resolved property non-configurable
 * @return {(target: any, key: string, descriptor: PropertyDescriptor) => void} A Typescript decorator function
 */
function LazyGetter(setProto: boolean = false, makeNonConfigurable = false) {}

Usage

import {LazyGetter} from 'typescript-lazy-get-decorator';

class AClass {

    @LazyGetter()
    get lazyNoProto():string {
        console.log('Evaluating lazyNoProto');
        return 'lazyNoProtoValue';
    }

    @LazyGetter(true)
    get lazyWithProto():string {
        console.log('Evaluating lazyWithProto');
        return 'lazyWithProtoValue';
    }
}

const inst1 = new AClass();

console.log('==== inst 1 ====\n');

console.log(inst1.lazyNoProto);
console.log(inst1.lazyNoProto);
console.log(inst1.lazyWithProto);
console.log(inst1.lazyWithProto);

const inst2 = new AClass();

console.log('\n\n==== inst 2 ====\n');

console.log(inst2.lazyNoProto);
console.log(inst2.lazyNoProto);
console.log(inst2.lazyWithProto);
console.log(inst2.lazyWithProto);

Outputs:

==== inst 1 ====

Evaluating lazyNoProto
lazyNoProtoValue
lazyNoProtoValue
Evaluating lazyWithProto
lazyWithProtoValue
lazyWithProtoValue


==== inst 2 ====

Evaluating lazyNoProto
lazyNoProtoValue
lazyNoProtoValue
lazyWithProtoValue
lazyWithProtoValue