@wictorwilen/cocogen 1.0.0 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -35
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +84 -14
- package/dist/cli.js.map +1 -1
- package/dist/init/init.d.ts.map +1 -1
- package/dist/init/init.js +302 -156
- package/dist/init/init.js.map +1 -1
- package/dist/init/templates/dotnet/AGENTS.md.ejs +20 -0
- package/dist/init/templates/dotnet/Core/ConnectorCore.cs.ejs +602 -0
- package/dist/init/templates/dotnet/Datasource/CsvItemSource.cs.ejs +12 -3
- package/dist/init/templates/dotnet/Datasource/IItemSource.cs.ejs +10 -4
- package/dist/init/templates/dotnet/Generated/Constants.cs.ejs +5 -1
- package/dist/init/templates/dotnet/Generated/CsvParser.cs.ejs +61 -0
- package/dist/init/templates/dotnet/Generated/FromCsvRow.cs.ejs +11 -3
- package/dist/init/templates/dotnet/Generated/ItemPayload.cs.ejs +13 -3
- package/dist/init/templates/dotnet/Generated/Model.cs.ejs +5 -22
- package/dist/init/templates/dotnet/Generated/PropertyTransformBase.cs.ejs +45 -0
- package/dist/init/templates/dotnet/Generated/SchemaPayload.cs.ejs +9 -1
- package/dist/init/templates/dotnet/Program.commandline.cs.ejs +76 -278
- package/dist/init/templates/dotnet/PropertyTransform.cs.ejs +10 -0
- package/dist/init/templates/dotnet/README.md.ejs +6 -7
- package/dist/init/templates/dotnet/appsettings.json.ejs +1 -1
- package/dist/init/templates/ts/.env.example.ejs +1 -1
- package/dist/init/templates/ts/AGENTS.md.ejs +20 -0
- package/dist/init/templates/ts/README.md.ejs +6 -7
- package/dist/init/templates/ts/src/cli.ts.ejs +85 -173
- package/dist/init/templates/ts/src/core/connectorCore.ts.ejs +384 -0
- package/dist/init/templates/ts/src/datasource/csvItemSource.ts.ejs +12 -4
- package/dist/init/templates/ts/src/datasource/itemSource.ts.ejs +12 -5
- package/dist/init/templates/ts/src/generated/constants.ts.ejs +16 -0
- package/dist/init/templates/ts/src/generated/csv.ts.ejs +10 -0
- package/dist/init/templates/ts/src/generated/fromCsvRow.ts.ejs +12 -37
- package/dist/init/templates/ts/src/generated/index.ts.ejs +3 -0
- package/dist/init/templates/ts/src/generated/itemPayload.ts.ejs +12 -3
- package/dist/init/templates/ts/src/generated/model.ts.ejs +3 -11
- package/dist/init/templates/ts/src/generated/propertyTransformBase.ts.ejs +40 -0
- package/dist/init/templates/ts/src/generated/schemaPayload.ts.ejs +3 -0
- package/dist/init/templates/ts/src/index.ts.ejs +4 -1
- package/dist/init/templates/ts/src/propertyTransform.ts.ejs +16 -0
- package/dist/ir.d.ts +2 -0
- package/dist/ir.d.ts.map +1 -1
- package/dist/tsp/init-tsp.d.ts.map +1 -1
- package/dist/tsp/init-tsp.js +50 -7
- package/dist/tsp/init-tsp.js.map +1 -1
- package/dist/tsp/loader.d.ts.map +1 -1
- package/dist/tsp/loader.js +23 -9
- package/dist/tsp/loader.js.map +1 -1
- package/dist/typespec/decorators.d.ts +1 -0
- package/dist/typespec/decorators.d.ts.map +1 -1
- package/dist/typespec/decorators.js +7 -2
- package/dist/typespec/decorators.js.map +1 -1
- package/dist/typespec/state.d.ts +2 -0
- package/dist/typespec/state.d.ts.map +1 -1
- package/dist/typespec/state.js +1 -0
- package/dist/typespec/state.js.map +1 -1
- package/dist/validate/validator.d.ts.map +1 -1
- package/dist/validate/validator.js +127 -14
- package/dist/validate/validator.js.map +1 -1
- package/package.json +2 -1
- package/typespec/main.tsp +6 -2
- package/dist/init/templates/dotnet/Generated/PersonEntityDefaults.cs.ejs +0 -48
- package/dist/init/templates/dotnet/Generated/PropertyTransforms.cs.ejs +0 -22
- package/dist/init/templates/dotnet/PersonEntityOverrides.cs.ejs +0 -49
- package/dist/init/templates/dotnet/Program.cs.ejs +0 -487
- package/dist/init/templates/ts/src/generated/personEntityDefaults.ts.ejs +0 -33
- package/dist/init/templates/ts/src/generated/propertyTransforms.ts.ejs +0 -23
- package/dist/init/templates/ts/src/personEntityOverrides.ts.ejs +0 -36
|
@@ -23,6 +23,22 @@ const PEOPLE_LABELS = new Set([
|
|
|
23
23
|
"personAnniversaries",
|
|
24
24
|
"personNote",
|
|
25
25
|
]);
|
|
26
|
+
const PEOPLE_LABEL_TYPES = new Map([
|
|
27
|
+
["personAccount", ["string"]],
|
|
28
|
+
["personName", ["string"]],
|
|
29
|
+
["personCurrentPosition", ["string"]],
|
|
30
|
+
["personAddresses", ["stringCollection"]],
|
|
31
|
+
["personEmails", ["stringCollection"]],
|
|
32
|
+
["personPhones", ["stringCollection"]],
|
|
33
|
+
["personAwards", ["stringCollection"]],
|
|
34
|
+
["personCertifications", ["stringCollection"]],
|
|
35
|
+
["personProjects", ["stringCollection"]],
|
|
36
|
+
["personSkills", ["stringCollection"]],
|
|
37
|
+
["personWebAccounts", ["stringCollection"]],
|
|
38
|
+
["personWebSite", ["string"]],
|
|
39
|
+
["personAnniversaries", ["stringCollection"]],
|
|
40
|
+
["personNote", ["string"]],
|
|
41
|
+
]);
|
|
26
42
|
const PEOPLE_ENTITY_BY_LABEL = new Map([
|
|
27
43
|
["personAccount", "userAccountInformation"],
|
|
28
44
|
["personName", "personName"],
|
|
@@ -39,6 +55,23 @@ const PEOPLE_ENTITY_BY_LABEL = new Map([
|
|
|
39
55
|
["personAnniversaries", "personAnniversary"],
|
|
40
56
|
["personNote", "personAnnotation"],
|
|
41
57
|
]);
|
|
58
|
+
const SEMANTIC_LABEL_TYPE_RULES = new Map([
|
|
59
|
+
["title", ["string"]],
|
|
60
|
+
["url", ["string"]],
|
|
61
|
+
["createdBy", ["string"]],
|
|
62
|
+
["lastModifiedBy", ["string"]],
|
|
63
|
+
["authors", ["string", "stringCollection"]],
|
|
64
|
+
["createdDateTime", ["dateTime"]],
|
|
65
|
+
["lastModifiedDateTime", ["dateTime"]],
|
|
66
|
+
["fileName", ["string"]],
|
|
67
|
+
["fileExtension", ["string"]],
|
|
68
|
+
["iconUrl", ["string"]],
|
|
69
|
+
["containerName", ["string"]],
|
|
70
|
+
["containerUrl", ["string"]],
|
|
71
|
+
["createdByUpn", ["string"]],
|
|
72
|
+
["lastModifiedByUpn", ["string"]],
|
|
73
|
+
["authorsUpn", ["string", "stringCollection"]],
|
|
74
|
+
]);
|
|
42
75
|
export function validateIr(ir) {
|
|
43
76
|
const issues = [];
|
|
44
77
|
// Graph constraints
|
|
@@ -96,6 +129,26 @@ export function validateIr(ir) {
|
|
|
96
129
|
hint: "Remove searchable=true for this property.",
|
|
97
130
|
});
|
|
98
131
|
}
|
|
132
|
+
const nonPeopleLabels = prop.labels.filter((label) => !label.startsWith("person"));
|
|
133
|
+
if (nonPeopleLabels.length > 0 && !prop.search.retrievable) {
|
|
134
|
+
issues.push({
|
|
135
|
+
severity: "error",
|
|
136
|
+
message: `Property '${prop.name}' has semantic labels (${nonPeopleLabels.join(", ")}) but is not retrievable.`,
|
|
137
|
+
hint: "Add @coco.search({ retrievable: true }) to labeled properties.",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
for (const label of nonPeopleLabels) {
|
|
141
|
+
const allowedTypes = SEMANTIC_LABEL_TYPE_RULES.get(label);
|
|
142
|
+
if (!allowedTypes)
|
|
143
|
+
continue;
|
|
144
|
+
if (!allowedTypes.includes(prop.type)) {
|
|
145
|
+
issues.push({
|
|
146
|
+
severity: "error",
|
|
147
|
+
message: `Semantic label '${label}' on property '${prop.name}' requires type ${allowedTypes.join(" or ")}, but found '${prop.type}'.`,
|
|
148
|
+
hint: "Change the property type or remove the semantic label.",
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
99
152
|
}
|
|
100
153
|
const idProp = ir.properties.find((p) => p.name === ir.item.idPropertyName);
|
|
101
154
|
if (!idProp) {
|
|
@@ -112,6 +165,34 @@ export function validateIr(ir) {
|
|
|
112
165
|
hint: "Change the TypeSpec property type to 'string'.",
|
|
113
166
|
});
|
|
114
167
|
}
|
|
168
|
+
if (!ir.connection.connectionName || ir.connection.connectionName.trim().length === 0) {
|
|
169
|
+
issues.push({
|
|
170
|
+
severity: "error",
|
|
171
|
+
message: "Missing @coco.connection name.",
|
|
172
|
+
hint: "Add @coco.connection({ name: \"Your connector\", connectionId: \"yourconnectionid\", connectionDescription: \"Your connector\" }) to the @coco.item model.",
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
if (!ir.connection.connectionId || ir.connection.connectionId.trim().length === 0) {
|
|
176
|
+
issues.push({
|
|
177
|
+
severity: "error",
|
|
178
|
+
message: "Missing @coco.connection connectionId.",
|
|
179
|
+
hint: "Add @coco.connection({ name: \"Your connector\", connectionId: \"yourconnectionid\", connectionDescription: \"Your connector\" }) to the @coco.item model.",
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (!ir.connection.connectionDescription || ir.connection.connectionDescription.trim().length === 0) {
|
|
183
|
+
issues.push({
|
|
184
|
+
severity: "error",
|
|
185
|
+
message: "Missing @coco.connection connectionDescription.",
|
|
186
|
+
hint: "Add @coco.connection({ name: \"Your connector\", connectionId: \"yourconnectionid\", connectionDescription: \"Your connector\" }) to the @coco.item model.",
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (ir.connection.connectionId && !/^[A-Za-z0-9]+$/.test(ir.connection.connectionId)) {
|
|
190
|
+
issues.push({
|
|
191
|
+
severity: "error",
|
|
192
|
+
message: `@coco.connection connectionId '${ir.connection.connectionId}' contains invalid characters. Connection IDs must be alphanumeric only.`,
|
|
193
|
+
hint: "Remove non-alphanumeric characters from connectionId.",
|
|
194
|
+
});
|
|
195
|
+
}
|
|
115
196
|
if (ir.item.contentPropertyName) {
|
|
116
197
|
const contentProp = ir.properties.find((p) => p.name === ir.item.contentPropertyName);
|
|
117
198
|
if (!contentProp) {
|
|
@@ -128,6 +209,36 @@ export function validateIr(ir) {
|
|
|
128
209
|
hint: "Change the TypeSpec property type to 'string'.",
|
|
129
210
|
});
|
|
130
211
|
}
|
|
212
|
+
else {
|
|
213
|
+
if (contentProp.labels.length > 0) {
|
|
214
|
+
issues.push({
|
|
215
|
+
severity: "error",
|
|
216
|
+
message: `@coco.content property '${contentProp.name}' cannot have labels.`,
|
|
217
|
+
hint: "Remove @coco.label from the content property.",
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
if (contentProp.aliases.length > 0) {
|
|
221
|
+
issues.push({
|
|
222
|
+
severity: "error",
|
|
223
|
+
message: `@coco.content property '${contentProp.name}' cannot have aliases.`,
|
|
224
|
+
hint: "Remove @coco.aliases from the content property.",
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
if (contentProp.description && contentProp.description.trim().length > 0) {
|
|
228
|
+
issues.push({
|
|
229
|
+
severity: "error",
|
|
230
|
+
message: `@coco.content property '${contentProp.name}' cannot have a description.`,
|
|
231
|
+
hint: "Remove @coco.description from the content property.",
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
if (hasSearchFlags(contentProp.search)) {
|
|
235
|
+
issues.push({
|
|
236
|
+
severity: "error",
|
|
237
|
+
message: `@coco.content property '${contentProp.name}' cannot use @coco.search flags.`,
|
|
238
|
+
hint: "Remove @coco.search from the content property.",
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}
|
|
131
242
|
}
|
|
132
243
|
// People connectors rules (preview)
|
|
133
244
|
if (ir.connection.contentCategory === "people") {
|
|
@@ -158,15 +269,15 @@ export function validateIr(ir) {
|
|
|
158
269
|
});
|
|
159
270
|
}
|
|
160
271
|
for (const prop of ir.properties) {
|
|
272
|
+
if (!isPeopleLabeled(prop.labels))
|
|
273
|
+
continue;
|
|
161
274
|
if (hasSearchFlags(prop.search)) {
|
|
162
275
|
issues.push({
|
|
163
276
|
severity: "warning",
|
|
164
|
-
message: `People
|
|
165
|
-
hint: "Remove @coco.search from people
|
|
277
|
+
message: `People-labeled property '${prop.name}' should not use @coco.search flags.`,
|
|
278
|
+
hint: "Remove @coco.search from people-labeled properties to avoid confusion.",
|
|
166
279
|
});
|
|
167
280
|
}
|
|
168
|
-
if (!isPeopleLabeled(prop.labels))
|
|
169
|
-
continue;
|
|
170
281
|
for (const label of prop.labels) {
|
|
171
282
|
if (label.startsWith("person") && !PEOPLE_LABELS.has(label)) {
|
|
172
283
|
issues.push({
|
|
@@ -174,20 +285,22 @@ export function validateIr(ir) {
|
|
|
174
285
|
message: `People connector label '${label}' is not supported.`,
|
|
175
286
|
hint: "Use a supported people label like personCurrentPosition or personEmails.",
|
|
176
287
|
});
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
const allowedTypes = PEOPLE_LABEL_TYPES.get(label);
|
|
291
|
+
if (allowedTypes && !allowedTypes.includes(prop.type)) {
|
|
292
|
+
issues.push({
|
|
293
|
+
severity: "error",
|
|
294
|
+
message: `People label '${label}' requires type ${allowedTypes.join(" or ")}, but '${prop.name}' is '${prop.type}'.`,
|
|
295
|
+
hint: "Change the property type to match the people label requirements.",
|
|
296
|
+
});
|
|
177
297
|
}
|
|
178
|
-
}
|
|
179
|
-
if (prop.type !== "string" && prop.type !== "stringCollection") {
|
|
180
|
-
issues.push({
|
|
181
|
-
severity: "error",
|
|
182
|
-
message: `People-labeled property '${prop.name}' must be string or stringCollection. Found '${prop.type}'.`,
|
|
183
|
-
hint: "For People connectors, people-domain labeled properties must contain JSON-serialized profile entity objects in strings.",
|
|
184
|
-
});
|
|
185
298
|
}
|
|
186
299
|
if (!prop.personEntity) {
|
|
187
300
|
issues.push({
|
|
188
|
-
severity: "
|
|
189
|
-
message: `People-labeled property '${prop.name}'
|
|
190
|
-
hint: "
|
|
301
|
+
severity: "warning",
|
|
302
|
+
message: `People-labeled property '${prop.name}' is missing @coco.source(..., to) mappings.`,
|
|
303
|
+
hint: "A throwing transform stub is generated. Implement the mapping in PropertyTransform (TS/.NET).",
|
|
191
304
|
});
|
|
192
305
|
}
|
|
193
306
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validate/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validate/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wictorwilen/cocogen",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "TypeSpec-driven Microsoft Copilot connector generator",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Wictor Wilén <wictor@wictorwilen.se>",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc -p tsconfig.build.json && node ./scripts/copy-init-templates.mjs",
|
|
39
|
+
"prepublishOnly": "npm run build",
|
|
39
40
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
40
41
|
"pretest": "npm run typecheck && npm run build",
|
|
41
42
|
"test": "vitest run",
|
package/typespec/main.tsp
CHANGED
|
@@ -10,8 +10,9 @@ using TypeSpec.Reflection;
|
|
|
10
10
|
namespace coco {
|
|
11
11
|
model ConnectionSettings {
|
|
12
12
|
contentCategory?: ContentCategory;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
name: string;
|
|
14
|
+
connectionId: string;
|
|
15
|
+
connectionDescription: string;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
model ProfileSourceSettings {
|
|
@@ -112,6 +113,9 @@ namespace coco {
|
|
|
112
113
|
// Maps a source field (CSV header) to a property or entity path.
|
|
113
114
|
extern dec source(target: ModelProperty, from: SourceSettings | string, to?: string);
|
|
114
115
|
|
|
116
|
+
// Marks a property as having no CSV source mapping.
|
|
117
|
+
extern dec noSource(target: ModelProperty);
|
|
118
|
+
|
|
115
119
|
// A custom scalar we map to Graph schema propertyType = principal.
|
|
116
120
|
scalar Principal;
|
|
117
121
|
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// Auto-generated defaults for people connector entity payloads.
|
|
2
|
-
// These are derived from @coco.source mappings and regenerated on every update.
|
|
3
|
-
// Customize output in PersonEntityOverrides.cs instead.
|
|
4
|
-
|
|
5
|
-
using System.Text.Json;
|
|
6
|
-
using <%= namespaceName %>.Datasource;
|
|
7
|
-
|
|
8
|
-
namespace <%= namespaceName %>.Schema;
|
|
9
|
-
|
|
10
|
-
public static class PersonEntityDefaults
|
|
11
|
-
{
|
|
12
|
-
private static string ParseString(IReadOnlyDictionary<string, string?> row, string[] headers)
|
|
13
|
-
{
|
|
14
|
-
return CsvParser.ParseString(row, headers);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public static string BuildDefault(string name, IReadOnlyDictionary<string, string?> row)
|
|
18
|
-
{
|
|
19
|
-
switch (name)
|
|
20
|
-
{
|
|
21
|
-
<% for (const def of defaults) { -%>
|
|
22
|
-
<% if (!def.isCollection) { -%>
|
|
23
|
-
case <%= JSON.stringify(def.name) %>:
|
|
24
|
-
return <%- def.expression %>;
|
|
25
|
-
<% } -%>
|
|
26
|
-
<% } -%>
|
|
27
|
-
default:
|
|
28
|
-
return "";
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public static List<string> BuildDefaultCollection(string name, IReadOnlyDictionary<string, string?> row)
|
|
33
|
-
{
|
|
34
|
-
switch (name)
|
|
35
|
-
{
|
|
36
|
-
<% for (const def of defaults) { -%>
|
|
37
|
-
<% if (def.isCollection) { -%>
|
|
38
|
-
case <%= JSON.stringify(def.name) %>:
|
|
39
|
-
{
|
|
40
|
-
return <%- def.expression %>;
|
|
41
|
-
}
|
|
42
|
-
<% } -%>
|
|
43
|
-
<% } -%>
|
|
44
|
-
default:
|
|
45
|
-
return new List<string>();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
using <%= namespaceName %>.Datasource;
|
|
2
|
-
|
|
3
|
-
namespace <%= namespaceName %>.Schema;
|
|
4
|
-
|
|
5
|
-
// Property transforms for custom mapping logic.
|
|
6
|
-
// For explicit @coco.source mappings, the method receives the source column value.
|
|
7
|
-
// When no @coco.source is provided, the method receives the full row.
|
|
8
|
-
public static class PropertyTransforms
|
|
9
|
-
{
|
|
10
|
-
<% for (const prop of properties) { -%>
|
|
11
|
-
public static <%= prop.csType %> Transform<%= prop.csName %>(<%= prop.isExplicitSource ? "string? value" : "IReadOnlyDictionary<string, string?> row" %>)
|
|
12
|
-
{
|
|
13
|
-
// TODO: customize mapping for <%= prop.name %>
|
|
14
|
-
<% if (prop.isExplicitSource) { -%>
|
|
15
|
-
return <%= prop.parseFn %>(value);
|
|
16
|
-
<% } else { -%>
|
|
17
|
-
return <%= prop.parseFn %>(row, new[] { <%= prop.csvHeaders.map((h) => JSON.stringify(h)).join(", ") %> });
|
|
18
|
-
<% } -%>
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
<% } -%>
|
|
22
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
namespace <%= namespaceName %>.Schema;
|
|
2
|
-
|
|
3
|
-
// User-editable overrides for people connector entity mapping.
|
|
4
|
-
// This file is created once and will not be overwritten by cocogen update.
|
|
5
|
-
|
|
6
|
-
public static class PersonEntityOverrides
|
|
7
|
-
{
|
|
8
|
-
public static string Transform(string name, IReadOnlyDictionary<string, string?> row, string value)
|
|
9
|
-
{
|
|
10
|
-
switch (name)
|
|
11
|
-
{
|
|
12
|
-
<% for (const propName of names) { -%>
|
|
13
|
-
case <%= JSON.stringify(propName) %>:
|
|
14
|
-
// TODO: customize mapping for this entity. Example for skillProficiency:
|
|
15
|
-
// return System.Text.Json.JsonSerializer.Serialize(new Dictionary<string, object?>
|
|
16
|
-
// {
|
|
17
|
-
// ["displayName"] = row.TryGetValue("skill", out var skill) ? skill : "",
|
|
18
|
-
// ["proficiencyLevel"] = row.TryGetValue("proficiency", out var level) ? level : "",
|
|
19
|
-
// });
|
|
20
|
-
return value;
|
|
21
|
-
<% } -%>
|
|
22
|
-
default:
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public static List<string> TransformCollection(
|
|
28
|
-
string name,
|
|
29
|
-
IReadOnlyDictionary<string, string?> row,
|
|
30
|
-
List<string> value
|
|
31
|
-
)
|
|
32
|
-
{
|
|
33
|
-
switch (name)
|
|
34
|
-
{
|
|
35
|
-
<% for (const propName of names) { -%>
|
|
36
|
-
case <%= JSON.stringify(propName) %>:
|
|
37
|
-
// TODO: customize mapping for this collection entity. Example for skills:
|
|
38
|
-
// return new List<string> { System.Text.Json.JsonSerializer.Serialize(new Dictionary<string, object?>
|
|
39
|
-
// {
|
|
40
|
-
// ["displayName"] = row.TryGetValue("skill", out var skill) ? skill : "",
|
|
41
|
-
// ["proficiency"] = row.TryGetValue("proficiency", out var level) ? level : "",
|
|
42
|
-
// }) };
|
|
43
|
-
return value;
|
|
44
|
-
<% } -%>
|
|
45
|
-
default:
|
|
46
|
-
return value;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|