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

Commit bc5cc73

Browse files
ceciliaavilasw-joelmutOEvgeny
authored
fix: [#9151] LG for 'choices' field in multi choice input results in Warning (#9321)
* Add trim function to validate LG expressions * Add unit test * Improve trimExpression method * Update yarn-berry.lock files * Update yarn-berry.lock files * Fix hash --------- Co-authored-by: Joel Mut <[email protected]> Co-authored-by: Joel Mut <[email protected]> Co-authored-by: Eugene <[email protected]>
1 parent d245206 commit bc5cc73

File tree

4 files changed

+34
-5
lines changed

4 files changed

+34
-5
lines changed

Composer/packages/lib/indexers/__tests__/validations/expressionValidation.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,14 @@ describe('validate expression', () => {
6969
const result = checkExpression("=concat('test', '1')", true, [ReturnType.String]);
7070
expect(result).toBe(24);
7171
});
72+
73+
it('use LG expressions will not throw error', () => {
74+
try {
75+
checkExpression('${LGChoiceOptions()}', true, [ReturnType.Number]);
76+
} catch (error) {
77+
expect(error.message).toBe(
78+
"LGChoiceOptions does not have an evaluator, it's not a built-in function or a custom function."
79+
);
80+
}
81+
});
7282
});

Composer/packages/lib/indexers/src/validations/expressionValidation/validation.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@ export const addReturnType = (currentType: number, newType: number) => {
2020
return currentType | newType;
2121
};
2222

23+
export const trimExpression = (expression: string): string => {
24+
let result = expression.trim();
25+
if (result.startsWith('=')) {
26+
result = result.substring(1).trim();
27+
}
28+
29+
if (result.startsWith('$')) {
30+
result = result.substring(1).trim();
31+
}
32+
33+
if (result.startsWith('{') && result.endsWith('}')) {
34+
result = result.substring(1, result.length - 1).trim();
35+
}
36+
37+
return result;
38+
};
39+
2340
export const checkStringExpression = (exp: string, isStringType: boolean): number => {
2441
const origin = exp.trim();
2542
const containsEqual = origin.startsWith('=');
@@ -28,7 +45,9 @@ export const checkStringExpression = (exp: string, isStringType: boolean): numbe
2845
return ReturnType.String;
2946
}
3047

31-
return Expression.parse(containsEqual ? origin.substring(1) : origin).returnType;
48+
const trimmedOrigin = trimExpression(origin);
49+
50+
return Expression.parse(trimmedOrigin).returnType;
3251
};
3352

3453
export const checkExpression = (exp: any, required: boolean, types: number[]): number => {

extensions/azurePublish/yarn-berry.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,7 +1994,7 @@ __metadata:
19941994

19951995
"@bfc/indexers@file:../../Composer/packages/lib/indexers::locator=azurePublish%40workspace%3A.":
19961996
version: 0.0.0
1997-
resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=f8e51f&locator=azurePublish%40workspace%3A."
1997+
resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=5e1a82&locator=azurePublish%40workspace%3A."
19981998
dependencies:
19991999
"@microsoft/bf-lu": 4.15.0-dev.20210702.cbf708d
20002000
adaptive-expressions: ^4.18.0
@@ -2003,7 +2003,7 @@ __metadata:
20032003
tslib: 2.6.2
20042004
peerDependencies:
20052005
"@bfc/shared": "*"
2006-
checksum: 984e67c6cc13359b2415904ce8ab616960ebff71ca7066a491d5f9ac6b8fa299a6e005cbb0ef09a9d2248f9ea2404fde5d76eb7864bea9acc2190801198be3e1
2006+
checksum: f7684cb3a745ad13885dc745763b4b461d151536e0de52464a9f44a646c60d2ba6d07b96d5859c4e2a33bb0ef4654ed0f55d9901d3be02602219e3c706f4cac7
20072007
languageName: node
20082008
linkType: hard
20092009

extensions/azurePublishNew/yarn-berry.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,7 +2031,7 @@ __metadata:
20312031

20322032
"@bfc/indexers@file:../../Composer/packages/lib/indexers::locator=azure-publish-new%40workspace%3A.":
20332033
version: 0.0.0
2034-
resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=f8e51f&locator=azure-publish-new%40workspace%3A."
2034+
resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=5e1a82&locator=azure-publish-new%40workspace%3A."
20352035
dependencies:
20362036
"@microsoft/bf-lu": 4.15.0-dev.20210702.cbf708d
20372037
adaptive-expressions: ^4.18.0
@@ -2040,7 +2040,7 @@ __metadata:
20402040
tslib: 2.6.2
20412041
peerDependencies:
20422042
"@bfc/shared": "*"
2043-
checksum: 984e67c6cc13359b2415904ce8ab616960ebff71ca7066a491d5f9ac6b8fa299a6e005cbb0ef09a9d2248f9ea2404fde5d76eb7864bea9acc2190801198be3e1
2043+
checksum: f7684cb3a745ad13885dc745763b4b461d151536e0de52464a9f44a646c60d2ba6d07b96d5859c4e2a33bb0ef4654ed0f55d9901d3be02602219e3c706f4cac7
20442044
languageName: node
20452045
linkType: hard
20462046

0 commit comments

Comments
 (0)