Socket
Socket
Sign inDemoInstall

@tramvai/module-common

Package Overview
Dependencies
Maintainers
2
Versions
636
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tramvai/module-common

Модуль, собравший в себя основные архитектурные блоки для работы приложения. Этот модуль необходим в большинстве случаев и добавляемые этим модулем провайдеры используются подавляющим числом других модулей.


Version published
Weekly downloads
2.5K
increased by37%
Maintainers
2
Weekly downloads
 
Created
Source

Common

Модуль, собравший в себя основные архитектурные блоки для работы приложения. Этот модуль необходим в большинстве случаев и добавляемые этим модулем провайдеры используются подавляющим числом других модулей.

Подключение в проект

1. Зависимости

Необходимо установить @tramvai/module-common с помощью npm

npm i @tramvai/module-common

2. Подключение модуля

Нужно передать в список модулей приложения CommonModule

import { createApp } from '@tramvai/core';
import { CommonModule } from '@tramvai/module-common';

createApp({
  modules: [CommonModule],
});

Включенные модули

CommandModule

Модуль которые добавляет в проект реализацию commandLineRunner и дефолтных команд

Модуль использует логгер с идентификатором command:command-line-runner

StateModule

Подключает и инициализирует state-manager в проекте

ActionModule

Реализация системы экшенов

Модуль использует логгер с идентификатором action:action-page-runner

CookieModule

Подключен модуль который позволяет работать с куками, документация

EnvironmentModule

Модуль для работы с env переменные в приложении на стороне сервера и клиента, документация

PubSub

Для отправки событий между модулями используется PubSub который позволяет отправлять сообщения и подписываться на изменения, документация

Модуль использует логгер с идентификатором pubsub

LogModule

Минимальная реализация логгера для токена LOGGER_TOKEN без фильтров и дополнительных фич

CacheModule

Модуль для работы с кешами. Функции:

  • Создать новый инстанс кеша (на данный момент это lru-cache)
  • Очистить все ранее созданные кеши
  • Подписка на событие очистки кеша для реализации собственного тригера очистки своих кешей
  • Добавляет papi-метод '/clear-cache' который генерирует событе очистки кешей

Модуль использует логгер с идентификатором cache:papi-clear-cache

Пример
import { provide } from '@tramvai/core';

export const providers = [
  provide({
    provide: MY_MODULE_PROVIDER_FACTORY,
    scope: Scope.SINGLETON,
    useFactory: ({ createCache }) => {
      const cache = createCache('memory', ...args); // тип кеша и дополнительные аргументы которые будут переданы в конструктор кеша

      return someFactory({ cache });
    },
    deps: {
      createCache: CREATE_CACHE_TOKEN,
    },
  }),

  provide({
    provide: REGISTER_CLEAR_CACHE_TOKEN,
    scope: Scope.SINGLETON,
    useFactory: ({ cache }) => {
      return async () => {
        await cache.reset();
        console.log('my module cache cleared');
      };
    },
    deps: {
      cache: MY_MODULE_CACHE,
    },
  }),

  provide({
    provide: commandLineListTokens.clear,
    useFactory: ({ clearCache }) => {
      return function clear() {
        clearCache(); // очистить кеши явно в своем провайдере
      };
    },
    deps: {
      clearCache: CLEAR_CACHE_TOKEN,
    },
  }),
];

RequestManagerModule

Модуль для работы с параметрами запроса

ResponseManagerModule

Модуль для работы с параметрами ответа

Экспортируемые токены

FAQs

Package last updated on 22 Sep 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc