Skip to content

Commit c008b4c

Browse files
committed
address code review issues
1 parent 506d9a9 commit c008b4c

4 files changed

Lines changed: 84 additions & 89 deletions

File tree

package-lock.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@
3333
"tsx": "^4.21.0",
3434
"turbo": "^2.8.1",
3535
"typescript": "^5.9.3"
36+
},
37+
"dependencies": {
38+
"@bufbuild/re2": "^0.4.0"
3639
}
3740
}

packages/cel/src/std/logic.ts

Lines changed: 78 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ import type { CelMap } from "../map.js";
2929
import { RE2JS } from "@bufbuild/re2";
3030

3131
export function matches(this: string, pattern: string): boolean {
32-
const re: RE2JS = RE2JS.compile(pattern);
33-
return re.test(this);
32+
return RE2JS.compile(pattern).test(this);
3433
}
3534

3635
function compareDuration(
@@ -86,99 +85,91 @@ const MAP = mapType(CelScalar.DYN, CelScalar.DYN);
8685
// biome-ignore format: table
8786
export default [
8887
// !
89-
celFunc(opc.LOGICAL_NOT, [BOOL], BOOL, (x) => !x),
88+
celFunc(opc.LOGICAL_NOT, [BOOL], BOOL, (x) => !x),
9089
// =
91-
celFunc(opc.EQUALS, [DYN, DYN], BOOL, equals),
92-
celFunc(opc.NOT_EQUALS, [DYN, DYN], BOOL, (l, r) => !equals(l, r)),
90+
celFunc(opc.EQUALS, [DYN, DYN], BOOL, equals),
91+
celFunc(opc.NOT_EQUALS, [DYN, DYN], BOOL, (l, r) => !equals(l, r)),
9392
// <
94-
celFunc(opc.LESS, [BOOL, BOOL], BOOL, (l, r) => l < r),
95-
celFunc(opc.LESS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) < 0),
96-
celFunc(opc.LESS, [DOUBLE, DOUBLE], BOOL, (l, r) => l < r),
97-
celFunc(opc.LESS, [STRING, STRING], BOOL, (l, r) => l < r),
98-
celFunc(opc.LESS, [INT, INT], BOOL, (l, r) => l < r),
99-
celFunc(opc.LESS, [INT, UINT], BOOL, (l, r) => l < r.value),
100-
celFunc(opc.LESS, [UINT, INT], BOOL, (l, r) => l.value < r),
101-
celFunc(opc.LESS, [UINT, UINT], BOOL, (l, r) => l.value < r.value),
93+
celFunc(opc.LESS, [BOOL, BOOL], BOOL, (l, r) => l < r),
94+
celFunc(opc.LESS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) < 0),
95+
celFunc(opc.LESS, [DOUBLE, DOUBLE], BOOL, (l, r) => l < r),
96+
celFunc(opc.LESS, [STRING, STRING], BOOL, (l, r) => l < r),
97+
celFunc(opc.LESS, [INT, INT], BOOL, (l, r) => l < r),
98+
celFunc(opc.LESS, [INT, UINT], BOOL, (l, r) => l < r.value),
99+
celFunc(opc.LESS, [UINT, INT], BOOL, (l, r) => l.value < r),
100+
celFunc(opc.LESS, [UINT, UINT], BOOL, (l, r) => l.value < r.value),
102101
// TODO investigate: ECMAScript relational operators support mixed bigint/number operands,
103102
// but removing the coercion to number here fails the conformance test "not_lt_dyn_int_big_lossy_double"
104-
celFunc(opc.LESS, [INT, DOUBLE], BOOL, (l, r) => Number(l) < r),
105-
celFunc(opc.LESS, [DOUBLE, INT], BOOL, (l, r) => l < Number(r)),
106-
celFunc(opc.LESS, [DOUBLE, UINT], BOOL, (l, r) => l < Number(r.value)),
107-
celFunc(opc.LESS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) < r),
108-
celFunc(opc.LESS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) < 0),
109-
celFunc(opc.LESS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) < 0),
103+
celFunc(opc.LESS, [INT, DOUBLE], BOOL, (l, r) => Number(l) < r),
104+
celFunc(opc.LESS, [DOUBLE, INT], BOOL, (l, r) => l < Number(r)),
105+
celFunc(opc.LESS, [DOUBLE, UINT], BOOL, (l, r) => l < Number(r.value)),
106+
celFunc(opc.LESS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) < r),
107+
celFunc(opc.LESS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) < 0),
108+
celFunc(opc.LESS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) < 0),
110109
// <=
111-
celFunc(opc.LESS_EQUALS, [BOOL, BOOL], BOOL, (l, r) => l <= r),
112-
celFunc(opc.LESS_EQUALS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) <= 0),
113-
celFunc(opc.LESS_EQUALS, [DOUBLE, DOUBLE], BOOL, (l, r) => l <= r),
114-
celFunc(opc.LESS_EQUALS, [STRING, STRING], BOOL, (l, r) => l <= r),
115-
celFunc(opc.LESS_EQUALS, [INT, INT], BOOL, (l, r) => l <= r),
116-
celFunc(opc.LESS_EQUALS, [INT, UINT], BOOL, (l, r) => l <= r.value),
117-
celFunc(opc.LESS_EQUALS, [UINT, INT], BOOL, (l, r) => l.value <= r),
118-
celFunc(opc.LESS_EQUALS, [UINT, UINT], BOOL, (l, r) => l.value <= r.value),
119-
celFunc(opc.LESS_EQUALS, [INT, DOUBLE], BOOL, (l, r) => Number(l) <= r),
120-
celFunc(opc.LESS_EQUALS, [DOUBLE, INT], BOOL, (l, r) => l <= Number(r)),
121-
celFunc(opc.LESS_EQUALS, [DOUBLE, UINT], BOOL, (l, r) => l <= Number(r.value)),
122-
celFunc(opc.LESS_EQUALS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) <= r),
123-
celFunc(opc.LESS_EQUALS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) <= 0),
124-
celFunc(opc.LESS_EQUALS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) <= 0),
110+
celFunc(opc.LESS_EQUALS, [BOOL, BOOL], BOOL, (l, r) => l <= r),
111+
celFunc(opc.LESS_EQUALS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) <= 0),
112+
celFunc(opc.LESS_EQUALS, [DOUBLE, DOUBLE], BOOL, (l, r) => l <= r),
113+
celFunc(opc.LESS_EQUALS, [STRING, STRING], BOOL, (l, r) => l <= r),
114+
celFunc(opc.LESS_EQUALS, [INT, INT], BOOL, (l, r) => l <= r),
115+
celFunc(opc.LESS_EQUALS, [INT, UINT], BOOL, (l, r) => l <= r.value),
116+
celFunc(opc.LESS_EQUALS, [UINT, INT], BOOL, (l, r) => l.value <= r),
117+
celFunc(opc.LESS_EQUALS, [UINT, UINT], BOOL, (l, r) => l.value <= r.value),
118+
celFunc(opc.LESS_EQUALS, [INT, DOUBLE], BOOL, (l, r) => Number(l) <= r),
119+
celFunc(opc.LESS_EQUALS, [DOUBLE, INT], BOOL, (l, r) => l <= Number(r)),
120+
celFunc(opc.LESS_EQUALS, [DOUBLE, UINT], BOOL, (l, r) => l <= Number(r.value)),
121+
celFunc(opc.LESS_EQUALS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) <= r),
122+
celFunc(opc.LESS_EQUALS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) <= 0),
123+
celFunc(opc.LESS_EQUALS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) <= 0),
125124
// >
126-
celFunc(opc.GREATER, [BOOL, BOOL], BOOL, (l, r) => l > r),
127-
celFunc(opc.GREATER, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) > 0),
128-
celFunc(opc.GREATER, [DOUBLE, DOUBLE], BOOL, (l, r) => l > r),
129-
celFunc(opc.GREATER, [STRING, STRING], BOOL, (l, r) => l > r),
130-
celFunc(opc.GREATER, [INT, INT], BOOL, (l, r) => l > r),
131-
celFunc(opc.GREATER, [INT, UINT], BOOL, (l, r) => l > r.value),
132-
celFunc(opc.GREATER, [UINT, INT], BOOL, (l, r) => l.value > r),
133-
celFunc(opc.GREATER, [UINT, UINT], BOOL, (l, r) => l.value > r.value),
134-
celFunc(opc.GREATER, [INT, DOUBLE], BOOL, (l, r) => Number(l) > r),
135-
celFunc(opc.GREATER, [DOUBLE, INT], BOOL, (l, r) => l > Number(r)),
136-
celFunc(opc.GREATER, [DOUBLE, UINT], BOOL, (l, r) => l > Number(r.value)),
137-
celFunc(opc.GREATER, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) > r),
138-
celFunc(opc.GREATER, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) > 0),
139-
celFunc(opc.GREATER, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) > 0),
125+
celFunc(opc.GREATER, [BOOL, BOOL], BOOL, (l, r) => l > r),
126+
celFunc(opc.GREATER, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) > 0),
127+
celFunc(opc.GREATER, [DOUBLE, DOUBLE], BOOL, (l, r) => l > r),
128+
celFunc(opc.GREATER, [STRING, STRING], BOOL, (l, r) => l > r),
129+
celFunc(opc.GREATER, [INT, INT], BOOL, (l, r) => l > r),
130+
celFunc(opc.GREATER, [INT, UINT], BOOL, (l, r) => l > r.value),
131+
celFunc(opc.GREATER, [UINT, INT], BOOL, (l, r) => l.value > r),
132+
celFunc(opc.GREATER, [UINT, UINT], BOOL, (l, r) => l.value > r.value),
133+
celFunc(opc.GREATER, [INT, DOUBLE], BOOL, (l, r) => Number(l) > r),
134+
celFunc(opc.GREATER, [DOUBLE, INT], BOOL, (l, r) => l > Number(r)),
135+
celFunc(opc.GREATER, [DOUBLE, UINT], BOOL, (l, r) => l > Number(r.value)),
136+
celFunc(opc.GREATER, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) > r),
137+
celFunc(opc.GREATER, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) > 0),
138+
celFunc(opc.GREATER, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) > 0),
140139
// >=
141-
celFunc(opc.GREATER_EQUALS, [BOOL, BOOL], BOOL, (l, r) => l >= r),
142-
celFunc(opc.GREATER_EQUALS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) >= 0),
143-
celFunc(opc.GREATER_EQUALS, [DOUBLE, DOUBLE], BOOL, (l, r) => l >= r),
144-
celFunc(opc.GREATER_EQUALS, [STRING, STRING], BOOL, (l, r) => l >= r),
145-
celFunc(opc.GREATER_EQUALS, [INT, INT], BOOL, (l, r) => l >= r),
146-
celFunc(opc.GREATER_EQUALS, [INT, UINT], BOOL, (l, r) => l >= r.value),
147-
celFunc(opc.GREATER_EQUALS, [UINT, INT], BOOL, (l, r) => l.value >= r),
148-
celFunc(opc.GREATER_EQUALS, [UINT, UINT], BOOL, (l, r) => l.value >= r.value),
149-
celFunc(opc.GREATER_EQUALS, [INT, DOUBLE], BOOL, (l, r) => Number(l) >= r),
150-
celFunc(opc.GREATER_EQUALS, [DOUBLE, INT], BOOL, (l, r) => l >= Number(r)),
151-
celFunc(opc.GREATER_EQUALS, [DOUBLE, UINT], BOOL, (l, r) => l >= Number(r.value)),
152-
celFunc(opc.GREATER_EQUALS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) >= r),
153-
celFunc(opc.GREATER_EQUALS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) >= 0),
154-
celFunc(opc.GREATER_EQUALS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) >= 0),
140+
celFunc(opc.GREATER_EQUALS, [BOOL, BOOL], BOOL, (l, r) => l >= r),
141+
celFunc(opc.GREATER_EQUALS, [BYTES, BYTES], BOOL, (l, r) => compareBytes(l, r) >= 0),
142+
celFunc(opc.GREATER_EQUALS, [DOUBLE, DOUBLE], BOOL, (l, r) => l >= r),
143+
celFunc(opc.GREATER_EQUALS, [STRING, STRING], BOOL, (l, r) => l >= r),
144+
celFunc(opc.GREATER_EQUALS, [INT, INT], BOOL, (l, r) => l >= r),
145+
celFunc(opc.GREATER_EQUALS, [INT, UINT], BOOL, (l, r) => l >= r.value),
146+
celFunc(opc.GREATER_EQUALS, [UINT, INT], BOOL, (l, r) => l.value >= r),
147+
celFunc(opc.GREATER_EQUALS, [UINT, UINT], BOOL, (l, r) => l.value >= r.value),
148+
celFunc(opc.GREATER_EQUALS, [INT, DOUBLE], BOOL, (l, r) => Number(l) >= r),
149+
celFunc(opc.GREATER_EQUALS, [DOUBLE, INT], BOOL, (l, r) => l >= Number(r)),
150+
celFunc(opc.GREATER_EQUALS, [DOUBLE, UINT], BOOL, (l, r) => l >= Number(r.value)),
151+
celFunc(opc.GREATER_EQUALS, [UINT, DOUBLE], BOOL, (l, r) => Number(l.value) >= r),
152+
celFunc(opc.GREATER_EQUALS, [DURATION, DURATION], BOOL, (l, r) => compareDuration(l, r) >= 0),
153+
celFunc(opc.GREATER_EQUALS, [TIMESTAMP, TIMESTAMP], BOOL, (l, r) => compareTimestamp(l, r) >= 0),
155154
// size
156-
celFunc(olc.SIZE, [BYTES], INT, (x) => BigInt(x.length)),
157-
celFunc(olc.SIZE, [LIST], INT, (x) => BigInt(x.size)),
158-
celFunc(olc.SIZE, [STRING], INT, (x) => BigInt([...x].length)),
159-
celFunc(olc.SIZE, [MAP], INT, (x) => BigInt(x.size)),
160-
celMethod(olc.SIZE, BYTES, [], INT, function () {
161-
return BigInt(this.length)
162-
}),
163-
celMethod(olc.SIZE, LIST, [], INT, function () {
164-
return BigInt(this.size)
165-
}),
166-
celMethod(olc.SIZE, STRING, [], INT, function () {
167-
return BigInt([...this].length)
168-
}),
169-
celMethod(olc.SIZE, MAP, [], INT, function () {
170-
return BigInt(this.size)
171-
}),
155+
celFunc(olc.SIZE, [BYTES], INT, (x) => BigInt(x.length)),
156+
celFunc(olc.SIZE, [LIST], INT, (x) => BigInt(x.size)),
157+
celFunc(olc.SIZE, [STRING], INT, (x) => BigInt([...x].length)),
158+
celFunc(olc.SIZE, [MAP], INT, (x) => BigInt(x.size)),
159+
celMethod(olc.SIZE, BYTES, [], INT, function () {return BigInt(this.length)}),
160+
celMethod(olc.SIZE, LIST, [], INT, function () {return BigInt(this.size)}),
161+
celMethod(olc.SIZE, STRING, [], INT, function () {return BigInt([...this].length)}),
162+
celMethod(olc.SIZE, MAP, [], INT, function () {return BigInt(this.size)}),
172163
// in
173-
celFunc(opc.IN, [DYN, LIST], BOOL, inList),
174-
celFunc(opc.IN, [STRING, MAP], BOOL, inMap),
175-
celFunc(opc.IN, [DOUBLE, MAP], BOOL, inMap),
176-
celFunc(opc.IN, [INT, MAP], BOOL, inMap),
177-
celFunc(opc.IN, [BOOL, MAP], BOOL, inMap),
178-
celFunc(opc.IN, [UINT, MAP], BOOL, inMap),
164+
celFunc(opc.IN, [DYN, LIST], BOOL, inList),
165+
celFunc(opc.IN, [STRING, MAP], BOOL, inMap),
166+
celFunc(opc.IN, [DOUBLE, MAP], BOOL, inMap),
167+
celFunc(opc.IN, [INT, MAP], BOOL, inMap),
168+
celFunc(opc.IN, [BOOL, MAP], BOOL, inMap),
169+
celFunc(opc.IN, [UINT, MAP], BOOL, inMap),
179170
// string.*
180-
celMethod(olc.CONTAINS, STRING, [STRING], BOOL, String.prototype.includes),
181-
celMethod(olc.ENDS_WITH, STRING, [STRING], BOOL, String.prototype.endsWith),
182-
celMethod(olc.STARTS_WITH, STRING, [STRING], BOOL, String.prototype.startsWith),
183-
celMethod(olc.MATCHES, STRING, [STRING], BOOL, matches),
171+
celMethod(olc.CONTAINS, STRING, [STRING], BOOL, String.prototype.includes),
172+
celMethod(olc.ENDS_WITH, STRING, [STRING], BOOL, String.prototype.endsWith),
173+
celMethod(olc.STARTS_WITH, STRING, [STRING], BOOL, String.prototype.startsWith),
174+
celMethod(olc.MATCHES, STRING, [STRING], BOOL, matches),
184175
];

packages/re2/.npmignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,3 @@ turbo.json
66
biome.json
77
dist/**/*.test.js
88
dist/**/*.test.d.ts
9-
dist/*/testing.js
10-
dist/*/testing.d.ts

0 commit comments

Comments
 (0)