This package has been deprecated

Author message:

The package has been renamed to lazy-get-decorator. There are no breaking changes.

typescript-lazy-get-decorator
TypeScript icon, indicating that this package has built-in type declarations

1.2.2 • Public • Published

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

Package Sidebar

Install

npm i typescript-lazy-get-decorator

Weekly Downloads

278

Version

1.2.2

License

MIT

Unpacked Size

25.6 kB

Total Files

13

Last publish

Collaborators

  • alorel