@magnet.me/consultant 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/config.js +4 -0
- package/out/config.js.map +1 -1
- package/out/service.js +3 -3
- package/out/service.js.map +1 -1
- package/package.json +1 -1
- package/out/promisify.js +0 -19
- package/out/promisify.js.map +0 -1
package/out/config.js
CHANGED
|
@@ -63,6 +63,10 @@ const configUpdater = (consulHost, prefix, service, callback) => {
|
|
|
63
63
|
if (callback) {
|
|
64
64
|
callback(properties);
|
|
65
65
|
}
|
|
66
|
+
} catch (e) {
|
|
67
|
+
timeout = 5000; // eslint-disable-next-line no-console
|
|
68
|
+
|
|
69
|
+
console.warn(`Error retrieving data from Consul: ${e}`);
|
|
66
70
|
} finally {
|
|
67
71
|
if (!shutdown) {
|
|
68
72
|
timeoutId = setTimeout(self.poll, timeout);
|
package/out/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.js"],"names":["configUpdater","consulHost","prefix","service","callback","consulIndex","timeoutId","shutdown","self","poll","timeout","prefixUri","uri","name","response","headers","props","userAgent","status","prefixText","console","warn","text","json","properties","parseBody","setTimeout","stop","clearTimeout","body","map","kvPair","key","Key","value","Value","filter","reduce","Object","assign","updateConfig","newConfig","callbacks","updates","keys","deletes","forEach","length","initializeConfiguration","Set","process","env","CONSUL_HOST","defaultHost","identifier","liveProperties","updater","newProperties","getProperties","register","add","deregister","delete"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,aAAa,GAAG,CAACC,UAAD,EAAaC,MAAb,EAAqBC,OAArB,EAA8BC,QAA9B,KAA2C;AAChE,MAAIC,WAAJ;AACA,MAAIC,SAAJ;AACA,MAAIC,QAAQ,GAAG,KAAf;AACA,QAAMC,IAAI,GAAG;AACZ,UAAMC,IAAN,GAAa;AACZ,UAAIC,OAAO,GAAG,GAAd;;AACA,UAAI;AACH,cAAMC,SAAS,GAAGT,MAAM,GAAI,GAAEA,MAAO,GAAb,GAAkB,EAA1C;AACA,YAAIU,GAAG,GAAI,GAAEX,UAAW,UAASU,SAAU,GAAER,OAAO,CAACU,IAAK,gBAA1D;;AACA,YAAIR,WAAJ,EAAiB;AAChBO,UAAAA,GAAG,IAAK,UAASP,WAAY,EAA7B;AACA;;AACD,cAAMS,QAAQ,GAAG,MAAM,wBAAMF,GAAN,EAAW;AACjCG,UAAAA,OAAO,EAAG;AACT,sBAAW,kBADF;AAET,4BAAiB,kBAFR;AAGT,0BAAeC,oBAAMC;AAHZ;AADuB,SAAX,CAAvB;AAQAZ,QAAAA,WAAW,GAAGS,QAAQ,CAACC,OAAT,CAAiB,gBAAjB,CAAd;;AACA,YAAID,QAAQ,CAACI,MAAT,KAAoB,GAAxB,EAA6B;AAC5BR,UAAAA,OAAO,GAAG,IAAV;AACA,gBAAMS,UAAU,GAAGjB,MAAM,GAAI,iBAAgBA,MAAO,GAA3B,GAAgC,EAAzD,CAF4B,CAG5B;;AACAkB,UAAAA,OAAO,CAACC,IAAR,CAAc,IAAGlB,OAAO,CAACU,IAAK,IAAGM,UAAW,4BAA5C;AACA;AACA;;AACD,YAAIL,QAAQ,CAACI,MAAT,KAAoB,GAAxB,EAA6B;AAC5BR,UAAAA,OAAO,GAAG,KAAV,CAD4B,CAE5B;;AACAU,UAAAA,OAAO,CAACC,IAAR,CAAc,sCAAqCP,QAAQ,CAACI,MAAO,KAAI,MAAMJ,QAAQ,CAACQ,IAAT,EAAgB,EAA7F;AACA;AACA;;AACD,cAAMC,IAAI,GAAG,MAAMT,QAAQ,CAACS,IAAT,EAAnB;AACA,cAAMC,UAAU,GAAGC,SAAS,CAACF,IAAD,EAAOrB,MAAP,EAAeC,OAAf,CAA5B;;AACA,YAAIC,QAAJ,EAAc;AACbA,UAAAA,QAAQ,CAACoB,UAAD,CAAR;AACA;AACD,OAjCD,
|
|
1
|
+
{"version":3,"sources":["../src/config.js"],"names":["configUpdater","consulHost","prefix","service","callback","consulIndex","timeoutId","shutdown","self","poll","timeout","prefixUri","uri","name","response","headers","props","userAgent","status","prefixText","console","warn","text","json","properties","parseBody","e","setTimeout","stop","clearTimeout","body","map","kvPair","key","Key","value","Value","filter","reduce","Object","assign","updateConfig","newConfig","callbacks","updates","keys","deletes","forEach","length","initializeConfiguration","Set","process","env","CONSUL_HOST","defaultHost","identifier","liveProperties","updater","newProperties","getProperties","register","add","deregister","delete"],"mappings":"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","sourcesContent":["import fetch from 'node-fetch';\nimport props from './properties';\nimport fetchIdentifier from './identifier';\nimport {parseKey, keyApplies} from './key-parser';\nimport atob from 'atob';\n\nconst configUpdater = (consulHost, prefix, service, callback) => {\n\tlet consulIndex;\n\tlet timeoutId;\n\tlet shutdown = false;\n\tconst self = {\n\t\tasync poll() {\n\t\t\tlet timeout = 500;\n\t\t\ttry {\n\t\t\t\tconst prefixUri = prefix ? `${prefix}/` : '';\n\t\t\t\tlet uri = `${consulHost}/v1/kv/${prefixUri}${service.name}/?recurse=true`;\n\t\t\t\tif (consulIndex) {\n\t\t\t\t\turi += `&index=${consulIndex}`;\n\t\t\t\t}\n\t\t\t\tconst response = await fetch(uri, {\n\t\t\t\t\theaders : {\n\t\t\t\t\t\t'accept' : 'application/json',\n\t\t\t\t\t\t'content-type' : 'application/json',\n\t\t\t\t\t\t'user-agent' : props.userAgent\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tconsulIndex = response.headers['x-consul-index'];\n\t\t\t\tif (response.status === 404) {\n\t\t\t\t\ttimeout = 5000;\n\t\t\t\t\tconst prefixText = prefix ? ` with prefix '${prefix}'` : '';\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(`'${service.name}'${prefixText} cannot be found in Consul`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\ttimeout = 60000;\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(`Error retrieving data from Consul: ${response.status}: ${await response.text()}`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst json = await response.json();\n\t\t\t\tconst properties = parseBody(json, prefix, service);\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(properties);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\ttimeout = 5000;\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`Error retrieving data from Consul: ${e}`);\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tif (!shutdown) {\n\t\t\t\t\ttimeoutId = setTimeout(self.poll, timeout);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tstop() {\n\t\t\tshutdown = true;\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn self;\n};\n\n/**\n * Parses the fetched config from Consul and converts it to a proper object.\n * @param body {Array} - The response body\n * @param prefix {string} - The prefix to extract from the key path\n * @param service {Object} - The service identifier to match key specifiers against\n * @return {Object} A properties object containing all valid properties as specified in the body\n */\nfunction parseBody(body, prefix, service) {\n\treturn body.map(kvPair => {\n\t\treturn {key : parseKey(kvPair.Key, prefix), value : kvPair.Value};\n\t})\n\t\t.filter(kvPair => kvPair.key.key && keyApplies(kvPair.key, service))\n\t\t.map(kvPair => {\n\t\t\treturn {[kvPair.key.key] : atob(kvPair.value)};\n\t\t})\n\t\t.reduce((properties, kvPair) => Object.assign(properties, kvPair), {});\n}\n\nconst updateConfig = (properties, newConfig, callbacks) => {\n\tconst updates = Object.keys(newConfig).filter(key => properties[key] !== newConfig[key]);\n\n\tObject.assign(properties, newConfig);\n\n\tconst deletes = Object.keys(properties).filter(key => !newConfig[key]);\n\tdeletes.forEach(key => delete properties[key]);\n\n\tif (updates.length > 0 || deletes.length > 0) {\n\t\tcallbacks.forEach(callback => callback(Object.assign({}, properties)));\n\t}\n};\n\nexport default async function initializeConfiguration({consulHost, service, prefix}) {\n\tconst callbacks = new Set();\n\n\tconsulHost = consulHost || process.env.CONSUL_HOST || props.defaultHost;\n\n\tconst identifier = await fetchIdentifier(service, consulHost);\n\n\tlet liveProperties = {};\n\n\tconst updater = configUpdater(consulHost, prefix, identifier, (newProperties) => {\n\t\tupdateConfig(liveProperties, newProperties, callbacks);\n\t});\n\n\tawait updater.poll();\n\n\treturn {\n\t\tgetProperties() {\n\t\t\treturn Object.assign({}, liveProperties);\n\t\t},\n\t\tregister(callback) {\n\t\t\tcallbacks.add(callback);\n\t\t},\n\t\tderegister(callback) {\n\t\t\tcallbacks.delete(callback);\n\t\t},\n\t\tstop() {\n\t\t\tupdater.stop();\n\t\t}\n\t};\n}\n"],"file":"config.js"}
|
package/out/service.js
CHANGED
|
@@ -16,8 +16,8 @@ var _identifier = _interopRequireDefault(require("./identifier"));
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
18
|
const deregister = async (host, instance) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const uri = `${host}/v1/agent/service/deregister/${instance.instance}`;
|
|
20
|
+
const opts = {
|
|
21
21
|
method: 'PUT',
|
|
22
22
|
headers: {
|
|
23
23
|
'user-agent': _properties.default.userAgent
|
|
@@ -25,7 +25,7 @@ const deregister = async (host, instance) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
try {
|
|
28
|
-
await (0, _nodeFetch.default)(
|
|
28
|
+
await (0, _nodeFetch.default)(uri, opts);
|
|
29
29
|
} catch (e) {
|
|
30
30
|
throw new _consultantError.default(`Could not deregister from Consul: ${e}`);
|
|
31
31
|
}
|
package/out/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/service.js"],"names":["deregister","host","instance","
|
|
1
|
+
{"version":3,"sources":["../src/service.js"],"names":["deregister","host","instance","uri","opts","method","headers","properties","userAgent","e","ConsultantError","register","service","healthCheckPath","healthCheckInterval","consulHost","process","env","CONSUL_HOST","defaultHost","portNumber","Number","port","name","identifier","body","Id","Name","Address","Port","Object","assign","Check","HTTP","Interval","url","JSON","stringify"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,UAAU,GAAG,OAAOC,IAAP,EAAaC,QAAb,KAA0B;AAC5C,QAAMC,GAAG,GAAI,GAAEF,IAAK,gCAA+BC,QAAQ,CAACA,QAAS,EAArE;AACA,QAAME,IAAI,GAAG;AACZC,IAAAA,MAAM,EAAG,KADG;AAEZC,IAAAA,OAAO,EAAG;AACT,oBAAeC,oBAAWC;AADjB;AAFE,GAAb;;AAOA,MAAI;AACH,UAAM,wBAAML,GAAN,EAAWC,IAAX,CAAN;AACA,GAFD,CAGA,OAAOK,CAAP,EAAU;AACT,UAAM,IAAIC,wBAAJ,CAAqB,qCAAoCD,CAAE,EAA3D,CAAN;AACA;AACD,CAfD;;AAiBe,eAAeE,QAAf,CAAwB;AAACC,EAAAA,OAAD;AAAUC,EAAAA,eAAV;AAA2BC,EAAAA,mBAAmB,GAAG,EAAjD;AAAqDC,EAAAA;AAArD,CAAxB,EAA0F;AACxGA,EAAAA,UAAU,GAAGA,UAAU,IAAIC,OAAO,CAACC,GAAR,CAAYC,WAA1B,IAAyCX,oBAAWY,WAAjE;AAEA,QAAMC,UAAU,GAAGC,MAAM,CAACT,OAAO,CAACU,IAAT,CAAzB;;AACA,MAAI,EAAEF,UAAU,GAAG,CAAb,IAAkBA,UAAU,GAAG,KAAjC,CAAJ,EAA6C;AAC5C,UAAM,IAAIV,wBAAJ,CAAqB,gBAAeE,OAAO,CAACU,IAAK,uBAAjD,CAAN;AACA;;AAED,MAAI,CAACV,OAAO,CAACW,IAAb,EAAmB;AAClB,UAAM,IAAIb,wBAAJ,CAAoB,8BAApB,CAAN;AACA;;AAED,QAAMc,UAAU,GAAG,MAAM,yBAAgBZ,OAAhB,EAAyBG,UAAzB,CAAzB;AAEA,QAAMU,IAAI,GAAG;AACZC,IAAAA,EAAE,EAAGF,UAAU,CAACtB,QADJ;AAEZyB,IAAAA,IAAI,EAAGH,UAAU,CAACD,IAFN;AAGZK,IAAAA,OAAO,EAAGJ,UAAU,CAACvB,IAHT;AAIZ4B,IAAAA,IAAI,EAAGjB,OAAO,CAACU;AAJH,GAAb;;AAOA,MAAIT,eAAe,IAAIC,mBAAmB,GAAG,CAA7C,EAAgD;AAC/CgB,IAAAA,MAAM,CAACC,MAAP,CAAcN,IAAd,EAAoB;AACnBO,MAAAA,KAAK,EAAG;AACPC,QAAAA,IAAI,EAAI,UAAST,UAAU,CAACvB,IAAK,IAAGW,OAAO,CAACU,IAAK,GAAET,eAAgB,EAD5D;AAEPqB,QAAAA,QAAQ,EAAGpB;AAFJ;AADW,KAApB;AAMA;;AAED,QAAMqB,GAAG,GAAI,GAAEpB,UAAW,4BAA1B;AACA,QAAMX,IAAI,GAAG;AACZC,IAAAA,MAAM,EAAG,KADG;AAEZC,IAAAA,OAAO,EAAG;AACT,gBAAW,kBADF;AAET,sBAAiB,kBAFR;AAGT,oBAAeC,oBAAWC;AAHjB,KAFE;AAOZiB,IAAAA,IAAI,EAAGW,IAAI,CAACC,SAAL,CAAeZ,IAAf;AAPK,GAAb;;AAUA,MAAI;AACH,UAAM,wBAAMU,GAAN,EAAW/B,IAAX,CAAN;AACA,GAFD,CAGA,OAAOK,CAAP,EAAU;AACT,UAAM,IAAIC,wBAAJ,CAAoB,wCAApB,EAA8DD,CAA9D,CAAN;AACA;;AAED,SAAO;AACNe,IAAAA,UADM;AAENxB,IAAAA,UAAU,EAAG,MAAMA,UAAU,CAACe,UAAD,EAAaS,UAAb;AAFvB,GAAP;AAIA","sourcesContent":["import fetch from 'node-fetch';\nimport ConsultantError from './consultant-error';\nimport properties from './properties';\nimport fetchIdentifier from './identifier';\n\nconst deregister = async (host, instance) => {\n\tconst uri = `${host}/v1/agent/service/deregister/${instance.instance}`;\n\tconst opts = {\n\t\tmethod : 'PUT',\n\t\theaders : {\n\t\t\t'user-agent' : properties.userAgent\n\t\t}\n\t};\n\n\ttry {\n\t\tawait fetch(uri, opts);\n\t}\n\tcatch (e) {\n\t\tthrow new ConsultantError(`Could not deregister from Consul: ${e}`);\n\t}\n};\n\nexport default async function register({service, healthCheckPath, healthCheckInterval = 10, consulHost}) {\n\tconsulHost = consulHost || process.env.CONSUL_HOST || properties.defaultHost;\n\n\tconst portNumber = Number(service.port);\n\tif (!(portNumber > 0 && portNumber < 65536)) {\n\t\tthrow new ConsultantError(`service.port=${service.port} is not a proper port`);\n\t}\n\n\tif (!service.name) {\n\t\tthrow new ConsultantError('service.name was not defined');\n\t}\n\n\tconst identifier = await fetchIdentifier(service, consulHost);\n\n\tconst body = {\n\t\tId : identifier.instance,\n\t\tName : identifier.name,\n\t\tAddress : identifier.host,\n\t\tPort : service.port,\n\t};\n\n\tif (healthCheckPath && healthCheckInterval > 0) {\n\t\tObject.assign(body, {\n\t\t\tCheck : {\n\t\t\t\tHTTP : `http://${identifier.host}:${service.port}${healthCheckPath}`,\n\t\t\t\tInterval : healthCheckInterval\n\t\t\t}\n\t\t});\n\t}\n\n\tconst url = `${consulHost}/v1/agent/service/register`;\n\tconst opts = {\n\t\tmethod : 'PUT',\n\t\theaders : {\n\t\t\t'accept' : 'application/json',\n\t\t\t'content-type' : 'application/json',\n\t\t\t'user-agent' : properties.userAgent\n\t\t},\n\t\tbody : JSON.stringify(body)\n\t};\n\n\ttry {\n\t\tawait fetch(url, opts);\n\t}\n\tcatch (e) {\n\t\tthrow new ConsultantError('Could not register service with Consul', e);\n\t}\n\n\treturn {\n\t\tidentifier,\n\t\tderegister : () => deregister(consulHost, identifier)\n\t};\n}\n"],"file":"service.js"}
|
package/package.json
CHANGED
package/out/promisify.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = promisify;
|
|
7
|
-
|
|
8
|
-
function promisify(func) {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
func((err, res) => {
|
|
11
|
-
if (err) {
|
|
12
|
-
reject(err);
|
|
13
|
-
} else {
|
|
14
|
-
resolve(res);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=promisify.js.map
|
package/out/promisify.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/promisify.js"],"names":["promisify","func","Promise","resolve","reject","err","res"],"mappings":";;;;;;;AAAe,SAASA,SAAT,CAAmBC,IAAnB,EAAyB;AACvC,SAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACvCH,IAAAA,IAAI,CAAC,CAACI,GAAD,EAAMC,GAAN,KAAc;AAClB,UAAID,GAAJ,EAAS;AACRD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACA,OAFD,MAEO;AACNF,QAAAA,OAAO,CAACG,GAAD,CAAP;AACA;AACD,KANG,CAAJ;AAOA,GARM,CAAP;AASA","sourcesContent":["export default function promisify(func) {\n\treturn new Promise((resolve, reject) => {\n\t\tfunc((err, res) => {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t});\n}\n"],"file":"promisify.js"}
|