@wxn0brp/vql 0.3.6 → 0.3.7

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.
@@ -3,6 +3,14 @@ const opPrefix = {
3
3
  "+": "add",
4
4
  "~": "update",
5
5
  };
6
+ const operations = [
7
+ "add",
8
+ "find", "findOne",
9
+ "update", "updateOne",
10
+ "remove", "removeOne",
11
+ "updateOneOrAdd",
12
+ "checkCollection", "issetCollection",
13
+ ];
6
14
  /**
7
15
  * Extracts metadata from a query string, including database name, operation,
8
16
  * collection name, and the query body.
@@ -30,13 +38,17 @@ export function extractMeta(input) {
30
38
  return { db: split[0], op: "getCollections", collection: "", body: "" };
31
39
  // Handle cases like "db users" or "db users!"
32
40
  if (split.length === 2 && /^[A-Za-z]/.test(split[0])) {
33
- let op = split[0].endsWith("!") ? "findOne" : "find";
34
- return { db: split[0], op, collection: split[1].replace("!", ""), body: "" };
41
+ const data = extendedCollectionToData(split[1]);
42
+ return { db: split[0], op: data.op, collection: data.collection, body: "" };
35
43
  }
36
44
  // Handle cases like "db find users"
37
45
  if (split.length === 3 && /^[A-Za-z0-9_-]+$/.test(split[2])) {
38
46
  return { db: split[0], op: split[1], collection: split[2], body: "" };
39
47
  }
48
+ // Handle cases like "db update my.db.users s.name = 'John' u.name = 'Jane'"
49
+ if (split.length > 3 && operations.includes(split[1])) {
50
+ return { db: split[0], op: split[1], collection: split[2], body: split.slice(3).join(" ") };
51
+ }
40
52
  // Default operation and initialization
41
53
  const db = split.shift();
42
54
  let op = "find";
@@ -47,19 +59,9 @@ export function extractMeta(input) {
47
59
  [".", ":", "{"].some(c => split[1].includes(c)) // Check if query body is indicated by special character
48
60
  ) {
49
61
  let temp = split.shift();
50
- const firstChar = temp[0];
51
- const lastChar = temp[temp.length - 1];
52
- op = opPrefix[firstChar] || "find";
53
- if (op !== "find")
54
- temp = temp.slice(1); // Remove operation prefix if not "find"
55
- if (lastChar === "!") {
56
- if (op !== "add")
57
- op += "One"; // Adjust operation for singular cases
58
- collection = temp.slice(0, -1);
59
- }
60
- else {
61
- collection = temp;
62
- }
62
+ const data = extendedCollectionToData(temp);
63
+ op = data.op;
64
+ collection = data.collection;
63
65
  }
64
66
  else {
65
67
  op = split.shift(); // Assume second word is operation
@@ -69,4 +71,20 @@ export function extractMeta(input) {
69
71
  body = split.join(" ");
70
72
  return { db, op, collection, body };
71
73
  }
74
+ function extendedCollectionToData(collection) {
75
+ const firstChar = collection[0];
76
+ const lastChar = collection[collection.length - 1];
77
+ let op = "find";
78
+ let collectionName = collection;
79
+ if (opPrefix[firstChar]) {
80
+ op = opPrefix[firstChar];
81
+ collectionName = collectionName.slice(1);
82
+ }
83
+ if (lastChar === "!") {
84
+ if (op !== "add")
85
+ op += "One";
86
+ collectionName = collectionName.slice(0, -1);
87
+ }
88
+ return { op, collection: collectionName };
89
+ }
72
90
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/cpu/string/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/cpu/string/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wxn0brp/vql",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "main": "dist/index.js",
5
5
  "author": "wxn0brP",
6
6
  "license": "MIT",