Skip to content

Latest commit

 

History

History
103 lines (80 loc) · 3.04 KB

UPGRADE.md

File metadata and controls

103 lines (80 loc) · 3.04 KB

Upgrading to 4.0.0

Dropped bower support

Fakerest no longer supports bower. You can still use it in your project by installing it via npm:

npm install fakerest

Renamed Server to SinonAdapter

The Server class has been renamed to SinonAdapter and now expects a configuration object instead of a URL.

import sinon from 'sinon';
-import { Server } from 'fakerest';
+import { SinonAdapter } from 'fakerest';
import { data } from './data';

-const server = new Server('http://myapi.com');
-server.init(data);
+const server = new SinonAdapter({ baseUrl: 'http://myapi.com', data });
const server = sinon.fakeServer.create();
server.respondWith(server.getHandler());

Renamed FetchServer to FetchMockAdapter

The FetchServer class has been renamed to FetchMockAdapter and now expects a configuration object instead of a URL.

import fetchMock from 'fetch-mock';
-import { FetchServer } from 'fakerest';
+import { FetchMockAdapter } from 'fakerest';
import { data } from './data';

-const server = new FetchServer('http://myapi.com');
-server.init(data);
+const server = new FetchMockAdapter({ baseUrl: 'http://myapi.com', data });
fetchMock.mock('begin:http://myapi.com', server.getHandler());

Constructor Of Collection Takes An Object

import { Collection } from 'fakerest';

-const posts = new Collection([
-    { id: 1, title: 'baz' },
-    { id: 2, title: 'biz' },
-    { id: 3, title: 'boz' },
-]);
+const posts = new Collection({
+    items: [
+        { id: 1, title: 'baz' },
+        { id: 2, title: 'biz' },
+        { id: 3, title: 'boz' },
+    ],
+});

addCollection is now adapter.server.addCollection

import fetchMock from 'fetch-mock';
-import { FetchServer } from 'fakerest';
+import { FetchMockAdapter } from 'fakerest';
import { posts } from './posts';

-const server = new FetchServer('http://myapi.com');
-server.addCollection('posts', posts);
-fetchMock.mock('begin:http://myapi.com', server.getHandler());
+const adapter = new FetchMockAdapter({ baseUrl: 'http://myapi.com', data });
+adapter.server.addCollection('posts', posts);
+fetchMock.mock('begin:http://myapi.com', adapter.getHandler());

Request and Response Interceptors Have Been Replaced By Middlewares

Fakerest used to have request and response interceptors. We replaced those with middlewares. They allow much more use cases.

Migrate your request interceptors to middlewares passed when building the handler:

- const myRequestInterceptor = function(request) {
+ const myMiddleware = async function(context, next) {
    var start = (request.params._start - 1) || 0;
    var end = request.params._end !== undefined ? (request.params._end - 1) : 19;
    request.params.range = [start, end];
-   return request; // always return the modified input
+   return next(context);
};

-restServer.addRequestInterceptor(myRequestInterceptor);
+const handler = new getMswHandler({
+   baseUrl: 'http://my.custom.domain',
+   data,
+   middlewares: [myMiddleware],
});

Migrate your response interceptors the same way.