Skip to content
On this page

createJsonQuery

Formulae

createJsonQuery(config)

Config fields:

  • params?: parameters for the Query

    • You can declare Query parameters by call declareParams function.
    • If not passed, Query will be created without parameters.
  • initialData?: initial data of the Query, will be passed to the $data store as an initial value

  • request: declarative rules to formulate request to the API.

    • method: String
    • url: Sourced string
    • body: Sourced Json, any value which can be serialized to JSON and parsed back without loses by JavaScript native module JSON. For example, { a: 1, b: 2 }. Note that body cannot be used in GET and HEAD requests.
    • query?: Sourced object, keys of the object must be String and values must be String or Array<String> or (since v0.8) Sourced String containing ready-to-use query string
    • headers?: Sourced object, keys of the object must be String and values must be String or Array<String>
  • response: declarative rules to handle response from the API.

    • contract: Contract allows you to validate the response and decide how your application should treat it — as a success response or as a failed one.
    • validate?: Validator allows you to dynamically validate received data.
    • mapData?: optional mapper for the response data, available overloads:
      • ({ result, params }) => mapped
      • { source: Store, fn: (data, { result, params }) => mapped }
  • concurrency?: concurrency settings for the Query

    • strategy?: available values:
      • TAKE_EVERY execute every request
      • TAKE_FIRST skip all requests if there is a pending one
      • TAKE_LATEST (default value) cancel all pending requests and execute the latest one
    • abort?: Event after calling which all in-flight requests will be aborted

Showcases

Live demo

You can play around with the factory in the live demo below 👇

Released under the MIT License.