befly 3.18.6 → 3.18.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/apis/api/list.js CHANGED
@@ -15,7 +15,7 @@ export default {
15
15
  const result = await befly.mysql.getList({
16
16
  table: "beflyApi",
17
17
  where: {
18
- $or: [{ name$like: `%${ctx.body.keyword}%` }, { path$like: `%${ctx.body.keyword}%` }]
18
+ $or: [{ name$like: ctx.body.keyword }, { path$like: ctx.body.keyword }]
19
19
  },
20
20
  orderBy: ["id#ASC"],
21
21
  page: ctx.body.page,
@@ -14,7 +14,7 @@ export default {
14
14
  const result = await befly.mysql.getList({
15
15
  table: "beflyDictType",
16
16
  where: {
17
- name$like: ctx.body.keyword ? `%${ctx.body.keyword}%` : undefined
17
+ name$like: ctx.body.keyword
18
18
  },
19
19
  orderBy: ["sort#ASC", "id#ASC"],
20
20
  page: ctx.body.page,
@@ -292,6 +292,21 @@ function compileOperatorNode(node, quoteIdent) {
292
292
  const escapedField = escapeField(node.field, quoteIdent);
293
293
  const operator = node.operator;
294
294
 
295
+ const buildLikeParam = (value, mode) => {
296
+ validateParam(value);
297
+ const text = String(value);
298
+
299
+ if (mode === "left") {
300
+ return `%${text}`;
301
+ }
302
+
303
+ if (mode === "right") {
304
+ return `${text}%`;
305
+ }
306
+
307
+ return `%${text}%`;
308
+ };
309
+
295
310
  switch (operator) {
296
311
  case "$ne":
297
312
  case "$not":
@@ -315,8 +330,14 @@ function compileOperatorNode(node, quoteIdent) {
315
330
  return { sql: `${escapedField} NOT IN (${placeholders})`, params: params };
316
331
  }
317
332
  case "$like":
318
- validateParam(node.value);
319
- return { sql: `${escapedField} LIKE ?`, params: [node.value] };
333
+ case "like":
334
+ return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "both")] };
335
+ case "$leftLike":
336
+ case "leftLike":
337
+ return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "left")] };
338
+ case "$rightLike":
339
+ case "rightLike":
340
+ return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "right")] };
320
341
  case "$notLike":
321
342
  validateParam(node.value);
322
343
  return { sql: `${escapedField} NOT LIKE ?`, params: [node.value] };
@@ -289,6 +289,17 @@ function buildOperatorNode(fieldName, operator, value) {
289
289
  return { type: "op", field: fieldName, operator: operator, value: value };
290
290
  }
291
291
  return null;
292
+ case "$like":
293
+ case "like":
294
+ case "$leftLike":
295
+ case "leftLike":
296
+ case "$rightLike":
297
+ case "rightLike":
298
+ if (isString(value) && value.trim() === "") {
299
+ return null;
300
+ }
301
+ validateParam(value);
302
+ return { type: "op", field: fieldName, operator: operator, value: value };
292
303
  default:
293
304
  validateParam(value);
294
305
  return { type: "op", field: fieldName, operator: operator, value: value };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "befly",
3
- "version": "3.18.6",
4
- "gitHead": "ba3a888f1f752b56c7290d73e83faa317d2d4982",
3
+ "version": "3.18.8",
4
+ "gitHead": "28fcd2cee85330bc97d228712c4cbb2252ee0a06",
5
5
  "private": false,
6
6
  "description": "Befly - 为 Bun 专属打造的 JavaScript API 接口框架核心引擎",
7
7
  "keywords": [