@infomaximum/application-types
Advanced tools
+19
| # 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" | ||
| } | ||
| } |
+38
-2
@@ -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; |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
15161
24.21%4
33.33%57
147.83%0
-100%3
50%