capibar-js
TypeScript icon, indicating that this package has built-in type declarations

0.0.27 • Public • Published

Capibar JS

Capibar JS - это фреймворк для создания различных сервисов на основе Node.js >= 16, используя принципы DDD, transport-agnostic, GRASP. Он также предоставляет свою систему модульности, которая обеспечивает Низкую связанность Low Coupling и Высокое зацепление High Cohesion.



Install

npm install capibar-js
# or yarn
yarn add capibar-js

Node.js версия должна быть 16.x или 18.x

Usage

Пример пользовательского кода доступен в директории example.

Сначала импортируйте Server из capibar-js и создайте экземпляр сервера:

const { Server } = require('capibar-js');
const server = new Server();
server.start();

По умолчанию запускаются Статический сервер из папки app/static и транспортные слои http и ws

Затем создайте файл list.js по пути app/ship/list.js и добавьте следующее содержимое:

defineApi({
    params: ['name:string', 'speed:!int', 'description:?string'],
    returns: ['id'],
    method: async ({name, speed, description}) => {
        const id = Math.floor(Math.random() * 99)
        const newObj = {id, name, speed, description}
        newObj.description = newObj?.description ?? 'New description'
        return newObj;
    }
})

defineApi - Удобная обертка для описания файл-функции.

params - Входные параметры функции, которые валидируются и трансформируются с помощью класса Schema. string[] | ISchemaDefine

returns - Выходные данные из функции. string[] | ISchemaDefine

method - Бизнес-логика функции api.ship.add(...). (...args) => Promise<any> | any

Пример вызова

Пример вызова функции из другой функции api.ship.add({ name: 'first ship', speed: 11 }).

Каждая такая функция является контроллером транспортов.

Например, функцию ship.add можно получить по транспорту HTTP, выполнив запрос: POST http://localhost:3000/api/ship/add

body:{ "name": "ship", "method": "add", args: [{ name:'ship', speed:11 }] }

или по транспорту WebSockets:

{ "name": "ship", "method": "add", "args": [{"name": 123,"speed": 1}] }

Получение структуры API

Для получения структуры API можно вызвать ручку с параметрами:

{
  "name": "_",
  "method": "introspect",
  "args": {}
}

Лицензия

MIT. Подробнее см. в файле LICENSE.

/capibar-js/

    Package Sidebar

    Install

    npm i capibar-js

    Weekly Downloads

    1

    Version

    0.0.27

    License

    MIT

    Unpacked Size

    299 kB

    Total Files

    199

    Last publish

    Collaborators

    • pysdbi