DoneJS StealJS jQuery++ FuncUnit DocumentJS
6.6.1
5.33.3 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-deep-observable
      • 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-observable-bindings
      • 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-parser
      • can-view-scope
      • can-view-target
      • steal-stache
    • Data Modeling
      • can-connect
      • can-connect-ndjson
      • can-connect-tag
      • can-define-realtime-rest-model
      • can-define-rest-model
      • can-fixture
      • can-fixture-socket
        • types
          • SocketEventListener
        • properties
          • Server
          • requestHandlerToListener
          • storeToListeners
      • 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
    • 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-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

storeToListeners

  • Edit on GitHub

Returns a set of listeners transformed from fixture store request handlers. Useful for working with REST-ful resources.

storeToListeners( fixtureStore )

Wraps methods of fixture.store to make them socket event listener.

var listeners = storeToListeners( fixtureStore );

server.on({
  "news find": listeners.getListData,
  "news get": listeners.getData,
})

Parameters

  1. fixtureStore:

Use

Fixture store provides REST-ful resource storage. Its designed to work with XHR requests thus its methods expect two arguments request and response. To work with socket events we need to transform request handlers into socket event listeners.

Here is how we can do this:

var fixture = require("can-fixture");
var canSet = require("can-set");
var io = require("socket.io-client");
var fixtureSocket = require("can-fixture-socket");

// Create fixture store:
var fixtureStore = fixture.store([
  {id: 1, title: 'One'},
  {id: 2, title: 'Two'},
  {id: 3, title: 'Three'}
], new canSet.Algebra({}));

// Instantiate mocked socket server:
var mockedServer = new fixtureSocket.Server(io);

// Now use fixture store to emulate REST-ful service:
var toListener = fixtureStore.requestHandlerToListener;
mockedServer.on({
  "books find":   toListener( fixtureStore.getListData ),
  "books get":    toListener( fixtureStore.getData ),
  "books create": toListener( fixtureStore.createData ),
  "books update": toListener( fixtureStore.updateData ),
  "books delete": toListener( fixtureStore.destroyData )
});

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

On this page

Get help

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