🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@infomaximum/application-types

Package Overview
Dependencies
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@infomaximum/application-types - npm Package Compare versions

Comparing version
1.1.1
to
1.2.0
+19
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## 1.2.0
### Features
* типизированы пропсы кастомного приложения: добавлены `IApplicationRouteApi`, `IApplicationProps`; `IApplication.mount`/`update` используют `IApplicationProps` вместо `Record<string, any>`
## 1.1.0 (2023-07-07)
### Features
* добавлена команда сборки библиотек в монорепозитории
* добавлено поле язык системы в пропсах компонента
* добавлены библиотеки типов
+5
-1
{
"name": "@infomaximum/application-types",
"version": "1.1.1",
"version": "1.2.0",
"license": "Apache-2.0",
"main": "./src/index.ts",
"types": "./src/index.ts",
"scripts": {
"release": "tsc --noEmit && standard-version"
},
"dependencies": {

@@ -13,4 +16,5 @@ "@infomaximum/global-types": "^1.2.0",

"prettier": "2.8.7",
"standard-version": "9.5.0",
"typescript": "5.0.4"
}
}

@@ -5,2 +5,38 @@ /// <reference types="@infomaximum/global-types" />

/**
* API роутинга кастомного приложения. Приложение управляет своим роутом через
* `navigateApp` (платформа пишет путь в URL → ссылки шарабельны, работают
* back/forward), а текущий путь получает в `route` на каждый `update`. Свою
* `history`/`BrowserRouter` приложение НЕ использует — единственный источник
* истины по URL — платформа.
*/
export interface IApplicationRouteApi {
/** Корень приложения в URL платформы, напр. `/im/package-apps/<guid>/view`. */
basePath: string;
/** Внутренний путь приложения относительно `basePath`, с ведущим `/` (напр. `/orders/42`). */
route: string;
/**
* Навигация внутри приложения. `subPath` — путь относительно `basePath`
* (с ведущим `/` или без), может содержать query (`/orders?tab=2`).
* `replace` — заменить запись в истории вместо push.
*/
navigateApp: (subPath: string, options?: { replace?: boolean }) => void;
}
/** Пропсы, которые платформа передаёт в `mount`/`update` кастомного приложения. */
export interface IApplicationProps {
/** Имя приложения (может отсутствовать до загрузки модели). */
appName?: string;
/** GUID приложения. */
appGuid?: string;
/** Код языка интерфейса платформы. */
language: string;
/** Включён ли debug-режим платформы. */
isDebugMode: boolean;
/** Проверка прав на запись для пакета приложения. */
hasPackageWriteAccessChecker: () => boolean;
/** API роутинга приложения — основной способ навигации. */
appRouter: IApplicationRouteApi;
}
export interface IApplication {

@@ -10,5 +46,5 @@ /** инициализация приложения */

/** монтирование приложения */
mount?(container: HTMLElement, props: Record<string, any>): void;
mount?(container: HTMLElement, props: IApplicationProps): void;
/** обновление приложения */
update?(container: HTMLElement, props: Record<string, any>): void;
update?(container: HTMLElement, props: IApplicationProps): void;
/** размонтирование приложения */

@@ -15,0 +51,0 @@ unmount?(container: HTMLElement): void;