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>
    • credentials?: since v0.7 String, available values:
      • omit — do not include credentials
      • same-origin — include credentials only if the request URL is the same origin
      • include — include credentials on all requests
  • 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:

      • (res) => mapped
      • { source: Store, fn: (data, res) => mapped }

      res object contains:

      • result: parsed and validated response data
      • params: params which were passed to the Query
      • headers: since v0.13 raw response headers

Showcases

Live demo

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

Released under the MIT License.