Skip to content

Commit

Permalink
Update build
Browse files Browse the repository at this point in the history
  • Loading branch information
fzaninotto committed Jun 7, 2024
1 parent 9c1e994 commit c5c42b0
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 92 deletions.
76 changes: 32 additions & 44 deletions UPGRADE.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,39 @@
# Upgrading to 4.0.0

## Renamed `Server` And `FetchServer`
## Dropped bower support

The `Server` class has been renamed to `SinonServer`.
Fakerest no longer supports bower. You can still use it in your project by installing it via npm:

```diff
-import { Server } from 'fakerest';
+import { SinonServer } from 'fakerest';

-const server = new Server('http://myapi.com');
+const server = new SinonServer({ baseUrl: 'http://myapi.com' });
```bash
npm install fakerest
```

The `FetchServer` class has been renamed to `FetchMockServer`.

```diff
-import { FetchServer } from 'fakerest';
+import { FetchMockServer } from 'fakerest';

-const server = new FetchServer('http://myapi.com');
+const server = new FetchMockServer({ baseUrl: 'http://myapi.com' });
```
## Renamed `Server` to `SinonAdapter`

## Constructors Of `SinonServer` and `FetchMockServer` Take An Object

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

```diff
import { SinonServer } from 'fakerest';
-import { Server } from 'fakerest';
+import { SinonAdapter } from 'fakerest';
import { data } from './data';

-const server = new SinonServer('http://myapi.com');
+const server = new SinonServer({ baseUrl: 'http://myapi.com' });
server.init(data);
-const server = new Server('http://myapi.com');
-server.init(data);
+const server = new SinonAdapter({ baseUrl: 'http://myapi.com', data });
```

For `FetchServer`:
## Renamed `FetchServer` to `FetchMockAdapter`

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

```diff
import { FetchMockServer } from 'fakerest';
-import { FetchServer } from 'fakerest';
+import { FetchMockAdapter } from 'fakerest';
import { data } from './data';

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

## Constructor Of `Collection` Takes An Object
Expand All @@ -67,26 +57,24 @@ server.init(data);

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

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

```diff
-restServer.addRequestInterceptor(function(request) {
+restServer.addMiddleware(async function(request, context, next) {
- 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(request, context);
- 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:

```diff
-restServer.addResponseInterceptor(function(response) {
+restServer.addMiddleware(async function(request, context, next) {
+ const response = await next(request, context);
response.body = { data: response.body, status: response.status };
return response;
});
```
Migrate your response interceptors the same way.
57 changes: 9 additions & 48 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,9 @@
import {
getSinonHandler,
Server,
SinonAdapter,
} from './adapters/SinonAdapter.js';
import {
getFetchMockHandler,
FetchServer,
FetchMockAdapter,
} from './adapters/FetchMockAdapter.js';
import { getMswHandler, MswAdapter } from './adapters/MswAdapter.js';
import { Database } from './Database.js';
import { SimpleRestServer } from './SimpleRestServer.js';
import { Collection } from './Collection.js';
import { Single } from './Single.js';
import { withDelay } from './withDelay.js';

export {
SimpleRestServer,
Database,
getSinonHandler,
getFetchMockHandler,
getMswHandler,
Server,
SinonAdapter,
FetchServer,
FetchMockAdapter,
MswAdapter,
Collection,
Single,
withDelay,
};

export default {
SimpleRestServer,
Database,
getSinonHandler,
getFetchMockHandler,
getMswHandler,
Server,
SinonAdapter,
FetchServer,
FetchMockAdapter,
MswAdapter,
Collection,
Single,
withDelay,
};
export * from './types.js';
export * from './adapters/SinonAdapter.js';
export * from './adapters/FetchMockAdapter.js';
export * from './adapters/MswAdapter.js';
export * from './Database.js';
export * from './SimpleRestServer.js';
export * from './Collection.js';
export * from './Single.js';
export * from './withDelay.js';
1 change: 1 addition & 0 deletions vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export default defineConfig({
// the proper extensions will be added
fileName: 'fakerest',
},
minify: false,
sourcemap: true,
rollupOptions: {
// make sure to externalize deps that shouldn't be bundled
Expand Down

0 comments on commit c5c42b0

Please sign in to comment.