7.4.7 • Published 23 days ago

@smartlyio/oats-mirage-adapter v7.4.7

Weekly downloads
-
License
-
Repository
github
Last release
23 days ago

Oats Mirage Adapter

Typesafe Typescript OpenaApi3 support for Mirage.js mock http servers using Oats.

What is Oats?

Oats is a library that parses OpenAPI specifications and generates client and server definitions in TypeScript.

Installation

Use npm or yarn to install oats-mirage-adapter.

npm install oats-mirage-adapter

Usage

Oats Mirage Adapter exports a single bind function that can be used to bind the routes defined in an openapi spec to the mirage routes.

import * as runtime from "@smartlyio/oats-runtime";
import * as mirageAdapter from "@smartlyio/oats-mirage-adapter"
import * as api from "./server.generated"
import * as mirage from "miragejs";

// the implementation for the endpoints from example.yml
const spec: api.Endpoints = {
  '/example/{id}': {
    get: async (ctx) => {

      // @ts-expect-error
      void ctx.params.nonExisting // <- ctx is a typesafe object containing the request

      return runtime.json(200, { message: 'get '  + ctx.params.id + ' ' + ctx.query.foo });
    },
    post: async (ctx) => {
      return runtime.json(200, { message: 'post ' + ctx.params.id + ' ' + ctx.body.value.message});
    }
  }
}

export function fake() {
  return mirage.createServer({
    routes() {
      // non openapi route
      this.get("/non-openapi-route", () => ({ ok: true}));

      // bind example.yml endpoints under namespace "api"
      this.namespace = "api";
      mirageAdapter.bind({
        server: this,
        handler: runtime.server.createHandlerFactory<api.Endpoints>(
          api.endpointHandlers
        ),
        spec})
    }
  });
}

For a working example see test-app which contains a standard create-react-app using the generated mirage mock.

7.4.8-alpha.3

23 days ago

7.4.8-alpha.1

23 days ago

7.4.8-alpha.0

24 days ago

7.4.7

25 days ago

7.4.6

26 days ago

7.4.5

2 months ago

7.4.4

2 months ago

7.4.4-alpha.2

2 months ago

7.4.1-alpha.2

5 months ago

7.4.1

5 months ago

7.3.1-alpha.7

9 months ago

7.3.3-alpha.0

9 months ago

7.3.3-alpha.1

9 months ago

7.3.3-alpha.6

8 months ago

7.4.0

8 months ago

7.3.2

9 months ago

7.1.0

12 months ago

7.0.1-next.1

12 months ago

6.3.3-alpha.1

1 year ago

7.0.0

12 months ago

7.0.1-alpha.1

12 months ago

7.2.0

12 months ago

6.1.0

1 year ago

6.3.0

1 year ago

6.1.2

1 year ago

6.3.2

1 year ago

6.3.1

1 year ago

6.1.3

1 year ago

6.0.3

1 year ago

6.2.0

1 year ago

6.1.4-alpha.3

1 year ago

6.0.2

1 year ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.0-alpha.12

2 years ago

6.0.0-alpha.13

2 years ago

5.1.5

2 years ago

5.1.4

2 years ago

5.1.3

2 years ago

5.1.2

2 years ago

5.1.1

2 years ago

5.1.0

2 years ago

5.0.0

2 years ago

5.1.4-alpha.0

2 years ago

4.4.1-alpha.19

2 years ago

4.4.1-alpha.14

2 years ago

4.4.1-alpha.13

2 years ago

4.4.1-alpha.18

2 years ago

4.4.1-alpha.9

2 years ago

4.4.0

2 years ago

4.3.2

2 years ago

4.3.1

2 years ago

4.3.0

2 years ago

4.1.1-alpha.14

2 years ago

4.2.0

2 years ago

4.1.0

2 years ago

4.1.0-alpha.0

2 years ago

4.0.0-alpha.2

2 years ago

3.4.0

2 years ago

3.5.0

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

3.5.0-alpha.6

2 years ago

3.3.1-alpha.24

3 years ago

3.3.1

3 years ago

3.1.6-alpha.15

3 years ago

3.3.0

3 years ago

3.2.0

3 years ago

3.3.0-alpha.1

3 years ago

3.1.5

3 years ago

3.2.0-alpha.33

3 years ago

3.2.0-alpha.15

3 years ago

3.1.4-alpha.14

3 years ago

3.1.4

3 years ago

3.1.4-alpha.1

3 years ago

3.1.3

3 years ago

3.1.1

3 years ago

3.0.0

3 years ago

3.0.0-alpha.18

3 years ago

3.0.0-alpha.17

3 years ago

2.18.3-alpha.10

3 years ago

2.18.3-alpha.17

3 years ago

2.18.1

3 years ago

2.18.2

3 years ago

2.17.1-alpha.926

3 years ago

2.17.1-alpha.917

3 years ago

2.18.0

3 years ago

2.17.1-alpha.918

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago