Export run-data-sheet-root in last-update-user of logistics
Started Bun support but CORS fails process-data-standard-format code alignment
This commit is contained in:
@ -110,7 +110,7 @@ dotnet_diagnostic.CA2254.severity = none # CA2254: The logging message template
|
||||
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
|
||||
dotnet_diagnostic.IDE0002.severity = warning # Simplify (member access) - System.Version.Equals("1", "2"); Version.Equals("1", "2");
|
||||
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
|
||||
dotnet_diagnostic.IDE0005.severity = warning # Using directive is unnecessary
|
||||
dotnet_diagnostic.IDE0005.severity = none # Using directive is unnecessary
|
||||
dotnet_diagnostic.IDE0028.severity = none # IDE0028: Collection initialization can be simplified
|
||||
dotnet_diagnostic.IDE0031.severity = warning # Use null propagation (IDE0031)
|
||||
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
|
||||
@ -122,6 +122,7 @@ dotnet_diagnostic.IDE0290.severity = none # Use primary constructor [Distance]cs
|
||||
dotnet_diagnostic.IDE0300.severity = none # IDE0300: Collection initialization can be simplified
|
||||
dotnet_diagnostic.IDE0301.severity = none #IDE0301: Collection initialization can be simplified
|
||||
dotnet_diagnostic.IDE0305.severity = none # IDE0305: Collection initialization can be simplified
|
||||
dotnet_diagnostic.MSTEST0015.severity = none # MSTEST0015: Test method {method} should not be ignored
|
||||
dotnet_diagnostic.MSTEST0037.severity = error # MSTEST0037: Use proper 'Assert' methods
|
||||
dotnet_diagnostic.SYSLIB1045.severity = none # SYSLIB1045: diagnostics for regex source generation
|
||||
dotnet_naming_rule.abstract_method_should_be_pascal_case.severity = warning
|
||||
|
2
Adaptation/.vscode/launch.json
vendored
2
Adaptation/.vscode/launch.json
vendored
@ -4,7 +4,7 @@
|
||||
"name": ".NET Core Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": 8912
|
||||
"processId": 18520
|
||||
}
|
||||
]
|
||||
}
|
||||
|
133
Adaptation/.vscode/tasks.json
vendored
133
Adaptation/.vscode/tasks.json
vendored
@ -1,19 +1,134 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"inputs": [
|
||||
{
|
||||
"default": "Development",
|
||||
"description": "Which ASP Net Core Environment?",
|
||||
"id": "ASPNETCORE_ENVIRONMENT",
|
||||
"options": [
|
||||
"Development",
|
||||
"Production"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "{AssemblyTitle}",
|
||||
"description": "What Assembly Title?",
|
||||
"id": "AssemblyTitle",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "{Build.BuildId}",
|
||||
"description": "Which Build BuildId?",
|
||||
"id": "Build.BuildId",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "{Build.Reason}",
|
||||
"description": "Which Build Reason?",
|
||||
"id": "Build.Reason",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "{Build.Repository.Id}",
|
||||
"description": "Which Build Repository Id?",
|
||||
"id": "Build.Repository.Id",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "{Build.Repository.Name}",
|
||||
"description": "Which Build Repository Name?",
|
||||
"id": "Build.Repository.Name",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "{Build.SourceVersion}",
|
||||
"description": "Which Build Source Version?",
|
||||
"id": "Build.SourceVersion",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "Debug",
|
||||
"description": "Which Configuration?",
|
||||
"id": "Configuration",
|
||||
"options": [
|
||||
"Debug",
|
||||
"Release"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "net8.0",
|
||||
"description": "Which Core Version?",
|
||||
"id": "CoreVersion",
|
||||
"options": [
|
||||
"net8.0"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe",
|
||||
"description": "Which MS Build?",
|
||||
"id": "MSBuild",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/",
|
||||
"description": "Which Nuget Source?",
|
||||
"id": "NugetSource",
|
||||
"type": "promptString"
|
||||
},
|
||||
{
|
||||
"default": "win-x64",
|
||||
"description": "Which Runtime?",
|
||||
"id": "Runtime",
|
||||
"options": [
|
||||
"win-x64",
|
||||
"win-x32",
|
||||
"linux-x64",
|
||||
"linux-x32"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "L:/",
|
||||
"description": "Which System DefaultWorkingDirectory?",
|
||||
"id": "System.DefaultWorkingDirectory",
|
||||
"options": [
|
||||
"L:/",
|
||||
"D:/",
|
||||
"C:/"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "v4.8",
|
||||
"description": "Which Core Target Framework Version?",
|
||||
"id": "TargetFrameworkVersion",
|
||||
"options": [
|
||||
"v4.8"
|
||||
],
|
||||
"type": "pickString"
|
||||
},
|
||||
{
|
||||
"default": "{UserSecretsId}",
|
||||
"description": "Which Core User Secrets Id?",
|
||||
"id": "UserSecretsId",
|
||||
"type": "promptString"
|
||||
}
|
||||
],
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"build",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary"
|
||||
"build"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "Test-Debug",
|
||||
"label": "Test Debug",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
@ -24,7 +139,7 @@
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "Test-Release",
|
||||
"label": "Test Release",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
@ -50,7 +165,7 @@
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "Format-Whitespaces",
|
||||
"label": "Format Whitespaces",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
@ -87,13 +202,13 @@
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "Project",
|
||||
"label": "Code Project",
|
||||
"type": "shell",
|
||||
"command": "code ../MET08DDUPSP1TBI.csproj",
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Readme",
|
||||
"label": "Code Read Me",
|
||||
"type": "shell",
|
||||
"command": "code ../README.md",
|
||||
"problemMatcher": []
|
||||
@ -113,7 +228,7 @@
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Git Config",
|
||||
"label": "Code Git Config",
|
||||
"type": "shell",
|
||||
"command": "code ../.git/config",
|
||||
"problemMatcher": []
|
||||
|
@ -119,15 +119,6 @@ public class FileRead : Shared.FileRead, IFileRead
|
||||
if (!Directory.Exists(duplicateDirectory))
|
||||
_ = Directory.CreateDirectory(duplicateDirectory);
|
||||
string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder;
|
||||
if (!Directory.Exists(Path.Combine(duplicateDirectory, "1")))
|
||||
{
|
||||
string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation);
|
||||
if (parentParent.Contains(_CellInstanceName))
|
||||
parentParent = Path.GetDirectoryName(parentParent);
|
||||
duplicateDirectory = Path.Combine(parentParent, "Data");
|
||||
if (!Directory.Exists(duplicateDirectory))
|
||||
_ = Directory.CreateDirectory(duplicateDirectory);
|
||||
}
|
||||
if (descriptions.Count == 0 || tests.Length == 0)
|
||||
duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
|
||||
else
|
||||
|
@ -11,6 +11,7 @@ public class Common
|
||||
public int? ReactorNumber { get; }
|
||||
public string? Zone { get; }
|
||||
public string? Employee { get; }
|
||||
public RunDataSheetRoot? RunDataSheetRoot { get; }
|
||||
public WorkOrder? WorkOrder { get; }
|
||||
|
||||
public Common(string? layer,
|
||||
@ -19,6 +20,7 @@ public class Common
|
||||
int? reactor,
|
||||
string? zone,
|
||||
string? employee,
|
||||
RunDataSheetRoot? runDataSheetRoot,
|
||||
WorkOrder? workOrder)
|
||||
{
|
||||
Layer = layer;
|
||||
@ -27,6 +29,7 @@ public class Common
|
||||
ReactorNumber = reactor;
|
||||
Zone = zone;
|
||||
Employee = employee;
|
||||
RunDataSheetRoot = runDataSheetRoot;
|
||||
WorkOrder = workOrder;
|
||||
}
|
||||
|
||||
|
@ -55,6 +55,7 @@ public partial class Job
|
||||
const string hyphen = "-";
|
||||
const string bioRad2 = "BIORAD2";
|
||||
const string bioRad3 = "BIORAD3";
|
||||
RunDataSheetRoot? runDataSheetRoot;
|
||||
const string twoAlphaPattern = "^[a-zA-z]{2,3}";
|
||||
const string reactorNumberPattern = @"^[0-9]{2}--";
|
||||
Input input = JsonSerializer.Deserialize<Input>(mid) ?? throw new Exception();
|
||||
@ -64,11 +65,9 @@ public partial class Job
|
||||
DateTime = new DateTime(sequence);
|
||||
const string dep08CEPIEPSILON = "DEP08CEPIEPSILON";
|
||||
if (input.EquipmentType == dep08CEPIEPSILON)
|
||||
{
|
||||
common = Get(input, httpClient);
|
||||
}
|
||||
common = ReactorGet(input, httpClient);
|
||||
else if (!string.IsNullOrEmpty(input.MID) && !string.IsNullOrEmpty(input.MesEntity) && Regex.IsMatch(input.MID, reactorNumberPattern) && input.MesEntity is bioRad2 or bioRad3)
|
||||
common = Get(input, barcodeHostFileShare);
|
||||
common = Get(input, barcodeHostFileShare, httpClient);
|
||||
else
|
||||
{
|
||||
reactorNumber = GetReactorNumber(input);
|
||||
@ -80,11 +79,12 @@ public partial class Job
|
||||
reactor: null,
|
||||
zone: null,
|
||||
employee: null,
|
||||
runDataSheetRoot: null,
|
||||
workOrder: workOrder);
|
||||
else if (!string.IsNullOrEmpty(input.MID) && input.MID.Length is 2 or 3 && Regex.IsMatch(input.MID, twoAlphaPattern))
|
||||
common = GetTwoAlphaPattern(metrologyFileShare, input);
|
||||
else
|
||||
common = Get(input);
|
||||
common = Get(input, httpClient);
|
||||
}
|
||||
bool isValid = IsValid(common.RDSNumber);
|
||||
if (isValid)
|
||||
@ -99,11 +99,19 @@ public partial class Job
|
||||
psn: common.PSN,
|
||||
reactorNumber: common.ReactorNumber,
|
||||
zone: hyphen);
|
||||
if (commonB.RDSNumber is null || common.RunDataSheetRoot is not null)
|
||||
runDataSheetRoot = common.RunDataSheetRoot;
|
||||
else
|
||||
{
|
||||
try
|
||||
{ runDataSheetRoot = GetRunDataSheetRoot(httpClient, commonB.RDSNumber.Value); }
|
||||
catch (Exception)
|
||||
{ runDataSheetRoot = null; }
|
||||
}
|
||||
Qty = "1";
|
||||
Status = hyphen; // INFO
|
||||
CreationUser = hyphen; // ?
|
||||
LotState = hyphen; // LAYER2
|
||||
LastUpdateUser = hyphen; // ?
|
||||
Equipment = input.MesEntity; // ?
|
||||
PackageName = hyphen; // WAFER_ID
|
||||
Qty2 = input.Sequence; // SEQUENCE
|
||||
@ -111,30 +119,24 @@ public partial class Job
|
||||
IsAreaSi = input.Area == "Si"; // N/A
|
||||
StateModel = input.EquipmentType; // ?
|
||||
JobName = DateTime.Ticks.ToString(); // ?
|
||||
BasicType = GetComment(hyphen, httpClient, commonB); // BASIC_TYPE
|
||||
BasicType = GetComment(hyphen, runDataSheetRoot, commonB); // BASIC_TYPE
|
||||
AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); // ?
|
||||
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
|
||||
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
|
||||
ProcessSpecName = !string.IsNullOrEmpty(commonB.Zone) ? commonB.Zone : hyphen; // WAFER_POS
|
||||
LotName = commonB.RDSNumber is not null ? commonB.RDSNumber.Value.ToString() : input.MID; // MID
|
||||
LastUpdateUser = string.IsNullOrEmpty(runDataSheetRoot?.Json) ? "{}" : runDataSheetRoot.Json; // NULL_DATA
|
||||
ProcessType = commonB.ReactorNumber is not null ? commonB.ReactorNumber.Value.ToString() : hyphen; // PROCESS_JOBID
|
||||
Items.Add(new Item { Name = "0", Type = "NA", Number = (0 + 1).ToString(), Qty = "1", CarrierName = hyphen });
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetComment(string hyphen, HttpClient httpClient, CommonB commonB)
|
||||
private static string GetComment(string hyphen, RunDataSheetRoot? runDataSheetRoot, CommonB commonB)
|
||||
{
|
||||
string result;
|
||||
string? loadLockSide = commonB.LoadLockSide;
|
||||
if (string.IsNullOrEmpty(loadLockSide) && commonB.RDSNumber is not null)
|
||||
{
|
||||
RunDataSheetRoot? runDataSheetRoot;
|
||||
try
|
||||
{ runDataSheetRoot = GetRunDataSheetRoot(httpClient, commonB.RDSNumber.Value); }
|
||||
catch (Exception)
|
||||
{ runDataSheetRoot = null; }
|
||||
loadLockSide = runDataSheetRoot?.RunDataSheet?.LoadLockSide;
|
||||
}
|
||||
if (string.IsNullOrEmpty(loadLockSide) || string.IsNullOrEmpty(commonB.ReactorType))
|
||||
result = hyphen;
|
||||
else
|
||||
@ -270,8 +272,9 @@ public partial class Job
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Common Get(Input input)
|
||||
private static Common Get(Input input, HttpClient httpClient)
|
||||
{
|
||||
Common result;
|
||||
string? psn;
|
||||
string? rds;
|
||||
int rdsCheck;
|
||||
@ -281,6 +284,7 @@ public partial class Job
|
||||
string? reactor;
|
||||
string? employee;
|
||||
int? reactorNumber;
|
||||
RunDataSheetRoot? runDataSheetRoot;
|
||||
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||
if (mid.Length > 2 && mid[0] == '1' && (mid[1] == 'T' || mid[1] == 't'))
|
||||
mid = mid.Substring(2);
|
||||
@ -290,13 +294,14 @@ public partial class Job
|
||||
(reactor, rds) = GetReactorAndRDS(input.MID, mid, segments);
|
||||
rdsNumber = string.IsNullOrEmpty(rds) || !int.TryParse(rds, out rdsCheck) ? null : rdsCheck;
|
||||
bool isInvalid = IsInvalid(rdsNumber);
|
||||
if (isInvalid || !int.TryParse(reactor, out int reactorCheck))
|
||||
if (rdsNumber is null || isInvalid || !int.TryParse(reactor, out int reactorCheck))
|
||||
{
|
||||
psn = null;
|
||||
zone = null;
|
||||
layer = null;
|
||||
employee = null;
|
||||
reactorNumber = null;
|
||||
runDataSheetRoot = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -304,14 +309,17 @@ public partial class Job
|
||||
reactorNumber = reactorCheck;
|
||||
(layer, psn) = GetLayerAndPSN(segments);
|
||||
employee = segments.Length <= 4 ? null : segments[4];
|
||||
runDataSheetRoot = GetRunDataSheetRoot(httpClient, rdsNumber.Value);
|
||||
}
|
||||
return new(layer: layer,
|
||||
result = new(layer: layer,
|
||||
psn: psn,
|
||||
rdsNumber: rdsNumber,
|
||||
reactor: reactorNumber,
|
||||
zone: zone,
|
||||
employee: employee,
|
||||
runDataSheetRoot: runDataSheetRoot,
|
||||
workOrder: null);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static string[] GetDirectories(string fileShare)
|
||||
@ -330,6 +338,7 @@ public partial class Job
|
||||
|
||||
private static Common GetTwoAlphaPattern(string metrologyFileShare, Input input)
|
||||
{
|
||||
Common result;
|
||||
string lines;
|
||||
const int zero = 0;
|
||||
string? psn = null;
|
||||
@ -369,13 +378,15 @@ public partial class Job
|
||||
zone = workMaterialOut.Zone;
|
||||
break;
|
||||
}
|
||||
return new(layer: layer,
|
||||
result = new(layer: layer,
|
||||
psn: psn,
|
||||
rdsNumber: rdsNumber,
|
||||
reactor: reactor,
|
||||
zone: zone,
|
||||
employee: null,
|
||||
runDataSheetRoot: null,
|
||||
workOrder: null);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static List<string> GetFiles(Input input, string barcodeHostFileShare)
|
||||
@ -414,27 +425,16 @@ public partial class Job
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Common Get(Input input, HttpClient httpClient)
|
||||
private static Common ReactorGet(Input input, HttpClient httpClient)
|
||||
{
|
||||
int? rds;
|
||||
string? psn;
|
||||
Common result;
|
||||
Task<Stream> streamTask;
|
||||
Task<HttpResponseMessage> httpResponseMessageTask;
|
||||
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
||||
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
||||
httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/reactors/{reactor}");
|
||||
httpResponseMessageTask.Wait();
|
||||
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
||||
streamTask = httpResponseMessageTask.Result.Content.ReadAsStreamAsync();
|
||||
streamTask.Wait();
|
||||
if (!streamTask.Result.CanRead)
|
||||
throw new NullReferenceException(nameof(streamTask));
|
||||
ReactorRoot? reactorRoot = JsonSerializer.Deserialize<ReactorRoot>(streamTask.Result, jsonSerializerOptions);
|
||||
streamTask.Result.Dispose();
|
||||
if (reactorRoot is null || reactor != reactorRoot.Reactor.ReactorNo || reactorRoot.Reactor.LoadedRDS is null || reactorRoot.Reactor.LoadedRDS.Length < 1)
|
||||
ReactorRoot? reactorRoot = reactor is null ? null : GetReactorRoot(httpClient, jsonSerializerOptions, reactor);
|
||||
if (reactorRoot?.Reactor is null || reactor != reactorRoot.Reactor.ReactorNo || reactorRoot.Reactor.LoadedRDS is null || reactorRoot.Reactor.LoadedRDS.Length < 1)
|
||||
{
|
||||
rds = null;
|
||||
psn = null;
|
||||
@ -444,13 +444,14 @@ public partial class Job
|
||||
reactor: reactor,
|
||||
zone: null,
|
||||
employee: null,
|
||||
runDataSheetRoot: null,
|
||||
workOrder: null);
|
||||
}
|
||||
else
|
||||
{
|
||||
rds = reactorRoot.Reactor.LoadedRDS[0];
|
||||
RunDataSheetRoot? runDataSheetRoot = GetRunDataSheetRoot(httpClient, rds.Value);
|
||||
if (runDataSheetRoot is null || reactor != runDataSheetRoot.RunDataSheet.Reactor)
|
||||
if (runDataSheetRoot?.RunDataSheet is null || reactor != runDataSheetRoot.RunDataSheet.Reactor)
|
||||
{
|
||||
psn = null;
|
||||
result = new(layer: null,
|
||||
@ -459,6 +460,7 @@ public partial class Job
|
||||
reactor: reactor,
|
||||
zone: null,
|
||||
employee: null,
|
||||
runDataSheetRoot: runDataSheetRoot,
|
||||
workOrder: null);
|
||||
}
|
||||
else
|
||||
@ -470,30 +472,51 @@ public partial class Job
|
||||
reactor: reactor,
|
||||
zone: null,
|
||||
employee: null,
|
||||
runDataSheetRoot: runDataSheetRoot,
|
||||
workOrder: null);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static RunDataSheetRoot? GetRunDataSheetRoot(HttpClient httpClient, int rds)
|
||||
private static ReactorRoot? GetReactorRoot(HttpClient httpClient, JsonSerializerOptions jsonSerializerOptions, int? reactor)
|
||||
{
|
||||
RunDataSheetRoot? runDataSheetRoot;
|
||||
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
||||
using Task<HttpResponseMessage> httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/materials/rds/{rds}");
|
||||
ReactorRoot? result;
|
||||
try
|
||||
{
|
||||
Task<HttpResponseMessage> httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/reactors/{reactor}");
|
||||
httpResponseMessageTask.Wait();
|
||||
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
||||
using Task<Stream> streamTask = httpResponseMessageTask.Result.Content.ReadAsStreamAsync();
|
||||
streamTask.Wait();
|
||||
if (!streamTask.Result.CanRead)
|
||||
throw new NullReferenceException(nameof(streamTask));
|
||||
runDataSheetRoot = JsonSerializer.Deserialize<RunDataSheetRoot>(streamTask.Result, jsonSerializerOptions);
|
||||
streamTask.Result.Dispose();
|
||||
return runDataSheetRoot;
|
||||
result = !streamTask.Result.CanRead ? null : JsonSerializer.Deserialize<ReactorRoot>(streamTask.Result, jsonSerializerOptions);
|
||||
}
|
||||
catch (Exception) { result = null; }
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Common Get(Input input, string barcodeHostFileShare)
|
||||
private static RunDataSheetRoot? GetRunDataSheetRoot(HttpClient httpClient, int rds)
|
||||
{
|
||||
RunDataSheetRoot? result;
|
||||
try
|
||||
{
|
||||
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
||||
using Task<HttpResponseMessage> httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/materials/rds/{rds}");
|
||||
httpResponseMessageTask.Wait();
|
||||
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
||||
Task<string> json = httpResponseMessageTask.Result.Content.ReadAsStringAsync();
|
||||
json.Wait();
|
||||
result = JsonSerializer.Deserialize<RunDataSheetRoot>(json.Result, jsonSerializerOptions);
|
||||
result ??= new RunDataSheetRoot(null);
|
||||
result.Json = json.Result;
|
||||
}
|
||||
catch (Exception) { result = null; }
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Common Get(Input input, string barcodeHostFileShare, HttpClient httpClient)
|
||||
{
|
||||
Common result;
|
||||
if (string.IsNullOrEmpty(barcodeHostFileShare) || !Directory.Exists(barcodeHostFileShare))
|
||||
@ -501,6 +524,7 @@ public partial class Job
|
||||
int? rds;
|
||||
long sequence = 0;
|
||||
WorkOrder? workOrder;
|
||||
RunDataSheetRoot? runDataSheetRoot;
|
||||
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
||||
bool parsed = !string.IsNullOrEmpty(input.Sequence) && long.TryParse(input.Sequence, out sequence);
|
||||
@ -514,15 +538,18 @@ public partial class Job
|
||||
{
|
||||
rds = null;
|
||||
workOrder = null;
|
||||
runDataSheetRoot = null;
|
||||
}
|
||||
else if (!text.Contains('.'))
|
||||
{
|
||||
workOrder = null;
|
||||
rds = !int.TryParse(text.Substring(2), out int rdsNumber) ? null : rdsNumber;
|
||||
rds = !int.TryParse(text.Substring(2), out int rdsNumber) || IsInvalid(rdsNumber) ? null : rdsNumber;
|
||||
runDataSheetRoot = rds is null ? null : GetRunDataSheetRoot(httpClient, rds.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
rds = null;
|
||||
runDataSheetRoot = null;
|
||||
workOrder = GetWorkOrder(new(input, text.Substring(2)));
|
||||
}
|
||||
result = new(layer: null,
|
||||
@ -531,6 +558,7 @@ public partial class Job
|
||||
reactor: reactor,
|
||||
zone: null,
|
||||
employee: null,
|
||||
runDataSheetRoot: runDataSheetRoot,
|
||||
workOrder: workOrder);
|
||||
return result;
|
||||
}
|
||||
|
@ -2,13 +2,15 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||
|
||||
#nullable enable
|
||||
|
||||
public class ReactorRoot
|
||||
{
|
||||
|
||||
[JsonConstructor]
|
||||
public ReactorRoot(Reactor reactor) =>
|
||||
public ReactorRoot(Reactor? reactor) =>
|
||||
Reactor = reactor;
|
||||
|
||||
[JsonPropertyName("reactor")] public Reactor Reactor { get; } // { init; get; }
|
||||
[JsonPropertyName("reactor")] public Reactor? Reactor { get; } // { init; get; }
|
||||
|
||||
}
|
@ -2,13 +2,16 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||
|
||||
#nullable enable
|
||||
|
||||
public class RunDataSheetRoot
|
||||
{
|
||||
|
||||
[JsonConstructor]
|
||||
public RunDataSheetRoot(RunDataSheet runDataSheet) =>
|
||||
public RunDataSheetRoot(RunDataSheet? runDataSheet) =>
|
||||
RunDataSheet = runDataSheet;
|
||||
|
||||
[JsonPropertyName("rds")] public RunDataSheet RunDataSheet { get; } // { init; get; }
|
||||
public string? Json { get; set; }
|
||||
[JsonPropertyName("rds")] public RunDataSheet? RunDataSheet { get; } // { init; get; }
|
||||
|
||||
}
|
@ -559,15 +559,15 @@ internal class ProcessDataStandardFormat
|
||||
{
|
||||
results.Add(string.Empty);
|
||||
List<char> hyphens = new();
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Header.Select(l => l.Replace('\t', '|')));
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Header.Select(l => $"|{l.Replace('\t', '|')}|"));
|
||||
results.Add(string.Empty);
|
||||
results.Add($"|{string.Join("|", processDataStandardFormat.InputPDSF.Columns)}|");
|
||||
for (int i = 0; i < processDataStandardFormat.InputPDSF.Columns.Count; i++)
|
||||
hyphens.Add('-');
|
||||
results.Add($"|{string.Join("|", hyphens)}|");
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Body.Select(l => l.Replace('\t', '|')));
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Body.Select(l => $"|{l.Replace('\t', '|')}|"));
|
||||
results.Add(string.Empty);
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Footer.Select(l => l.Replace('\t', '|')));
|
||||
results.AddRange(processDataStandardFormat.InputPDSF.Footer.Select(l => $"|{l.Replace('\t', '|')}|"));
|
||||
results.Add(string.Empty);
|
||||
results.Add("EOF");
|
||||
results.Add(string.Empty);
|
||||
|
20
Adaptation/_Tests/Static/wizard.js
Normal file
20
Adaptation/_Tests/Static/wizard.js
Normal file
@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
const rds = 'http://messa020ec.infineon.com:8080/api/oiWizard/materials/rds/1005602';
|
||||
|
||||
let workItemCollection = [];
|
||||
|
||||
await fetch(rds)
|
||||
.then((res) => res.text())
|
||||
.then((text) => {
|
||||
const records = JSON.parse(text);
|
||||
if (records != undefined) {
|
||||
if (records != undefined) {
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((e) => console.error(e));
|
||||
|
||||
workItemCollection.forEach(element => {
|
||||
console.log(`{"Id": "${element.Id}", "State": "${element.State}", "ClosedDate": "${element.ClosedDate}", "TargetDate": "${element.TargetDate}", "IterationPath": "${element.IterationPath}", "AssignedTo": "${element.AssignedTo}", "Title": "${element.Title}"},`);
|
||||
});
|
76
Adaptation/bun.lock
Normal file
76
Adaptation/bun.lock
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"lockfileVersion": 1,
|
||||
"workspaces": {
|
||||
"": {
|
||||
"name": "adaptation",
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest",
|
||||
"axios": "^1.11.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "^5",
|
||||
},
|
||||
},
|
||||
},
|
||||
"packages": {
|
||||
"@types/bun": ["@types/bun@1.2.19", "", { "dependencies": { "bun-types": "1.2.19" } }, "sha512-d9ZCmrH3CJ2uYKXQIUuZ/pUnTqIvLDS0SK7pFmbx8ma+ziH/FRMoAq5bYpRG7y+w1gl+HgyNZbtqgMq4W4e2Lg=="],
|
||||
|
||||
"@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="],
|
||||
|
||||
"@types/react": ["@types/react@19.1.9", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA=="],
|
||||
|
||||
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
|
||||
|
||||
"axios": ["axios@1.11.0", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA=="],
|
||||
|
||||
"bun-types": ["bun-types@1.2.19", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-uAOTaZSPuYsWIXRpj7o56Let0g/wjihKCkeRqUBhlLVM/Bt+Fj9xTo+LhC1OV1XDaGkz4hNC80et5xgy+9KTHQ=="],
|
||||
|
||||
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
||||
|
||||
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
|
||||
|
||||
"csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
|
||||
|
||||
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
|
||||
|
||||
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
||||
|
||||
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
||||
|
||||
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
||||
|
||||
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
||||
|
||||
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
|
||||
|
||||
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
||||
|
||||
"form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="],
|
||||
|
||||
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
||||
|
||||
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
||||
|
||||
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
||||
|
||||
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
|
||||
|
||||
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
|
||||
|
||||
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
|
||||
|
||||
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
||||
|
||||
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
||||
|
||||
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
|
||||
|
||||
"mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
|
||||
|
||||
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
||||
|
||||
"typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="],
|
||||
|
||||
"undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="],
|
||||
}
|
||||
}
|
@ -1,18 +1,29 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest",
|
||||
"axios": "^1.11.0"
|
||||
},
|
||||
"module": "index.ts",
|
||||
"name": "adaptation",
|
||||
"peerDependencies": {
|
||||
"typescript": "^5"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"AA-CreateSelfDescription.Staging.v2_47_1-SP101_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
"BA-CreateSelfDescription.Staging.v2_47_1-SP101": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"CA-CreateSelfDescription.Staging.v2_47_1-MET08DDUPSP1TBI": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"DA-CreateSelfDescription.Staging.v2_47_1": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"EA-Extract.Staging.v2_47_1-SP101_EQPT-Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101_EQPT & Name~Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"FA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__txt637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__txt637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"GA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"garbage-collect": "git gc",
|
||||
"HA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"HB-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"IA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
"kanbn.board": "kanbn board",
|
||||
"kanbn.board.json": "kanbn board -j > .kanbn/board.json",
|
||||
"garbage-collect": "git gc"
|
||||
}
|
||||
"kanbn.board.json": "kanbn board -j > .kanbn/board.json"
|
||||
},
|
||||
"type": "module"
|
||||
}
|
29
Adaptation/tsconfig.json
Normal file
29
Adaptation/tsconfig.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// Environment setup & latest features
|
||||
"lib": ["ESNext"],
|
||||
"target": "ESNext",
|
||||
"module": "Preserve",
|
||||
"moduleDetection": "force",
|
||||
"jsx": "react-jsx",
|
||||
"allowJs": true,
|
||||
|
||||
// Bundler mode
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"noEmit": true,
|
||||
|
||||
// Best practices
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedIndexedAccess": true,
|
||||
"noImplicitOverride": true,
|
||||
|
||||
// Some stricter flags (disabled by default)
|
||||
"noUnusedLocals": false,
|
||||
"noUnusedParameters": false,
|
||||
"noPropertyAccessFromIndexSignature": false
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user