async function checkInitialization()

in source/lambda/filter-kinesis-stream/index.ts [111:144]


async function checkInitialization(): Promise<void> {
    try {
        if (!REAL_TIME_DATA_EXPIRATION_IN_HOURS || REAL_TIME_DATA_EXPIRATION_IN_HOURS.trim() === '') {
            throw new Error('REAL_TIME_DATA_EXPIRATION_IN_HOURS environment variable was not set');
        }

        realTimeDataExpirationInHours = parseInt(REAL_TIME_DATA_EXPIRATION_IN_HOURS.trim(), 10);

        if (!Number.isInteger(realTimeDataExpirationInHours) || realTimeDataExpirationInHours < 24) {
            throw new Error('REAL_TIME_DATA_EXPIRATION_IN_HOURS environment variable must an integer equal to or higher than 24');
        }

        if (REAL_TIME_DATA_EXPIRATION_IN_HOURS.trim() !== `${realTimeDataExpirationInHours}`) {
            throw new Error(`REAL_TIME_DATA_EXPIRATION_IN_HOURS was not parsed as expected. An integer value is expected. Value (${REAL_TIME_DATA_EXPIRATION_IN_HOURS}) was parsed into integer: ${realTimeDataExpirationInHours}`);
        }
    } catch (err) {
        // Log the actual error
        console.error(err);
        throw new Error(`Invalid value for environment variable (REAL_TIME_DATA_EXPIRATION_IN_HOURS): ${REAL_TIME_DATA_EXPIRATION_IN_HOURS}`);
    }

    if (!appSyncClient) {
        await initializeAppSyncClient();
    }

    if (!MACHINE_DATA_PARSER) {
        await loadConfiguration();
    }

    if (!UI_REFERENCE_DATA) {
        UI_REFERENCE_DATA = {};
        await loadUIReferenceData();
    }
}