function DataStore(opts) {
  utils.classCallCheck(this, DataStore);
  opts || (opts = {}); // Fill in any missing options with the defaults

  utils.fillIn(opts, DATASTORE_DEFAULTS);
  opts.collectionClass || (opts.collectionClass = LinkedCollection$1);
  SimpleStore$1.call(this, opts);
}
The `DataStore` class is an extension of {@link SimpleStore}. Not only does
`DataStore` manage mappers and store data in collections, it uses the
{@link LinkedCollection} class to link related records together in memory.

```javascript
import { DataStore } from 'js-data';
```

@example
import { DataStore } from 'js-data';
import HttpAdapter from 'js-data-http';
const store = new DataStore();

// DataStore#defineMapper returns a direct reference to the newly created
// Mapper.
const UserMapper = store.defineMapper('user');

// DataStore#as returns the store scoped to a particular Mapper.
const UserStore = store.as('user');

// Call "find" on "UserMapper" (Stateless ORM)
UserMapper.find(1).then((user) => {
  // retrieved a "user" record via the http adapter, but that's it

  // Call "find" on "store" targeting "user" (Stateful DataStore)
  return store.find('user', 1); // same as "UserStore.find(1)"
}).then((user) => {
  // not only was a "user" record retrieved, but it was added to the
  // store's "user" collection
  const cachedUser = store.getCollection('user').get(1);
  console.log(user === cachedUser); // true
});

@class DataStore
@extends SimpleStore
@param {object} [opts] Configuration options. See {@link SimpleStore}.
@param {boolean} [opts.collectionClass={@link LinkedCollection}] See {@link DataStore#collectionClass}.
@param {boolean} [opts.debug=false] See {@link Component#debug}.
@param {boolean} [opts.unlinkOnDestroy=true] See {@link DataStore#unlinkOnDestroy}.
@param {boolean|Function} [opts.usePendingFind=true] See {@link DataStore#usePendingFind}.
@param {boolean|Function} [opts.usePendingFindAll=true] See {@link DataStore#usePendingFindAll}.
@returns {DataStore}
@see SimpleStore
@since 3.0.0
@tutorial ["http://www.js-data.io/v3.0/docs/components-of-jsdata#datastore","Components of JSData: DataStore"]
@tutorial ["http://www.js-data.io/v3.0/docs/working-with-the-datastore","Working with the DataStore"]
@tutorial ["http://www.js-data.io/v3.0/docs/jsdata-and-the-browser","Notes on using JSData in the Browser"]