From bf0259ef3b601af43d26c54d2d44322864520192 Mon Sep 17 00:00:00 2001 From: Vasili Karaev Date: Thu, 5 Aug 2021 12:33:24 +0300 Subject: [PATCH] Add module documentation --- README.md | 5 +++++ api/README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ fn/README.md | 37 ++++++++++++++++++++++++++++++++ logger/README.md | 3 +++ 4 files changed, 101 insertions(+) create mode 100644 api/README.md create mode 100644 fn/README.md create mode 100644 logger/README.md diff --git a/README.md b/README.md index cc56a41..ab6faf8 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ ## Frontend Common + +### Modules +- [api](./api/README.md) +- [fn](./fn/README.md) +- [logger](./fn/README.md) diff --git a/api/README.md b/api/README.md new file mode 100644 index 0000000..9076f57 --- /dev/null +++ b/api/README.md @@ -0,0 +1,56 @@ +## api + +This module helps define callable API methods. + +### Usage example + +```typescript +import { ApiMethodFactory, HttpMethod } from 'lib/api' + +const { make } = new ApiMethodFactory({ apiPrefix: '/api' }) + +interface User { + id: string + name: string + email: string +} + +interface UserRequest { + id: string +} + +interface UserListRequest { + limit: number + offset: number +} + +type UserResponse = User + +type UserListResponse = User[] + +type _ = unknown + +const API = { + user: { + get: make('/users/%(id)s', HttpMethod.GET, { + path: ['id'], + }), + list: make('/users', HttpMethod.GET, { + query: ['limit', 'offset'], + }), + delete: make<_, UserRequest>('/users/%(id)s', HttpMethod.DELETE, { + path: ['id'], + }), + }, +} + +const run = async () => { + const users = await API.user.list({ limit: 10, offset: 0 }) + + users.forEach(async (user) => { + await API.user.delete({ + id: user.id, + }) + }) +} +``` diff --git a/fn/README.md b/fn/README.md new file mode 100644 index 0000000..0c8eb52 --- /dev/null +++ b/fn/README.md @@ -0,0 +1,37 @@ +## fn + +This module contains various ramda combinations/extensions. + +### Available functions: + +- `thread` - sequentially applies transforms from the array to the first argument. + + **Example usage**: + ```typescript + import * as R from 'ramda' + import * as F from 'lib/fn' + + const a = F.thread(5, [ + R.add(3), + R.multiply(2), + R.dec, + ]) + + a === 15 // true + + // equivalent to: + const transform = R.pipe( + R.add(3), + R.multiply(2), + R.dec, + ) + + const b = transform(5) + + // or + const c = R.pipe( + R.add(3), + R.multiply(2), + R.dec, + )(5) + ``` diff --git a/logger/README.md b/logger/README.md new file mode 100644 index 0000000..269433a --- /dev/null +++ b/logger/README.md @@ -0,0 +1,3 @@ +## logger + +This module provides logging functionality.