-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathOptions.cs
More file actions
51 lines (38 loc) · 1.7 KB
/
Copy pathOptions.cs
File metadata and controls
51 lines (38 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Plugin;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.Json;
namespace SqlcGenCsharp;
public class Options
{
public Options(GenerateRequest generateRequest)
{
var text = Encoding.UTF8.GetString(generateRequest.PluginOptions.ToByteArray());
var rawOptions = JsonSerializer.Deserialize<RawOptions>(text) ?? throw new InvalidOperationException();
DriverName = EngineToDriverMapping[generateRequest.Settings.Engine];
OverrideDriverVersion = rawOptions.OverrideDriverVersion;
GenerateCsproj = rawOptions.GenerateCsproj;
UseDapper = rawOptions.UseDapper;
OverrideDapperVersion = rawOptions.OverrideDapperVersion;
NamespaceName = rawOptions.NamespaceName;
DotnetFramework = DotnetFrameworkExtensions.ParseName(rawOptions.TargetFramework);
if (rawOptions.DebugRequest && generateRequest.Settings.Codegen.Wasm is not null)
throw new ArgumentException("Debug request mode cannot be used with WASM plugin");
DebugRequest = rawOptions.DebugRequest;
}
public DriverName DriverName { get; }
public string OverrideDriverVersion { get; }
public DotnetFramework DotnetFramework { get; }
public bool GenerateCsproj { get; }
public bool UseDapper { get; }
public string OverrideDapperVersion { get; }
public string NamespaceName { get; }
public bool DebugRequest { get; }
private static readonly Dictionary<string, DriverName> EngineToDriverMapping = new()
{
{ "mysql", DriverName.MySqlConnector },
{ "postgresql", DriverName.Npgsql },
{ "sqlite", DriverName.Sqlite }
};
}