@sap-devx/feature-toggle-node
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -0,1 +1,13 @@ | ||
<a name="1.0.4"></a> | ||
# 1.0.4 (2020-07-1) | ||
### Features | ||
- Added support for "environments" and "landscapes" strategies | ||
### BREAKING CHANGES | ||
- None | ||
<a name="1.0.3"></a> | ||
@@ -2,0 +14,0 @@ |
@@ -7,11 +7,9 @@ "use strict"; | ||
const await_to_js_1 = require("await-to-js"); | ||
async function getUnleashClientReadyPromise(extensionName, client, serverArgs) { | ||
async function getUnleashClientRegisteredPromise(client) { | ||
return new Promise((resolve, reject) => { | ||
client.on("warn", logger_1.log); | ||
client.once("error", (err) => { | ||
logger_1.log(`[ERROR] FT is initialization failed for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
client.on("error", (err) => { | ||
reject(err); | ||
}); | ||
client.once("registered", () => { | ||
logger_1.log(`FT is initialized to server for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
resolve(); | ||
@@ -21,2 +19,13 @@ }); | ||
} | ||
async function getUnleashClientReadyPromise(client) { | ||
return new Promise((resolve, reject) => { | ||
client.on("warn", logger_1.log); | ||
client.on("error", (err) => { | ||
reject(err); | ||
}); | ||
client.once("ready", () => { | ||
resolve(); | ||
}); | ||
}); | ||
} | ||
async function initializeUnleashClient(extensionName, serverArgs, customStrategies) { | ||
@@ -30,7 +39,11 @@ //create a new unleash client | ||
}); | ||
const unleashClientReadyPromise = getUnleashClientReadyPromise(extensionName, unleashClient, serverArgs); | ||
const [err] = await await_to_js_1.default(unleashClientReadyPromise); | ||
const readyPromise = getUnleashClientReadyPromise(unleashClient); | ||
const registeredPromise = getUnleashClientRegisteredPromise(unleashClient); | ||
const allPromise = Promise.all([readyPromise, registeredPromise]); | ||
const [err] = await await_to_js_1.default(allPromise); | ||
if (err) { | ||
logger_1.log(`[ERROR] FT is initialization failed for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
throw new Error(`Failed to create Unleash client for extension ${extensionName}. Error message: ${err}`); | ||
} | ||
logger_1.log(`FT is initialized to server for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
return unleashClient; | ||
@@ -37,0 +50,0 @@ } |
{ | ||
"name": "@sap-devx/feature-toggle-node", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "lib/api.js", |
@@ -6,11 +6,9 @@ import { initialize, Unleash, Strategy } from "unleash-client"; | ||
async function getUnleashClientReadyPromise(extensionName: string, client: Unleash, serverArgs: ServerArgs): Promise<void> { | ||
async function getUnleashClientRegisteredPromise(client: Unleash): Promise<void> { | ||
return new Promise((resolve, reject) => { | ||
client.on("warn", log); | ||
client.once("error", (err: Error) => { | ||
log(`[ERROR] FT is initialization failed for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
client.on("error", (err: Error) => { | ||
reject(err); | ||
}); | ||
client.once("registered", () => { | ||
log(`FT is initialized to server for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
resolve(); | ||
@@ -21,2 +19,14 @@ }); | ||
async function getUnleashClientReadyPromise(client: Unleash): Promise<void> { | ||
return new Promise((resolve, reject) => { | ||
client.on("warn", log); | ||
client.on("error", (err: Error) => { | ||
reject(err); | ||
}); | ||
client.once("ready", () => { | ||
resolve(); | ||
}); | ||
}); | ||
} | ||
export async function initializeUnleashClient(extensionName: string, serverArgs: ServerArgs, customStrategies: Strategy[]): Promise<Unleash> { | ||
@@ -32,8 +42,12 @@ //create a new unleash client | ||
const unleashClientReadyPromise = getUnleashClientReadyPromise(extensionName, unleashClient, serverArgs); | ||
const [err] = await to(unleashClientReadyPromise); | ||
const readyPromise = getUnleashClientReadyPromise(unleashClient); | ||
const registeredPromise = getUnleashClientRegisteredPromise(unleashClient); | ||
const allPromise = Promise.all([readyPromise, registeredPromise]); | ||
const [err] = await to(allPromise); | ||
if (err) { | ||
log(`[ERROR] FT is initialization failed for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
throw new Error(`Failed to create Unleash client for extension ${extensionName}. Error message: ${err}`); | ||
} | ||
log(`FT is initialized to server for extension ${extensionName}. EndPoint: ${serverArgs.ftServerEndPoint}`); | ||
return unleashClient; | ||
} |
Sorry, the diff of this file is not supported yet
58050
680