diff --git a/packages/schema/tests/schema/zmodel-generator.test.ts b/packages/schema/tests/schema/zmodel-generator.test.ts index a58cfd1a7..c07f24a45 100644 --- a/packages/schema/tests/schema/zmodel-generator.test.ts +++ b/packages/schema/tests/schema/zmodel-generator.test.ts @@ -107,11 +107,11 @@ describe('ZModel Generator Tests', () => { 'User' ); - checkAttribute(model.attributes[0], `@@allow('read', posts ? [author == auth()])`); + checkAttribute(model.attributes[0], `@@allow('read', posts?[author == auth()])`); checkAttribute(model.attributes[1], `@@deny('read', name == '123' && (role == USER || name == '456'))`); checkAttribute( model.attributes[2], - `@@allow('delete', posts ? [author == auth() && (level < 10 || author.role == USER) && !author.deleted])` + `@@allow('delete', posts?[author == auth() && (level < 10 || author.role == USER) && !author.deleted])` ); }); }); diff --git a/packages/sdk/src/zmodel-code-generator.ts b/packages/sdk/src/zmodel-code-generator.ts index dac743f79..46cc2010f 100644 --- a/packages/sdk/src/zmodel-code-generator.ts +++ b/packages/sdk/src/zmodel-code-generator.ts @@ -245,8 +245,8 @@ ${ast.fields.map((x) => this.indent + this.generate(x)).join('\n')}${ const { left: isLeftParenthesis, right: isRightParenthesis } = this.isParenthesesNeededForBinaryExpr(ast); return `${isLeftParenthesis ? '(' : ''}${this.generate(ast.left)}${isLeftParenthesis ? ')' : ''}${ - this.binaryExprSpace - }${operator}${this.binaryExprSpace}${isRightParenthesis ? '(' : ''}${ + isCollectionPredicate ? '' : this.binaryExprSpace + }${operator}${isCollectionPredicate ? '' : this.binaryExprSpace}${isRightParenthesis ? '(' : ''}${ isCollectionPredicate ? `[${rightExpr}]` : rightExpr }${isRightParenthesis ? ')' : ''}`; }