mirror of https://github.com/Squidex/squidex.git
6 changed files with 2 additions and 90 deletions
@ -1,42 +0,0 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. |
|||
*/ |
|||
|
|||
import { Lazy } from './lazy'; |
|||
|
|||
describe('Lazy', () => { |
|||
it('should provider value', () => { |
|||
const lazy = new Lazy(() => 1); |
|||
|
|||
expect(lazy.value).toBe(1); |
|||
}); |
|||
|
|||
it('should call delegate once', () => { |
|||
let called = 0; |
|||
|
|||
const lazy = new Lazy(() => { |
|||
called++; |
|||
return 13; |
|||
}); |
|||
|
|||
expect(lazy.value).toBe(13); |
|||
expect(lazy.value).toBe(13); |
|||
expect(called).toBe(1); |
|||
}); |
|||
|
|||
it('should call delegate once when returned undefined', () => { |
|||
let called = 0; |
|||
|
|||
const lazy = new Lazy(() => { |
|||
called++; |
|||
return undefined; |
|||
}); |
|||
|
|||
expect(lazy.value).toBeUndefined(); |
|||
expect(lazy.value).toBeUndefined(); |
|||
expect(called).toBe(1); |
|||
}); |
|||
}); |
|||
@ -1,24 +0,0 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. |
|||
*/ |
|||
|
|||
export class Lazy<T> { |
|||
private valueSet = false; |
|||
private valueField: T; |
|||
|
|||
public get value(): T { |
|||
if (!this.valueSet) { |
|||
this.valueField = this.factory(); |
|||
this.valueSet = true; |
|||
} |
|||
|
|||
return this.valueField; |
|||
} |
|||
constructor( |
|||
private readonly factory: () => T |
|||
) { |
|||
} |
|||
} |
|||
Loading…
Reference in new issue