diff --git a/packages/cli/examples/__generated__/convertion.yaml.ts b/packages/cli/examples/__generated__/conversion.yaml.ts similarity index 55% rename from packages/cli/examples/__generated__/convertion.yaml.ts rename to packages/cli/examples/__generated__/conversion.yaml.ts index 5c92b29..80245e4 100644 --- a/packages/cli/examples/__generated__/convertion.yaml.ts +++ b/packages/cli/examples/__generated__/conversion.yaml.ts @@ -1,37 +1,37 @@ -import { OapiContext, OapiConfig, Empty, HttpListener, openApi, ResponseOapi } from '@laminarjs/laminar'; +import { OapiContext, OapiConfig, Empty, HttpListener, openApi, ResponseOapi } from "@laminarjs/laminar"; export const openApiTyped = (config: Config): Promise> => openApi(config); export interface User { - email: string; - title?: string; - createdAt?: Date; - [key: string]: unknown; + email: string; + title?: string; + createdAt?: Date; + [key: string]: unknown; } export interface NewUser { - result: string; - user: User; - [key: string]: unknown; + result: string; + user: User; + [key: string]: unknown; } -export type ResponseUserPost = ResponseOapi; +export type ResponseUserPost = ResponseOapi; export interface RequestUserPost extends OapiContext { - body: User; + body: User; } export type PathUserPost = (req: RequestUserPost & R) => Promise; -export type ResponseUserGet = ResponseOapi; +export type ResponseUserGet = ResponseOapi; export type PathUserGet = (req: OapiContext & R) => Promise; export interface Config extends OapiConfig { - paths: { - '/user': { - post: PathUserPost; - get: PathUserGet; + paths: { + "/user": { + post: PathUserPost; + get: PathUserGet; + }; }; - }; } diff --git a/packages/cli/examples/convertion.ts b/packages/cli/examples/conversion.ts similarity index 86% rename from packages/cli/examples/convertion.ts rename to packages/cli/examples/conversion.ts index 18ac1c5..378c8ce 100644 --- a/packages/cli/examples/convertion.ts +++ b/packages/cli/examples/conversion.ts @@ -1,8 +1,8 @@ import { HttpService, init, jsonOk } from '@laminarjs/laminar'; -import { openApiTyped } from './__generated__/convertion.yaml'; +import { openApiTyped } from './__generated__/conversion.yaml'; import { join } from 'path'; -const api = join(__dirname, 'convertion.yaml'); +const api = join(__dirname, 'conversion.yaml'); const main = async () => { const listener = await openApiTyped({ diff --git a/packages/cli/examples/convertion.yaml b/packages/cli/examples/conversion.yaml similarity index 100% rename from packages/cli/examples/convertion.yaml rename to packages/cli/examples/conversion.yaml diff --git a/packages/cli/package.json b/packages/cli/package.json index 5d3942d..5160bb6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,9 +40,9 @@ "build:test:pullrequest": "yarn laminar json-schema --file test/json-schema/pullrequest.yaml --output test/json-schema/__generated__/pullrequest.ts", "build:examples:api": "yarn laminar api --file examples/api.yaml --output examples/__generated__/api.yaml.ts", "build:examples:axios": "yarn laminar axios --file examples/axios.yaml --output examples/__generated__/axios.yaml.ts", - "build:examples:convertion": "yarn laminar api --file examples/convertion.yaml --output examples/__generated__/convertion.yaml.ts", + "build:examples:conversion": "yarn laminar api --file examples/conversion.yaml --output examples/__generated__/conversion.yaml.ts", "build:examples:petstore": "yarn laminar axios --file examples/petstore.json --output examples/__generated__/petstore.json.ts", - "build:examples": "yarn build:examples:api && yarn build:examples:axios && yarn build:examples:petstore && yarn build:examples:convertion", + "build:examples": "yarn build:examples:api && yarn build:examples:axios && yarn build:examples:petstore && yarn build:examples:conversion", "build:test": "yarn build:test:petstore && yarn build:test:split && yarn build:test:statements && yarn build:test:loss && yarn build:test:axios && yarn build:test:axios-api && yarn build:test:pullrequest", "pretest": "yarn build:examples && yarn build:test", "build": "tsc --declaration", diff --git a/packages/cli/test/examples.spec.ts b/packages/cli/test/examples.spec.ts index 0fe430f..ca8360a 100644 --- a/packages/cli/test/examples.spec.ts +++ b/packages/cli/test/examples.spec.ts @@ -41,7 +41,7 @@ describe('Example files', () => { { text: 'ok', user: { email: 'me@example.com' } }, ], [ - 'examples/convertion.ts', + 'examples/conversion.ts', { method: 'GET', url: '/user', diff --git a/packages/cli/test/json-schema/pullrequest.spec.ts b/packages/cli/test/json-schema/pullrequest.spec.ts index f572d05..e207c1f 100644 --- a/packages/cli/test/json-schema/pullrequest.spec.ts +++ b/packages/cli/test/json-schema/pullrequest.spec.ts @@ -3,7 +3,7 @@ import { ensureValid } from '@laminarjs/json-schema'; import { join } from 'path'; describe('Json Schema', () => { - it('Should use types from convertion function', async () => { + it('Should use types from conversion function', async () => { const value = { id: 123, title: 'other' }; const result = await ensureValid({ schema: join(__dirname, 'pullrequest.yaml'), value }); diff --git a/packages/laminar/README.md b/packages/laminar/README.md index e1aab89..1213e1a 100644 --- a/packages/laminar/README.md +++ b/packages/laminar/README.md @@ -234,19 +234,19 @@ const MySecurity = ({ headers }, { scopes }) => { You can use [@laminarjs/cli](../lamina-cli) package to generate types. -### Json Type Convertion +### Json Type conversion JSON and JS object are not _exactly_ the same, as you can [read to your horror at MDN docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description). Laminar tries to follow that spec, converting your JS objects into stuff that your json-schema can validate. For example Date objects are converted to iso strings and undefined fields are omitted from the object. This works on type level too. The types generated from the OpenApi schema would match JS objects passed to the helper functions `jsonOk`, `jsonNotFound` etc. -> [examples/convertion.ts](https://github.com/ivank/laminar/tree/main/packages/laminar/examples/convertion.ts) +> [examples/conversion.ts](https://github.com/ivank/laminar/tree/main/packages/laminar/examples/conversion.ts) ```typescript import { HttpService, jsonOk, openApi, init } from '@laminarjs/laminar'; import { join } from 'path'; -const api = join(__dirname, 'convertion.yaml'); +const api = join(__dirname, 'conversion.yaml'); const main = async () => { const listener = await openApi({ diff --git a/packages/laminar/examples/convertion.ts b/packages/laminar/examples/convertion.ts index 51dc188..1d5526c 100644 --- a/packages/laminar/examples/convertion.ts +++ b/packages/laminar/examples/convertion.ts @@ -1,7 +1,7 @@ import { HttpService, jsonOk, openApi, init } from '@laminarjs/laminar'; import { join } from 'path'; -const api = join(__dirname, 'convertion.yaml'); +const api = join(__dirname, 'conversion.yaml'); const main = async () => { const listener = await openApi({ diff --git a/packages/laminar/test/examples.spec.ts b/packages/laminar/test/examples.spec.ts index 9b8bd8c..d12f03f 100644 --- a/packages/laminar/test/examples.spec.ts +++ b/packages/laminar/test/examples.spec.ts @@ -242,7 +242,7 @@ describe('Example files', () => { {}, ], [ - 'examples/convertion.ts', + 'examples/conversion.ts', { method: 'GET', url: '/user',