This repository was archived by the owner on Jan 15, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 8 files changed +99
-4
lines changed
src/commands/luis/generate Expand file tree Collapse file tree 8 files changed +99
-4
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,17 @@ export default class LuisGenerateCs extends Command {
2424
2525 }
2626
27+ renameProp (
28+ oldProp : string ,
29+ newProp : string ,
30+ { [ oldProp ] : old , ...others }
31+ ) : any {
32+ return {
33+ [ newProp ] : old ,
34+ ...others
35+ }
36+ }
37+
2738 reorderEntities ( app : any , name : string ) : void {
2839 if ( app [ name ] !== null && app [ name ] !== undefined ) {
2940 app [ name ] . sort ( ( a : any , b : any ) => ( a . name > b . name ? 1 : - 1 ) )
@@ -57,6 +68,10 @@ export default class LuisGenerateCs extends Command {
5768 flags . className = upperFirst ( camelCase ( flags . className ) )
5869 }
5970
71+ if ( 'regexEntities' in app ) {
72+ app = this . renameProp ( 'regexEntities' , 'regex_entities' , app )
73+ }
74+
6075 this . reorderEntities ( app , 'entities' )
6176 this . reorderEntities ( app , 'prebuiltEntities' )
6277 this . reorderEntities ( app , 'closedLists' )
Original file line number Diff line number Diff line change @@ -22,6 +22,17 @@ export default class LuisGenerateTs extends Command {
2222 help : flags . help ( { char : 'h' , description : 'luis:generate:ts help' } ) ,
2323 }
2424
25+ renameProp (
26+ oldProp : string ,
27+ newProp : string ,
28+ { [ oldProp ] : old , ...others }
29+ ) : any {
30+ return {
31+ [ newProp ] : old ,
32+ ...others
33+ }
34+ }
35+
2536 reorderEntities ( app : any , name : string ) : void {
2637 if ( app [ name ] !== null && app [ name ] !== undefined ) {
2738 app [ name ] . sort ( ( a : any , b : any ) => ( a . name > b . name ? 1 : - 1 ) )
@@ -48,6 +59,10 @@ export default class LuisGenerateTs extends Command {
4859 flags . className = flags . className || app . name
4960 flags . className = upperFirst ( camelCase ( flags . className ) )
5061
62+ if ( 'regexEntities' in app ) {
63+ app = this . renameProp ( 'regexEntities' , 'regex_entities' , app )
64+ }
65+
5166 this . reorderEntities ( app , 'entities' )
5267 this . reorderEntities ( app , 'prebuiltEntities' )
5368 this . reorderEntities ( app , 'closedLists' )
Original file line number Diff line number Diff line change @@ -84,6 +84,17 @@ describe('luis:generate:cs', () => {
8484 . it ( 'Generates regex entities correctly' , async ( ) => {
8585 await compareSourceFiles ( '../../../fixtures/generate/RegexEntities.cs' , '../../../fixtures/generate/results/RegexEntities.cs' )
8686 } )
87+
88+ test
89+ . stdout ( )
90+ . command ( [ 'luis:generate:cs' ,
91+ '--in' ,
92+ `${ path . join ( __dirname , '../../../fixtures/generate/RegexEntities2.json' ) } ` ,
93+ '--out' ,
94+ `${ path . join ( __dirname , '../../../fixtures/generate/results/RegexEntities2.cs' ) } ` ] )
95+ . it ( 'Generates regex entities with alternative format correctly' , async ( ) => {
96+ await compareSourceFiles ( '../../../fixtures/generate/RegexEntities.cs' , '../../../fixtures/generate/results/RegexEntities2.cs' )
97+ } )
8798
8899 test
89100 . stdout ( )
Original file line number Diff line number Diff line change @@ -96,6 +96,17 @@ describe('luis:generate:ts', () => {
9696 . it ( 'Generates regex entities correctly' , async ( ) => {
9797 await compareSourceFiles ( '../../../fixtures/generate/regex-entities.ts' , '../../../fixtures/generate/results/regex-entities.ts' )
9898 } )
99+
100+ test
101+ . stdout ( )
102+ . command ( [ 'luis:generate:ts' ,
103+ '--in' ,
104+ `${ path . join ( __dirname , '../../../fixtures/generate/RegexEntities2.json' ) } ` ,
105+ '--out' ,
106+ `${ path . join ( __dirname , '../../../fixtures/generate/results/regex-entities2.ts' ) } ` ] )
107+ . it ( 'Generates regex entities with alternative format correctly' , async ( ) => {
108+ await compareSourceFiles ( '../../../fixtures/generate/regex-entities.ts' , '../../../fixtures/generate/results/regex-entities2.ts' )
109+ } )
99110
100111 test
101112 . stdout ( )
Original file line number Diff line number Diff line change @@ -27,10 +27,18 @@ public enum Intent {
2727
2828 public class _Entities
2929 {
30+ // Regex entities
31+ public string [ ] Part ;
32+ public string [ ] buy ;
33+ public string [ ] sell ;
34+
3035
3136 // Instance
3237 public class _Instance
3338 {
39+ public InstanceData [ ] Part ;
40+ public InstanceData [ ] buy ;
41+ public InstanceData [ ] sell ;
3442 }
3543 [ JsonProperty ( "$instance" ) ]
3644 public _Instance _instance ;
Original file line number Diff line number Diff line change 1010 "composites" : [],
1111 "closedLists" : [],
1212 "patternAnyEntities" : [],
13- "regex_entities" : [],
14- "prebuiltEntities" : [],
15- "model_features" : [],
16- "regex_features" : [
13+ "regex_entities" : [
1714 {
1815 "name" : " Part" ,
1916 "regexPattern" : " kb[0-9]+" ,
2320 ]
2421 }
2522 ],
23+ "prebuiltEntities" : [],
24+ "model_features" : [],
25+ "regex_features" : [],
2626 "patterns" : [],
2727 "utterances" : [],
2828 "settings" : []
Original file line number Diff line number Diff line change 1+ {
2+ "luis_schema_version" : " 3.2.0" ,
3+ "versionId" : " GeoPeople" ,
4+ "name" : " Contoso App" ,
5+ "desc" : " Default Intents for Azure Bot Service V2" ,
6+ "culture" : " en-us" ,
7+ "tokenizerVersion" : " 1.0.0" ,
8+ "intents" : [],
9+ "entities" : [],
10+ "composites" : [],
11+ "closedLists" : [],
12+ "patternAnyEntities" : [],
13+ "regexEntities" : [
14+ {
15+ "name" : " Part" ,
16+ "regexPattern" : " kb[0-9]+" ,
17+ "roles" : [
18+ " buy" ,
19+ " sell"
20+ ]
21+ }
22+ ],
23+ "prebuiltEntities" : [],
24+ "model_features" : [],
25+ "regexFeatures" : [],
26+ "patterns" : [],
27+ "utterances" : [],
28+ "settings" : []
29+ }
Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ export interface GeneratedIntents {
1212}
1313
1414export interface GeneratedInstance {
15+ Part ?: InstanceData [ ]
16+ buy ?: InstanceData [ ]
17+ sell ?: InstanceData [ ]
1518}
1619
1720export interface GeneratedEntities {
@@ -22,6 +25,9 @@ export interface GeneratedEntities {
2225 // Lists
2326
2427 // Regex entities
28+ Part ?: string [ ]
29+ buy ?: string [ ]
30+ sell ?: string [ ]
2531
2632 // Pattern.any
2733
You can’t perform that action at this time.
0 commit comments