/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ export function once(this: any, fn: T): T { const _this = this; let didCall = false; let result: any; return function () { if (didCall) { return result; } didCall = true; result = fn.apply(_this, arguments); return result; } as any as T; }