DoneJS StealJS jQuery++ FuncUnit DocumentJS
5.33.3
6.0.0 4.3.0 3.14.1 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-bind
      • can-compute
      • can-debug
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-backup
      • can-define-stream
      • can-define-stream-kefir
      • can-event-queue
      • can-kefir
      • can-list
      • can-map
      • can-map-compat
      • can-map-define
      • can-observable-array
      • can-observable-object
      • can-observation
      • can-observation-recorder
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
      • can-value
    • Views
      • can-attribute-observable
      • can-component
      • can-stache
      • can-stache-bindings
      • can-stache-converters
      • can-stache-element
      • can-stache-route-helpers
      • can-view-autorender
      • can-view-callbacks
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • steal-stache
    • Data Modeling
      • can-connect
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-tag
      • can-fixture
        • types
          • Store
          • ajaxSettings
          • request
          • requestHandler
          • response
        • properties
          • delay
          • on
          • rand
          • store
      • can-fixture-socket
      • can-local-store
      • can-memory-store
      • can-ndjson-stream
      • can-query-logic
      • can-realtime-rest-model
      • can-rest-model
      • can-set-legacy
      • can-super-model
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-hash
      • can-route-mock
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-diff
      • can-globals
      • can-join-uris
      • can-key
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-queues
      • can-string
      • can-string-to-any
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-child-nodes
      • can-control
      • can-dom-data
      • can-dom-events
      • can-dom-mutate
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-fragment
    • Data Validation
      • can-define-validate-validatejs
      • can-type
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-data-types
      • can-namespace
      • can-reflect
      • can-reflect-dependencies
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

store

  • Edit on GitHub

Creates a store.

fixture.store(baseItems, queryLogic)

Create a store that starts with baseItems for a service layer described by queryLogic.

import {DefineMap, QueryLogic, fixture, ajax} from "can";
import {Todo} from "https://unpkg.com/can-demo-models@5";

// Describe the services parameters:
const todoQueryLogic = new QueryLogic(Todo);

// Create a store with initial data.
// Pass an empty Array (ex: []) if you want it to be empty.
const todoStore = fixture.store( [
  {
    id: 1,
    name: "Do the dishes",
    complete: true
  }, {
    id: 2,
    name: "Walk the dog",
    complete: false
  }
], todoQueryLogic );

// Hookup urls to the store:
fixture( "/todos/{id}", todoStore );

ajax( {url: "/todos/1"} ).then( result => {
  console.log( result );
} );

Parameters

  1. baseItems {Array}:

    An array of items that will populate the store.

  2. QueryLogic {can-query-logic}:

    A description of the service layer's parameters.

Returns

{Store()}:

A store that can be used to simulate a restful service layer that supports filtering, pagination, and more.

fixture.store(count, makeItems, queryLogic)

Similar to fixture.store(baseItems, queryLogic), except that it uses makeItems to create count entries in the store.

import {DefineMap, QueryLogic, fixture, ajax} from "can";
import {Todo} from "https://unpkg.com/can-demo-models@5";
import "//unpkg.com/jquery@3.3.1/dist/jquery.js";

// Describe the services parameters:
const todoQueryLogic = new QueryLogic(Todo);

// Create a store with initial data.
const todoStore = fixture.store(
  1000,
  ( i ) => ( {
    id: i + 1,
    name: "Todo " + i,
    complete: fixture.rand( [ true, false ], 1 )[ 0 ]
  } ),
  todoQueryLogic
);

// Hookup urls to the store:
fixture( "/todos/{id}", todoStore );

ajax( {url: "/todos/3"} ).then( result => {
  console.log( result ); //-> "{'_id':3,'name':'Todo 2','complete':true||false}"
} );

Parameters

  1. count {Number}:

    The number of baseItems to create.

  2. makeItems {function}:

    A function that will generate baseItems

  3. queryLogic {can-query-logic}:

    A description of the service layer's parameters.

Returns

{Store()}:

A store that can be used to simulate a restful service layer that supports filtering, pagination, and more.

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 5.33.3.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news