1.0.1 • Published 1 month ago

nebula-http-resiliency v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

About

nebula-http-resiliency is an Open-Source library that allows you to make your axios requests more resilient. We provide an implementation for 3 common resiliency algorithms: timeout, retry, and circuit-breaker.

Install Package

$ npm install nebula-http-resiliency

Usage

The way of using each strategy is pretty much the same.

The first step is always to choose a specific strategy. In this case let's go with timeout.

const timeoutPolicyExecutor =
  PolicyExecutorFactory.createTimeoutHttpExecutor({
    timeoutInSeconds: 0.2,
  });

!NOTE For each strategy we must provide a configuration object to specify the constraints of the strategy. More on that on each strategies documentation.

The second step is to execute the http request. We do so by calling the ExecutePolicyAsync method.

const httpResult =
  await timeoutPolicyExecutor.ExecutePolicyAsync<ComplexObject>(
    axios.get("http://nicedocs.com/api/comments")
  );

The ExecutePolicyAsync is generic and must be passed on a type, which refers to the expected result from the API endpoint, as well as the axios operation.

!NOTE There is no need to use await with the axios operation, as seen in the example above.

For more information on how to properly operate each strategy, please click on the following links: timeout, retry and circuit-breaker.

For more information on the result type of the ExecutePolicyAsync method, please refer to this documentation.

Contributing

This project welcomes and appreciates any contributions made.

There are several ways you can contribute, namely:

  • Report any bug found.
  • Suggest some features or improvements.
  • Creating pull requests.

License

nebula-http-resiliency is a free and open-source software licensed under the MIT License.

See LICENSE for more details.

ansi-escapesansi-regexansi-stylesanymatchargparsebabel-jestbabel-plugin-istanbulbabel-plugin-jest-hoistbabel-preset-current-node-syntaxbabel-preset-jestbalanced-matchbrace-expansionbracesbrowserslistbserbuffer-fromcallsitescamelcasecaniuse-litechalkchar-regexci-infocjs-module-lexercliuicocollect-v8-coveragecolor-convertcolor-nameconcat-mapconvert-source-mapcreate-jestcross-spawndebugdedentdeepmergedetect-newlinediff-sequenceselectron-to-chromiumemitteryemoji-regexerror-exescaladeescape-string-regexpesprimaexecaexitexpectfast-json-stable-stringifyfb-watchmanfill-rangefind-upfs.realpathfunction-bindgensyncget-caller-fileget-package-typeget-streamglobglobalsgraceful-fshas-flaghasownhtml-escaperhuman-signalsimport-localimurmurhashinflightinheritsis-arrayishis-core-moduleis-fullwidth-code-pointis-generator-fnis-numberis-streamisexeistanbul-lib-coverageistanbul-lib-instrumentistanbul-lib-reportistanbul-lib-source-mapsistanbul-reportsjest-changed-filesjest-circusjest-clijest-configjest-diffjest-docblockjest-eachjest-environment-nodejest-get-typejest-haste-mapjest-leak-detectorjest-matcher-utilsjest-message-utiljest-mockjest-pnp-resolverjest-regex-utiljest-resolvejest-resolve-dependenciesjest-runnerjest-runtimejest-snapshotjest-utiljest-validatejest-watcherjest-workerjs-tokensjs-yamljsescjson-parse-even-better-errorsjson5kleurlevenlines-and-columnslocate-pathlru-cachemake-dirmakeerrormerge-streammicromatchmimic-fnminimatchmsnatural-comparenode-int64node-releasesnormalize-pathnpm-run-pathonceonetimep-limitp-locatep-tryparse-jsonpath-existspath-is-absolutepath-keypath-parsepicocolorspicomatchpiratespkg-dirpretty-formatpromptspure-randreact-isrequire-directoryresolveresolve-cwdresolve-fromresolve.exportssemvershebang-commandshebang-regexsignal-exitsisteransislashsource-mapsource-map-supportsprintf-jsstack-utilsstring-lengthstring-widthstrip-ansistrip-bomstrip-final-newlinestrip-json-commentssupports-colorsupports-preserve-symlinks-flagtest-excludetmplto-fast-propertiesto-regex-rangetype-detecttype-festundici-typesupdate-browserslist-dbv8-to-istanbulwalkerwhichwrap-ansiwrappywrite-file-atomicy18nyallistyargsyargs-parseryocto-queue
1.0.1

1 month ago

1.0.0

1 month ago