Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 69cf2b9

Browse files
author
Chris McConnell
authored
Fix bug in interface sorting (#1034)
1 parent ec179b9 commit 69cf2b9

File tree

4 files changed

+41
-41
lines changed

4 files changed

+41
-41
lines changed

packages/dialog/src/library/schemaMerger.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1680,8 +1680,8 @@ export class SchemaMerger {
16801680
private sortImplementations(): void {
16811681
for (this.currentKind in this.definitions) {
16821682
const definition = this.definitions[this.currentKind]
1683-
if (this.isInterface(definition) && definition.oneOf) {
1684-
definition.oneOf = definition.oneOf.sort((a: any, b: any) => a.title.localeCompare(b.title))
1683+
if (this.isInterface(this.currentKind) && definition.oneOf) {
1684+
definition.oneOf = definition.oneOf.sort((a: any, b: any) => (a.$ref || a.type).localeCompare(b.$ref || b.type))
16851685
}
16861686
}
16871687
}

packages/dialog/test/commands/dialog/oracles/app.schema

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626
"title": "Recognizer",
2727
"description": "Recognizer interface.",
2828
"oneOf": [
29+
{
30+
"$ref": "#/definitions/Recognizer"
31+
},
2932
{
3033
"type": "string",
3134
"title": "Reference to IRecognizer",
3235
"description": "Reference to IRecognizer .dialog file."
33-
},
34-
{
35-
"$ref": "#/definitions/Recognizer"
3636
}
3737
]
3838
},

packages/dialog/test/commands/dialog/oracles/project3.schema

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,14 @@
213213
"description": "Components which are ActivityTemplate, which is string template, an activity, or a implementation of ActivityTemplate",
214214
"$role": "interface",
215215
"oneOf": [
216-
{
217-
"type": "string"
218-
},
219216
{
220217
"$ref": "#/definitions/botframework.json/definitions/Activity",
221218
"required": [
222219
"type"
223220
]
221+
},
222+
{
223+
"type": "string"
224224
}
225225
],
226226
"$package": {
@@ -233,9 +233,6 @@
233233
"description": "Components which derive from Dialog",
234234
"$role": "interface",
235235
"oneOf": [
236-
{
237-
"type": "string"
238-
},
239236
{
240237
"$ref": "#/definitions/Microsoft.AdaptiveDialog"
241238
},
@@ -244,6 +241,9 @@
244241
},
245242
{
246243
"$ref": "#/definitions/Microsoft.SendActivity"
244+
},
245+
{
246+
"type": "string"
247247
}
248248
],
249249
"$package": {
@@ -257,10 +257,10 @@
257257
"$role": "interface",
258258
"oneOf": [
259259
{
260-
"type": "string"
260+
"$ref": "#/definitions/Microsoft.TemplateEngineLanguageGenerator"
261261
},
262262
{
263-
"$ref": "#/definitions/Microsoft.TemplateEngineLanguageGenerator"
263+
"type": "string"
264264
}
265265
],
266266
"$package": {
@@ -274,10 +274,10 @@
274274
"$role": "interface",
275275
"oneOf": [
276276
{
277-
"type": "string"
277+
"$ref": "#/definitions/Microsoft.LuisRecognizer"
278278
},
279279
{
280-
"$ref": "#/definitions/Microsoft.LuisRecognizer"
280+
"type": "string"
281281
}
282282
],
283283
"$package": {
@@ -294,16 +294,16 @@
294294
"version": "1.0.0"
295295
},
296296
"oneOf": [
297-
{
298-
"type": "string",
299-
"title": "Reference to Microsoft.ITrigger",
300-
"description": "Reference to Microsoft.ITrigger .dialog file."
301-
},
302297
{
303298
"$ref": "#/definitions/Microsoft.OnCondition"
304299
},
305300
{
306301
"$ref": "#/definitions/Microsoft.OnIntent"
302+
},
303+
{
304+
"type": "string",
305+
"title": "Reference to Microsoft.ITrigger",
306+
"description": "Reference to Microsoft.ITrigger .dialog file."
307307
}
308308
]
309309
},
@@ -316,13 +316,13 @@
316316
"version": "1.0.0"
317317
},
318318
"oneOf": [
319+
{
320+
"$ref": "#/definitions/Microsoft.MostSpecificSelector"
321+
},
319322
{
320323
"type": "string",
321324
"title": "Reference to Microsoft.ITriggerSelector",
322325
"description": "Reference to Microsoft.ITriggerSelector .dialog file."
323-
},
324-
{
325-
"$ref": "#/definitions/Microsoft.MostSpecificSelector"
326326
}
327327
]
328328
},

packages/dialog/test/commands/dialog/oracles/project5.schema

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,14 @@
213213
"description": "Components which are ActivityTemplate, which is string template, an activity, or a implementation of ActivityTemplate",
214214
"$role": "interface",
215215
"oneOf": [
216-
{
217-
"type": "string"
218-
},
219216
{
220217
"$ref": "#/definitions/botframework.json/definitions/Activity",
221218
"required": [
222219
"type"
223220
]
221+
},
222+
{
223+
"type": "string"
224224
}
225225
],
226226
"$package": {
@@ -233,9 +233,6 @@
233233
"description": "Components which derive from Dialog",
234234
"$role": "interface",
235235
"oneOf": [
236-
{
237-
"type": "string"
238-
},
239236
{
240237
"$ref": "#/definitions/Microsoft.AdaptiveDialog"
241238
},
@@ -244,6 +241,9 @@
244241
},
245242
{
246243
"$ref": "#/definitions/Microsoft.SendActivity"
244+
},
245+
{
246+
"type": "string"
247247
}
248248
],
249249
"$package": {
@@ -257,10 +257,10 @@
257257
"$role": "interface",
258258
"oneOf": [
259259
{
260-
"type": "string"
260+
"$ref": "#/definitions/Microsoft.TemplateEngineLanguageGenerator"
261261
},
262262
{
263-
"$ref": "#/definitions/Microsoft.TemplateEngineLanguageGenerator"
263+
"type": "string"
264264
}
265265
],
266266
"$package": {
@@ -274,10 +274,10 @@
274274
"$role": "interface",
275275
"oneOf": [
276276
{
277-
"type": "string"
277+
"$ref": "#/definitions/Microsoft.LuisRecognizer"
278278
},
279279
{
280-
"$ref": "#/definitions/Microsoft.LuisRecognizer"
280+
"type": "string"
281281
}
282282
],
283283
"$package": {
@@ -294,16 +294,16 @@
294294
"version": "1.0.0"
295295
},
296296
"oneOf": [
297-
{
298-
"type": "string",
299-
"title": "Reference to Microsoft.ITrigger",
300-
"description": "Reference to Microsoft.ITrigger .dialog file."
301-
},
302297
{
303298
"$ref": "#/definitions/Microsoft.OnCondition"
304299
},
305300
{
306301
"$ref": "#/definitions/Microsoft.OnIntent"
302+
},
303+
{
304+
"type": "string",
305+
"title": "Reference to Microsoft.ITrigger",
306+
"description": "Reference to Microsoft.ITrigger .dialog file."
307307
}
308308
]
309309
},
@@ -316,13 +316,13 @@
316316
"version": "1.0.0"
317317
},
318318
"oneOf": [
319+
{
320+
"$ref": "#/definitions/Microsoft.MostSpecificSelector"
321+
},
319322
{
320323
"type": "string",
321324
"title": "Reference to Microsoft.ITriggerSelector",
322325
"description": "Reference to Microsoft.ITriggerSelector .dialog file."
323-
},
324-
{
325-
"$ref": "#/definitions/Microsoft.MostSpecificSelector"
326326
}
327327
]
328328
},

0 commit comments

Comments
 (0)