@cloudbase/database 1.4.1 → 1.4.2

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.
Files changed (195) hide show
  1. package/.trunk/configs/.markdownlint.yaml +10 -0
  2. package/.trunk/trunk.yaml +26 -0
  3. package/dist/commonjs/ObjectId/index.d.ts +11 -11
  4. package/dist/commonjs/ObjectId/index.js +21 -21
  5. package/dist/commonjs/aggregate.d.ts +29 -29
  6. package/dist/commonjs/aggregate.js +124 -124
  7. package/dist/commonjs/collection.d.ts +17 -17
  8. package/dist/commonjs/collection.js +72 -72
  9. package/dist/commonjs/command.d.ts +175 -175
  10. package/dist/commonjs/command.js +285 -285
  11. package/dist/commonjs/commands/logic.d.ts +24 -24
  12. package/dist/commonjs/commands/logic.js +79 -79
  13. package/dist/commonjs/commands/query.d.ts +73 -73
  14. package/dist/commonjs/commands/query.js +147 -147
  15. package/dist/commonjs/commands/update.d.ts +29 -29
  16. package/dist/commonjs/commands/update.js +49 -49
  17. package/dist/commonjs/config/app.config.d.ts +6 -6
  18. package/dist/commonjs/config/app.config.js +7 -7
  19. package/dist/commonjs/config/error.config.d.ts +3 -3
  20. package/dist/commonjs/config/error.config.js +15 -15
  21. package/dist/commonjs/const/code.d.ts +34 -34
  22. package/dist/commonjs/const/code.js +36 -36
  23. package/dist/commonjs/constant.d.ts +54 -54
  24. package/dist/commonjs/constant.js +76 -76
  25. package/dist/commonjs/document.d.ts +14 -14
  26. package/dist/commonjs/document.js +217 -219
  27. package/dist/commonjs/geo/index.d.ts +6 -6
  28. package/dist/commonjs/geo/index.js +11 -11
  29. package/dist/commonjs/geo/interface.d.ts +24 -24
  30. package/dist/commonjs/geo/interface.js +2 -2
  31. package/dist/commonjs/geo/lineString.d.ts +19 -19
  32. package/dist/commonjs/geo/lineString.js +57 -57
  33. package/dist/commonjs/geo/multiLineString.d.ts +18 -18
  34. package/dist/commonjs/geo/multiLineString.js +56 -56
  35. package/dist/commonjs/geo/multiPoint.d.ts +18 -18
  36. package/dist/commonjs/geo/multiPoint.js +50 -50
  37. package/dist/commonjs/geo/multiPolygon.d.ts +18 -18
  38. package/dist/commonjs/geo/multiPolygon.js +62 -62
  39. package/dist/commonjs/geo/point.d.ts +19 -19
  40. package/dist/commonjs/geo/point.js +43 -43
  41. package/dist/commonjs/geo/polygon.d.ts +19 -19
  42. package/dist/commonjs/geo/polygon.js +70 -70
  43. package/dist/commonjs/helper/symbol.d.ts +15 -15
  44. package/dist/commonjs/helper/symbol.js +20 -20
  45. package/dist/commonjs/index.d.ts +50 -50
  46. package/dist/commonjs/index.js +41 -41
  47. package/dist/commonjs/operator-map.d.ts +4 -4
  48. package/dist/commonjs/operator-map.js +23 -23
  49. package/dist/commonjs/query.d.ts +38 -38
  50. package/dist/commonjs/query.js +249 -247
  51. package/dist/commonjs/realtime/error.d.ts +7 -7
  52. package/dist/commonjs/realtime/error.js +11 -11
  53. package/dist/commonjs/realtime/listener.d.ts +14 -14
  54. package/dist/commonjs/realtime/listener.js +17 -17
  55. package/dist/commonjs/realtime/message.d.ts +3 -3
  56. package/dist/commonjs/realtime/message.js +10 -10
  57. package/dist/commonjs/realtime/snapshot.d.ts +16 -16
  58. package/dist/commonjs/realtime/snapshot.js +42 -42
  59. package/dist/commonjs/realtime/virtual-websocket-client.d.ts +63 -63
  60. package/dist/commonjs/realtime/virtual-websocket-client.js +736 -736
  61. package/dist/commonjs/realtime/websocket-client.d.ts +78 -78
  62. package/dist/commonjs/realtime/websocket-client.js +567 -567
  63. package/dist/commonjs/realtime/ws-event.d.ts +126 -126
  64. package/dist/commonjs/realtime/ws-event.js +139 -139
  65. package/dist/commonjs/regexp/index.d.ts +18 -18
  66. package/dist/commonjs/regexp/index.js +30 -30
  67. package/dist/commonjs/serializer/common.d.ts +11 -11
  68. package/dist/commonjs/serializer/common.js +90 -90
  69. package/dist/commonjs/serializer/datatype.d.ts +7 -7
  70. package/dist/commonjs/serializer/datatype.js +99 -99
  71. package/dist/commonjs/serializer/query.d.ts +8 -8
  72. package/dist/commonjs/serializer/query.js +254 -254
  73. package/dist/commonjs/serializer/update.d.ts +16 -16
  74. package/dist/commonjs/serializer/update.js +142 -142
  75. package/dist/commonjs/serverDate/index.d.ts +13 -13
  76. package/dist/commonjs/serverDate/index.js +23 -23
  77. package/dist/commonjs/transaction/index.d.ts +30 -30
  78. package/dist/commonjs/transaction/index.js +105 -105
  79. package/dist/commonjs/transaction.d.ts +42 -42
  80. package/dist/commonjs/transaction.js +126 -126
  81. package/dist/commonjs/typings/index.d.ts +45 -45
  82. package/dist/commonjs/typings/index.js +2 -2
  83. package/dist/commonjs/typings/realtime.d.ts +219 -219
  84. package/dist/commonjs/typings/realtime.js +2 -2
  85. package/dist/commonjs/util.d.ts +9 -9
  86. package/dist/commonjs/util.js +101 -101
  87. package/dist/commonjs/utils/error.d.ts +37 -37
  88. package/dist/commonjs/utils/error.js +55 -55
  89. package/dist/commonjs/utils/symbol.d.ts +8 -8
  90. package/dist/commonjs/utils/symbol.js +39 -39
  91. package/dist/commonjs/utils/type.d.ts +13 -13
  92. package/dist/commonjs/utils/type.js +22 -22
  93. package/dist/commonjs/utils/utils.d.ts +20 -19
  94. package/dist/commonjs/utils/utils.js +59 -59
  95. package/dist/commonjs/validate.d.ts +1 -1
  96. package/dist/commonjs/validate.js +155 -155
  97. package/package.json +2 -3
  98. package/src/document.ts +1 -3
  99. package/src/query.ts +1 -0
  100. package/dist/esm/ObjectId/index.d.ts +0 -11
  101. package/dist/esm/ObjectId/index.js +0 -17
  102. package/dist/esm/aggregate.d.ts +0 -29
  103. package/dist/esm/aggregate.js +0 -121
  104. package/dist/esm/collection.d.ts +0 -17
  105. package/dist/esm/collection.js +0 -69
  106. package/dist/esm/command.d.ts +0 -175
  107. package/dist/esm/command.js +0 -281
  108. package/dist/esm/commands/logic.d.ts +0 -24
  109. package/dist/esm/commands/logic.js +0 -74
  110. package/dist/esm/commands/query.d.ts +0 -73
  111. package/dist/esm/commands/query.js +0 -141
  112. package/dist/esm/commands/update.d.ts +0 -29
  113. package/dist/esm/commands/update.js +0 -44
  114. package/dist/esm/config/app.config.d.ts +0 -6
  115. package/dist/esm/config/app.config.js +0 -5
  116. package/dist/esm/config/error.config.d.ts +0 -3
  117. package/dist/esm/config/error.config.js +0 -13
  118. package/dist/esm/const/code.d.ts +0 -34
  119. package/dist/esm/const/code.js +0 -34
  120. package/dist/esm/constant.d.ts +0 -54
  121. package/dist/esm/constant.js +0 -67
  122. package/dist/esm/document.d.ts +0 -14
  123. package/dist/esm/document.js +0 -216
  124. package/dist/esm/geo/index.d.ts +0 -6
  125. package/dist/esm/geo/index.js +0 -6
  126. package/dist/esm/geo/interface.d.ts +0 -24
  127. package/dist/esm/geo/interface.js +0 -0
  128. package/dist/esm/geo/lineString.d.ts +0 -19
  129. package/dist/esm/geo/lineString.js +0 -54
  130. package/dist/esm/geo/multiLineString.d.ts +0 -18
  131. package/dist/esm/geo/multiLineString.js +0 -53
  132. package/dist/esm/geo/multiPoint.d.ts +0 -18
  133. package/dist/esm/geo/multiPoint.js +0 -47
  134. package/dist/esm/geo/multiPolygon.d.ts +0 -18
  135. package/dist/esm/geo/multiPolygon.js +0 -59
  136. package/dist/esm/geo/point.d.ts +0 -19
  137. package/dist/esm/geo/point.js +0 -40
  138. package/dist/esm/geo/polygon.d.ts +0 -19
  139. package/dist/esm/geo/polygon.js +0 -67
  140. package/dist/esm/helper/symbol.d.ts +0 -15
  141. package/dist/esm/helper/symbol.js +0 -15
  142. package/dist/esm/index.d.ts +0 -50
  143. package/dist/esm/index.js +0 -35
  144. package/dist/esm/operator-map.d.ts +0 -4
  145. package/dist/esm/operator-map.js +0 -20
  146. package/dist/esm/query.d.ts +0 -38
  147. package/dist/esm/query.js +0 -244
  148. package/dist/esm/realtime/error.d.ts +0 -7
  149. package/dist/esm/realtime/error.js +0 -8
  150. package/dist/esm/realtime/listener.d.ts +0 -14
  151. package/dist/esm/realtime/listener.js +0 -14
  152. package/dist/esm/realtime/message.d.ts +0 -3
  153. package/dist/esm/realtime/message.js +0 -6
  154. package/dist/esm/realtime/snapshot.d.ts +0 -16
  155. package/dist/esm/realtime/snapshot.js +0 -39
  156. package/dist/esm/realtime/virtual-websocket-client.d.ts +0 -63
  157. package/dist/esm/realtime/virtual-websocket-client.js +0 -733
  158. package/dist/esm/realtime/websocket-client.d.ts +0 -78
  159. package/dist/esm/realtime/websocket-client.js +0 -564
  160. package/dist/esm/realtime/ws-event.d.ts +0 -126
  161. package/dist/esm/realtime/ws-event.js +0 -137
  162. package/dist/esm/regexp/index.d.ts +0 -18
  163. package/dist/esm/regexp/index.js +0 -26
  164. package/dist/esm/serializer/common.d.ts +0 -11
  165. package/dist/esm/serializer/common.js +0 -82
  166. package/dist/esm/serializer/datatype.d.ts +0 -7
  167. package/dist/esm/serializer/datatype.js +0 -95
  168. package/dist/esm/serializer/query.d.ts +0 -8
  169. package/dist/esm/serializer/query.js +0 -251
  170. package/dist/esm/serializer/update.d.ts +0 -16
  171. package/dist/esm/serializer/update.js +0 -139
  172. package/dist/esm/serverDate/index.d.ts +0 -13
  173. package/dist/esm/serverDate/index.js +0 -19
  174. package/dist/esm/transaction/index.d.ts +0 -30
  175. package/dist/esm/transaction/index.js +0 -100
  176. package/dist/esm/transaction.d.ts +0 -42
  177. package/dist/esm/transaction.js +0 -121
  178. package/dist/esm/typings/index.d.ts +0 -45
  179. package/dist/esm/typings/index.js +0 -0
  180. package/dist/esm/typings/realtime.d.ts +0 -219
  181. package/dist/esm/typings/realtime.js +0 -0
  182. package/dist/esm/util.d.ts +0 -9
  183. package/dist/esm/util.js +0 -98
  184. package/dist/esm/utils/error.d.ts +0 -37
  185. package/dist/esm/utils/error.js +0 -49
  186. package/dist/esm/utils/msg.d.ts +0 -0
  187. package/dist/esm/utils/msg.js +0 -0
  188. package/dist/esm/utils/symbol.d.ts +0 -8
  189. package/dist/esm/utils/symbol.js +0 -36
  190. package/dist/esm/utils/type.d.ts +0 -13
  191. package/dist/esm/utils/type.js +0 -20
  192. package/dist/esm/utils/utils.d.ts +0 -19
  193. package/dist/esm/utils/utils.js +0 -55
  194. package/dist/esm/validate.d.ts +0 -1
  195. package/dist/esm/validate.js +0 -152
