/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend.Addons/Formatters/JsonFormatter.cs
43 строки
1 KB
Ivan Kozhin
Implement safe mode calls
04 фев 2024, 05:48
04 фев 2024, 05:48
4a5c0e3
Код
Авторство
О чём код?
using System.ComponentModel; using QueryCat.Backend.Core.Data; using QueryCat.Backend.Core.Functions; using QueryCat.Backend.Core.Types; namespace QueryCat.Backend.Addons.Formatters; /// <summary> /// JSON formatter. /// </summary> internal sealed class JsonFormatter : IRowsFormatter { [SafeFunction] [Description("JSON formatter.")] [FunctionSignature("json(jsonpath?: string): object<IRowsFormatter>")] public static VariantValue Json(FunctionCallInfo args) { var rowsSource = new JsonFormatter(args.GetAtOrDefault(0).AsString); return VariantValue.CreateFromObject(rowsSource); } private readonly string? _jsonPath; public JsonFormatter(string? jsonPath) { _jsonPath = jsonPath; } /// <inheritdoc /> public IRowsInput OpenInput(Stream input, string? key = null) { return new JsonInput(new StreamReader(input), jsonPath: _jsonPath, key: key); } /// <inheritdoc /> public IRowsOutput OpenOutput(Stream output) => new JsonOutput(output); public static void RegisterFunctions(IFunctionsManager functionsManager) { functionsManager.RegisterFunction(Json); } }