framework
द्वारा contentstack
HTTP stack for marketplace-sdk — Axios wrapper, retries, concurrency, params serialization, logging hook
npx skills add https://github.com/contentstack/contentstack-marketplace-sdk --skill frameworkHTTP framework (lib/core)
This repo separates domain (lib/marketplace/**) from a small HTTP framework in lib/core/. Use this skill when changing transport behavior.
contentstackHTTPClient.js
- Builds an axios instance with
baseURLfromendpointorprotocol://hostname:port+basePath. - Defaults:
timeout30000,retryOnErrortrue,retryConditionretries 429 (overridable). - Headers: Maps
apiKey/accessTokenfrom config if present. - Params: Custom
paramsSerializerusing Qs; nests JSONquerywithencodeURIComponent. - Concurrency: Attaches
ConcurrencyQueueto the instance. - Logging:
logHandlerdefault frommessageHandler.js(httpLogHandler).
concurrency-queue.js
- Limits parallel in-flight requests (
maxRequestsfrom client params). Changes here affect all API modules sharing the same HTTP instance.
messageHandler.js
- Central place for HTTP log/telemetry hooks. Keep implementations safe for browsers and Node bundles.
When to edit
- Retry/backoff policy, timeout, or serializer → prefer extending existing options on
client()rather than one-off axios calls in marketplace modules. - New global header behavior →
contentstack.js+ potentiallycontentstackHTTPClient.jsfor low-level concerns.
Testing
test/unit/ContentstackHTTPClient-test.jsandconcurrency-Queue-test.jsshould cover behavioral changes; use mocks rather than live HTTP when possible.