@@ -0,0 +1,10 @@
1
+ # Autoformatter friendly markdownlint config (all formatting rules disabled)
2
+ default: true
3
+ blank_lines: false
4
+ bullet: false
5
+ html: false
6
+ indentation: false
7
+ line_length: false
8
+ spaces: false
9
+ url: false
10
+ whitespace: false
@@ -0,0 +1,26 @@
1
+ version: 0.1
2
+ cli:
3
+ version: 1.4.1
4
+ plugins:
5
+ sources:
6
+ - id: trunk
7
+ ref: v0.0.10
8
+ uri: https://github.com/trunk-io/plugins
9
+ lint:
10
+ enabled:
11
+ - eslint@8.33.0
12
+ - markdownlint@0.33.0
13
+ - git-diff-check
14
+ - gitleaks@8.15.3
15
+ - prettier@2.8.4
16
+ runtimes:
17
+ enabled:
18
+ - go@1.18.3
19
+ - node@18.12.1
20
+ actions:
21
+ disabled:
22
+ - trunk-announce
23
+ - trunk-check-pre-push
24
+ - trunk-fmt-pre-commit
25
+ enabled:
26
+ - trunk-upgrade-available
@@ -1,11 +1,11 @@
1
- export declare class ObjectId {
2
- id: string;
3
- constructor({ id }?: {
4
- id?: string;
5
- });
6
- readonly _internalType: import("../utils/symbol").InternalSymbol;
7
- parse(): {
8
- $oid: string;
9
- };
10
- }
11
- export declare function ObjectIdConstructor(opt: any): ObjectId;
1
+ export declare class ObjectId {
2
+ id: string;
3
+ constructor({ id }?: {
4
+ id?: string;
5
+ });
6
+ readonly _internalType: import("../utils/symbol").InternalSymbol;
7
+ parse(): {
8
+ $oid: string;
9
+ };
10
+ }
11
+ export declare function ObjectIdConstructor(opt: any): ObjectId;
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const symbol_1 = require("../helper/symbol");
4
- class ObjectId {
5
- constructor({ id = '' } = {}) {
6
- this.id = id;
7
- }
8
- get _internalType() {
9
- return symbol_1.SYMBOL_OBJECTID;
10
- }
11
- parse() {
12
- return {
13
- $oid: this.id
14
- };
15
- }
16
- }
17
- exports.ObjectId = ObjectId;
18
- function ObjectIdConstructor(opt) {
19
- return new ObjectId(opt);
20
- }
21
- exports.ObjectIdConstructor = ObjectIdConstructor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const symbol_1 = require("../helper/symbol");
4
+ class ObjectId {
5
+ constructor({ id = '' } = {}) {
6
+ this.id = id;
7
+ }
8
+ get _internalType() {
9
+ return symbol_1.SYMBOL_OBJECTID;
10
+ }
11
+ parse() {
12
+ return {
13
+ $oid: this.id
14
+ };
15
+ }
16
+ }
17
+ exports.ObjectId = ObjectId;
18
+ function ObjectIdConstructor(opt) {
19
+ return new ObjectId(opt);
20
+ }
21
+ exports.ObjectIdConstructor = ObjectIdConstructor;
@@ -1,29 +1,29 @@
1
- export default class Aggregation {
2
- _db: any;
3
- _request: any;
4
- _stages: any[];
5
- _collectionName: string;
6
- constructor(db?: any, collectionName?: any, rawPipeline?: any);
7
- end(): Promise<any>;
8
- unwrap(): any[];
9
- done(): {
10
- [x: number]: any;
11
- }[];
12
- _pipe(stage: any, param: any, raw?: boolean): this;
13
- addFields(param: any): this;
14
- bucket(param: any): this;
15
- bucketAuto(param: any): this;
16
- count(param: any): this;
17
- geoNear(param: any): this;
18
- group(param: any): this;
19
- limit(param: any): this;
20
- match(param: any): this;
21
- project(param: any): this;
22
- lookup(param: any): this;
23
- replaceRoot(param: any): this;
24
- sample(param: any): this;
25
- skip(param: any): this;
26
- sort(param: any): this;
27
- sortByCount(param: any): this;
28
- unwind(param: any): this;
29
- }
1
+ export default class Aggregation {
2
+ _db: any;
3
+ _request: any;
4
+ _stages: any[];
5
+ _collectionName: string;
6
+ constructor(db?: any, collectionName?: any, rawPipeline?: any);
7
+ end(): Promise<any>;
8
+ unwrap(): any[];
9
+ done(): {
10
+ [x: number]: any;
11
+ }[];
12
+ _pipe(stage: any, param: any, raw?: boolean): this;
13
+ addFields(param: any): this;
14
+ bucket(param: any): this;
15
+ bucketAuto(param: any): this;
16
+ count(param: any): this;
17
+ geoNear(param: any): this;
18
+ group(param: any): this;
19
+ limit(param: any): this;
20
+ match(param: any): this;
21
+ project(param: any): this;
22
+ lookup(param: any): this;
23
+ replaceRoot(param: any): this;
24
+ sample(param: any): this;
25
+ skip(param: any): this;
26
+ sort(param: any): this;
27
+ sortByCount(param: any): this;
28
+ unwind(param: any): this;
29
+ }
@@ -1,124 +1,124 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("./index");
4
- const bson_1 = require("bson");
5
- const query_1 = require("./serializer/query");
6
- const utils_1 = require("./utils/utils");
7
- const type_1 = require("./utils/type");
8
- const validate_1 = require("./validate");
9
- const point_1 = require("./geo/point");
10
- class Aggregation {
11
- constructor(db, collectionName, rawPipeline) {
12
- this._stages = [];
13
- if (db && collectionName) {
14
- this._db = db;
15
- this._request = new index_1.Db.reqClass(this._db.config);
16
- this._collectionName = collectionName;
17
- if (rawPipeline && rawPipeline.length > 0) {
18
- rawPipeline.forEach((stage) => {
19
- validate_1.Validate.isValidAggregation(stage);
20
- const stageName = Object.keys(stage)[0];
21
- this._pipe(stageName, stage[stageName], true);
22
- });
23
- }
24
- }
25
- }
26
- async end() {
27
- if (!this._collectionName || !this._db) {
28
- throw new Error('Aggregation pipeline cannot send request');
29
- }
30
- const result = await this._request.send('database.aggregateDocuments', {
31
- collectionName: this._collectionName,
32
- stages: this._stages
33
- });
34
- if (result && result.data && result.data.list) {
35
- return {
36
- requestId: result.requestId,
37
- data: result.data.list.map(bson_1.EJSON.parse)
38
- };
39
- }
40
- return result;
41
- }
42
- unwrap() {
43
- return this._stages;
44
- }
45
- done() {
46
- return this._stages.map(({ stageKey, stageValue }) => {
47
- return {
48
- [stageKey]: JSON.parse(stageValue)
49
- };
50
- });
51
- }
52
- _pipe(stage, param, raw = false) {
53
- let transformParam = '';
54
- if (type_1.getType(param) === 'object') {
55
- transformParam = utils_1.stringifyByEJSON(param);
56
- }
57
- else {
58
- transformParam = JSON.stringify(param);
59
- }
60
- this._stages.push({
61
- stageKey: raw ? stage : `$${stage}`,
62
- stageValue: transformParam
63
- });
64
- return this;
65
- }
66
- addFields(param) {
67
- return this._pipe('addFields', param);
68
- }
69
- bucket(param) {
70
- return this._pipe('bucket', param);
71
- }
72
- bucketAuto(param) {
73
- return this._pipe('bucketAuto', param);
74
- }
75
- count(param) {
76
- return this._pipe('count', param);
77
- }
78
- geoNear(param) {
79
- if (param.query) {
80
- param.query = query_1.QuerySerializer.encode(param.query);
81
- }
82
- if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
83
- param.distanceMultiplier = param.distanceMultiplier;
84
- }
85
- if (param.near) {
86
- param.near = new point_1.Point(param.near.longitude, param.near.latitude).toJSON();
87
- }
88
- return this._pipe('geoNear', param);
89
- }
90
- group(param) {
91
- return this._pipe('group', param);
92
- }
93
- limit(param) {
94
- return this._pipe('limit', param);
95
- }
96
- match(param) {
97
- return this._pipe('match', query_1.QuerySerializer.encode(param));
98
- }
99
- project(param) {
100
- return this._pipe('project', param);
101
- }
102
- lookup(param) {
103
- return this._pipe('lookup', param);
104
- }
105
- replaceRoot(param) {
106
- return this._pipe('replaceRoot', param);
107
- }
108
- sample(param) {
109
- return this._pipe('sample', param);
110
- }
111
- skip(param) {
112
- return this._pipe('skip', param);
113
- }
114
- sort(param) {
115
- return this._pipe('sort', param);
116
- }
117
- sortByCount(param) {
118
- return this._pipe('sortByCount', param);
119
- }
120
- unwind(param) {
121
- return this._pipe('unwind', param);
122
- }
123
- }
124
- exports.default = Aggregation;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
4
+ const bson_1 = require("bson");
5
+ const query_1 = require("./serializer/query");
6
+ const utils_1 = require("./utils/utils");
7
+ const type_1 = require("./utils/type");
8
+ const validate_1 = require("./validate");
9
+ const point_1 = require("./geo/point");
10
+ class Aggregation {
11
+ constructor(db, collectionName, rawPipeline) {
12
+ this._stages = [];
13
+ if (db && collectionName) {
14
+ this._db = db;
15
+ this._request = new index_1.Db.reqClass(this._db.config);
16
+ this._collectionName = collectionName;
17
+ if (rawPipeline && rawPipeline.length > 0) {
18
+ rawPipeline.forEach((stage) => {
19
+ validate_1.Validate.isValidAggregation(stage);
20
+ const stageName = Object.keys(stage)[0];
21
+ this._pipe(stageName, stage[stageName], true);
22
+ });
23
+ }
24
+ }
25
+ }
26
+ async end() {
27
+ if (!this._collectionName || !this._db) {
28
+ throw new Error('Aggregation pipeline cannot send request');
29
+ }
30
+ const result = await this._request.send('database.aggregateDocuments', {
31
+ collectionName: this._collectionName,
32
+ stages: this._stages
33
+ });
34
+ if (result && result.data && result.data.list) {
35
+ return {
36
+ requestId: result.requestId,
37
+ data: result.data.list.map(bson_1.EJSON.parse)
38
+ };
39
+ }
40
+ return result;
41
+ }
42
+ unwrap() {
43
+ return this._stages;
44
+ }
45
+ done() {
46
+ return this._stages.map(({ stageKey, stageValue }) => {
47
+ return {
48
+ [stageKey]: JSON.parse(stageValue)
49
+ };
50
+ });
51
+ }
52
+ _pipe(stage, param, raw = false) {
53
+ let transformParam = '';
54
+ if (type_1.getType(param) === 'object') {
55
+ transformParam = utils_1.stringifyByEJSON(param);
56
+ }
57
+ else {
58
+ transformParam = JSON.stringify(param);
59
+ }
60
+ this._stages.push({
61
+ stageKey: raw ? stage : `$${stage}`,
62
+ stageValue: transformParam
63
+ });
64
+ return this;
65
+ }
66
+ addFields(param) {
67
+ return this._pipe('addFields', param);
68
+ }
69
+ bucket(param) {
70
+ return this._pipe('bucket', param);
71
+ }
72
+ bucketAuto(param) {
73
+ return this._pipe('bucketAuto', param);
74
+ }
75
+ count(param) {
76
+ return this._pipe('count', param);
77
+ }
78
+ geoNear(param) {
79
+ if (param.query) {
80
+ param.query = query_1.QuerySerializer.encode(param.query);
81
+ }
82
+ if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
83
+ param.distanceMultiplier = param.distanceMultiplier;
84
+ }
85
+ if (param.near) {
86
+ param.near = new point_1.Point(param.near.longitude, param.near.latitude).toJSON();
87
+ }
88
+ return this._pipe('geoNear', param);
89
+ }
90
+ group(param) {
91
+ return this._pipe('group', param);
92
+ }
93
+ limit(param) {
94
+ return this._pipe('limit', param);
95
+ }
96
+ match(param) {
97
+ return this._pipe('match', query_1.QuerySerializer.encode(param));
98
+ }
99
+ project(param) {
100
+ return this._pipe('project', param);
101
+ }
102
+ lookup(param) {
103
+ return this._pipe('lookup', param);
104
+ }
105
+ replaceRoot(param) {
106
+ return this._pipe('replaceRoot', param);
107
+ }
108
+ sample(param) {
109
+ return this._pipe('sample', param);
110
+ }
111
+ skip(param) {
112
+ return this._pipe('skip', param);
113
+ }
114
+ sort(param) {
115
+ return this._pipe('sort', param);
116
+ }
117
+ sortByCount(param) {
118
+ return this._pipe('sortByCount', param);
119
+ }
120
+ unwind(param) {
121
+ return this._pipe('unwind', param);
122
+ }
123
+ }
124
+ exports.default = Aggregation;
@@ -1,17 +1,17 @@
1
- import { DocumentReference } from './document';
2
- import { Query, QueryOption, UpdateOption } from './query';
3
- import Aggregation from './aggregate';
4
- export declare class CollectionReference extends Query {
5
- protected _transactionId: string;
6
- readonly name: string;
7
- doc(docID: string | number): DocumentReference;
8
- add(data: any): Promise<{
9
- ids?: string[];
10
- id?: string;
11
- inserted?: number;
12
- ok?: number;
13
- requestId: string;
14
- }>;
15
- aggregate(rawPipeline?: object[]): Aggregation;
16
- options(apiOptions: QueryOption | UpdateOption): CollectionReference;
17
- }
1
+ import { DocumentReference } from './document';
2
+ import { Query, QueryOption, UpdateOption } from './query';
3
+ import Aggregation from './aggregate';
4
+ export declare class CollectionReference extends Query {
5
+ protected _transactionId: string;
6
+ readonly name: string;
7
+ doc(docID: string | number): DocumentReference;
8
+ add(data: any): Promise<{
9
+ ids?: string[];
10
+ id?: string;
11
+ inserted?: number;
12
+ ok?: number;
13
+ requestId: string;
14
+ }>;
15
+ aggregate(rawPipeline?: object[]): Aggregation;
16
+ options(apiOptions: QueryOption | UpdateOption): CollectionReference;
17
+ }
@@ -1,72 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const document_1 = require("./document");
4
- const query_1 = require("./query");
5
- const aggregate_1 = require("./aggregate");
6
- const datatype_1 = require("./serializer/datatype");
7
- const utils_1 = require("./utils/utils");
8
- const validate_1 = require("./validate");
9
- const type_1 = require("./utils/type");
10
- class CollectionReference extends query_1.Query {
11
- constructor(db, coll, apiOptions, transactionId) {
12
- super(db, coll, '', apiOptions, transactionId);
13
- if (transactionId) {
14
- this._transactionId = transactionId;
15
- }
16
- }
17
- get name() {
18
- return this._coll;
19
- }
20
- doc(docID) {
21
- if (typeof docID !== 'string' && typeof docID !== 'number') {
22
- throw new Error('docId必须为字符串或数字');
23
- }
24
- return new document_1.DocumentReference(this._db, this._coll, this._apiOptions, docID, this._transactionId);
25
- }
26
- async add(data) {
27
- let transformData = data;
28
- if (!type_1.isArray(data)) {
29
- transformData = [data];
30
- }
31
- transformData = transformData.map(item => {
32
- return utils_1.stringifyByEJSON(datatype_1.serialize(item));
33
- });
34
- let params = {
35
- collectionName: this._coll,
36
- data: transformData
37
- };
38
- if (this._transactionId) {
39
- params.transactionId = this._transactionId;
40
- }
41
- const res = await this._request.send('database.insertDocument', params, utils_1.getReqOpts(this._apiOptions));
42
- if (res.code) {
43
- return res;
44
- }
45
- if (!type_1.isArray(data)) {
46
- if (this._transactionId) {
47
- return {
48
- inserted: 1,
49
- ok: 1,
50
- id: res.data.insertedIds[0],
51
- requestId: res.requestId
52
- };
53
- }
54
- return {
55
- id: res.data.insertedIds[0],
56
- requestId: res.requestId
57
- };
58
- }
59
- return {
60
- ids: res.data.insertedIds,
61
- requestId: res.requestId
62
- };
63
- }
64
- aggregate(rawPipeline = []) {
65
- return new aggregate_1.default(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);
66
- }
67
- options(apiOptions) {
68
- validate_1.Validate.isValidOptions(apiOptions);
69
- return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);
70
- }
71
- }
72
- exports.CollectionReference = CollectionReference;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const document_1 = require("./document");
4
+ const query_1 = require("./query");
5
+ const aggregate_1 = require("./aggregate");
6
+ const datatype_1 = require("./serializer/datatype");
7
+ const utils_1 = require("./utils/utils");
8
+ const validate_1 = require("./validate");
9
+ const type_1 = require("./utils/type");
10
+ class CollectionReference extends query_1.Query {
11
+ constructor(db, coll, apiOptions, transactionId) {
12
+ super(db, coll, '', apiOptions, transactionId);
13
+ if (transactionId) {
14
+ this._transactionId = transactionId;
15
+ }
16
+ }
17
+ get name() {
18
+ return this._coll;
19
+ }
20
+ doc(docID) {
21
+ if (typeof docID !== 'string' && typeof docID !== 'number') {
22
+ throw new Error('docId必须为字符串或数字');
23
+ }
24
+ return new document_1.DocumentReference(this._db, this._coll, this._apiOptions, docID, this._transactionId);
25
+ }
26
+ async add(data) {
27
+ let transformData = data;
28
+ if (!type_1.isArray(data)) {
29
+ transformData = [data];
30
+ }
31
+ transformData = transformData.map(item => {
32
+ return utils_1.stringifyByEJSON(datatype_1.serialize(item));
33
+ });
34
+ let params = {
35
+ collectionName: this._coll,
36
+ data: transformData
37
+ };
38
+ if (this._transactionId) {
39
+ params.transactionId = this._transactionId;
40
+ }
41
+ const res = await this._request.send('database.insertDocument', params, utils_1.getReqOpts(this._apiOptions));
42
+ if (res.code) {
43
+ return res;
44
+ }
45
+ if (!type_1.isArray(data)) {
46
+ if (this._transactionId) {
47
+ return {
48
+ inserted: 1,
49
+ ok: 1,
50
+ id: res.data.insertedIds[0],
51
+ requestId: res.requestId
52
+ };
53
+ }
54
+ return {
55
+ id: res.data.insertedIds[0],
56
+ requestId: res.requestId
57
+ };
58
+ }
59
+ return {
60
+ ids: res.data.insertedIds,
61
+ requestId: res.requestId
62
+ };
63
+ }
64
+ aggregate(rawPipeline = []) {
65
+ return new aggregate_1.default(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);
66
+ }
67
+ options(apiOptions) {
68
+ validate_1.Validate.isValidOptions(apiOptions);
69
+ return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);
70
+ }
71
+ }
72
+ exports.CollectionReference = CollectionReference;