Skip to content

Плейсхолдер глобальных переменных скриптов Naumen Service Desk

Notifications You must be signed in to change notification settings

exeki/nsd.sdk.global_variables

Repository files navigation

nsd.sdk.global_variables

GitHub stars

Плейсхолдер глобальных переменных для NSMP — чистая, лёгкая и IDE-ориентированная библиотека, предоставляющая статические классы с глобальными переменными для автодополнения и удобства разработки.

В NSMP скрипты зачастую используют глобальные переменные runtime контекста (Например subject, user, api, utils). IDE не понимает эти переменные из коробки, что усложняет разработку и снижает developer experience.

nsd.sdk.global_variables решает эту проблему структурно:

  • Предоставляет статические классы-плейсхолдеры для всех ключевых NSD-переменных,
  • Повышает IDE-поддержку (автодополнение, навигация по коду),
  • Снижает число ошибок во время разработки.

🧪 Сценарии применения

  • Разработка NSD-скриптов в IntelliJ IDEA и других Java-IDE
  • Повышение читаемости и поддержки кода
  • Минимизация ошибок на этапе написания логики

🚀 Quick Start

Подключение зависимости

Tip

Всегда используйте актуальную версию из репозитория.

  1. Добавьте репозиторий в конфигурационный файл gradle build.gradle.kts вашего проекта:
repositories {
    maven {
        url = uri("https://maven.pkg.github.com/exeki/*")
        credentials {
            username = System.getenv("GITHUB_USERNAME")
            password = System.getenv("GITHUB_TOKEN")
        }
    }
    mavenCentral()
}
  1. Добавьте туда же библиотеку:
dependencies {
    implementation("ru.kazantsev.nsd:sdk.global_variables:<version>")
}

Для maven алгоритм такой же, но синтаксис будет другой.

🧩 Использование

Для получения автодополнения и подсказок IDE подключите статические импорты в свой скрипт:

import static ru.kazantsev.nsd.global_variables.ApiPlaceholder.*;
import static ru.kazantsev.nsd.global_variables.GlobalVariablesPlaceholder.*;

Пример:

ISDtObject employee = utils.find('employee', [:])
ISDtObject comment = utils.create(comment, [
        source: subject,
        author: employee,
])

Warning

Если хотите переносить скрипты с использованием данных плейсхолдеров в NSMP без удаления импортов из скриптов, нужно добавить модуль sdkPlaceholder в инсталляцию.

🗂 Структура проекта

Основные компоненты

src/main/java/ru/kazantsev/nsd/sdk/global_variables/
├── ApiPlaceholder.java
├── GlobalVariablesPlaceholder.java
├── MailVariablePlaceholder.java
└── ...
  • ApiPlaceholder — Глобальные API-объекты (api, utils и др.).
  • GlobalVariablesPlaceholder — Базовые переменные контекста (subject, user и др.).
  • MailVariablePlaceholder — Переменные, используемые в обработчиках почты.

🤝 Contributing

PR и идеи по расширению списка плейсхолдеров приветствуются (если по делу).

Рекомендуемый flow:

git fork https://github.com/exeki/nsd.sdk.global_variables
git checkout -b feature/<name>
git commit -m "feat: description"
git push origin feature/<name>

About

Плейсхолдер глобальных переменных скриптов Naumen Service Desk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 3

  •  
  •  
  •