@pi-r/oci 0.11.2 → 0.12.0
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/client/index.js +42 -43
- package/download/index.js +5 -3
- package/package.json +9 -6
- package/upload/index.js +5 -3
package/client/index.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.setBucketWebsite = setBucketWebsite;
|
|
10
|
-
exports.deleteObjects = deleteObjects;
|
|
11
|
-
exports.deleteObjectsV2 = deleteObjectsV2;
|
|
12
|
-
exports.deleteObjectsV3 = deleteObjectsV3;
|
|
13
|
-
exports.copyObject = copyObject;
|
|
14
|
-
exports.executeQuery = executeQuery;
|
|
15
|
-
exports.executeBatchQuery = executeBatchQuery;
|
|
16
|
-
const oracledb = require("oracledb");
|
|
17
|
-
const Cloud = require("@e-mc/cloud");
|
|
18
|
-
const types_1 = require("@e-mc/types");
|
|
19
|
-
const util_1 = require("@e-mc/cloud/util");
|
|
20
|
-
const oracle = require("@pi-r/oracle");
|
|
21
|
-
const aws = require("@pi-r/aws");
|
|
2
|
+
|
|
3
|
+
const oracledb = require('oracledb');
|
|
4
|
+
const Cloud = require('@e-mc/cloud');
|
|
5
|
+
const { isArray, isErrorCode, isPlainObject } = require('@e-mc/types');
|
|
6
|
+
const { formatError } = require('@e-mc/cloud/util');
|
|
7
|
+
const oracle = require('@pi-r/oracle');
|
|
8
|
+
const aws = require('@pi-r/aws');
|
|
22
9
|
function validateStorage(credential) {
|
|
23
10
|
return !!(credential.accessKeyId && credential.secretAccessKey && (credential.region && credential.namespace || credential.endpoint));
|
|
24
11
|
}
|
|
@@ -55,8 +42,8 @@ async function setBucketPolicy(credential, bucket, options) {
|
|
|
55
42
|
async function setBucketWebsite(credential, bucket, options) {
|
|
56
43
|
return aws.setBucketWebsite.call(this, credential, bucket, options, "oci");
|
|
57
44
|
}
|
|
58
|
-
async function deleteObjects(credential, Bucket,
|
|
59
|
-
return
|
|
45
|
+
async function deleteObjects(credential, Bucket, options) {
|
|
46
|
+
return deleteObjectsV3.call(this, credential, Bucket, options);
|
|
60
47
|
}
|
|
61
48
|
async function deleteObjectsV2(credential, Bucket, recursive = true) {
|
|
62
49
|
return deleteObjectsV3.call(this, credential, Bucket, { recursive, Bucket });
|
|
@@ -109,7 +96,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
109
96
|
if (id) {
|
|
110
97
|
if (!table) {
|
|
111
98
|
closeClient();
|
|
112
|
-
throw
|
|
99
|
+
throw formatError(item, "Missing database table");
|
|
113
100
|
}
|
|
114
101
|
if (queryString) {
|
|
115
102
|
queryString += id;
|
|
@@ -122,7 +109,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
122
109
|
const col = await db.openCollection(table);
|
|
123
110
|
if (!col) {
|
|
124
111
|
closeClient();
|
|
125
|
-
throw
|
|
112
|
+
throw formatError(item, "Missing database table");
|
|
126
113
|
}
|
|
127
114
|
if (update && updateType === 1) {
|
|
128
115
|
if (update._id) {
|
|
@@ -159,7 +146,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
159
146
|
}
|
|
160
147
|
this.addLog(3, message + ` (_id=${id.toString()})`, service, 'replaceOne');
|
|
161
148
|
};
|
|
162
|
-
if (
|
|
149
|
+
if (isArray(id)) {
|
|
163
150
|
target = col.find().key(id[0]);
|
|
164
151
|
}
|
|
165
152
|
if (rows && target) {
|
|
@@ -174,10 +161,10 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
174
161
|
}
|
|
175
162
|
else if (query) {
|
|
176
163
|
let maxRows = typeof item.limit === 'number' ? item.limit : NaN;
|
|
177
|
-
if (
|
|
164
|
+
if (isPlainObject(query)) {
|
|
178
165
|
if (!table) {
|
|
179
166
|
closeClient();
|
|
180
|
-
throw
|
|
167
|
+
throw formatError(item, "Missing database table");
|
|
181
168
|
}
|
|
182
169
|
if (queryString && (rows = this.getCacheResult(service, credential, queryString += Cloud.asString(query, true) + '_' + (maxRows > 0 ? maxRows.toString() : '0'), cacheValue, ignoreCache))) {
|
|
183
170
|
result[i] = rows;
|
|
@@ -186,7 +173,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
186
173
|
const col = await (db ||= await createSoda()).openCollection(table);
|
|
187
174
|
if (!col) {
|
|
188
175
|
closeClient();
|
|
189
|
-
throw
|
|
176
|
+
throw formatError(item, "Missing database table");
|
|
190
177
|
}
|
|
191
178
|
const tryQuery = async () => {
|
|
192
179
|
let oper = col.find().filter(query);
|
|
@@ -199,20 +186,17 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
199
186
|
rows = await tryQuery();
|
|
200
187
|
}
|
|
201
188
|
catch (err) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
default:
|
|
215
|
-
throw err;
|
|
189
|
+
if (isErrorCode(err, 'ORA-40820') && maxRows > 0) {
|
|
190
|
+
const limit = maxRows;
|
|
191
|
+
maxRows = 0;
|
|
192
|
+
rows = await tryQuery();
|
|
193
|
+
if (limit > rows.length) {
|
|
194
|
+
rows = rows.slice(0, limit);
|
|
195
|
+
}
|
|
196
|
+
this.addLog(3, err, service, 'getDocuments');
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
throw err;
|
|
216
200
|
}
|
|
217
201
|
}
|
|
218
202
|
}
|
|
@@ -257,7 +241,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
257
241
|
}
|
|
258
242
|
else {
|
|
259
243
|
closeClient();
|
|
260
|
-
throw
|
|
244
|
+
throw formatError(item, "Missing database query");
|
|
261
245
|
}
|
|
262
246
|
}
|
|
263
247
|
result[i] = this.setQueryResult(service, credential, queryString, rows, cacheValue);
|
|
@@ -265,3 +249,18 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
265
249
|
closeClient();
|
|
266
250
|
return result;
|
|
267
251
|
}
|
|
252
|
+
|
|
253
|
+
exports.copyObject = copyObject;
|
|
254
|
+
exports.createBucket = createBucket;
|
|
255
|
+
exports.createBucketV2 = createBucketV2;
|
|
256
|
+
exports.createDatabaseClient = createDatabaseClient;
|
|
257
|
+
exports.deleteObjects = deleteObjects;
|
|
258
|
+
exports.deleteObjectsV2 = deleteObjectsV2;
|
|
259
|
+
exports.deleteObjectsV3 = deleteObjectsV3;
|
|
260
|
+
exports.executeBatchQuery = executeBatchQuery;
|
|
261
|
+
exports.executeQuery = executeQuery;
|
|
262
|
+
exports.setBucketPolicy = setBucketPolicy;
|
|
263
|
+
exports.setBucketWebsite = setBucketWebsite;
|
|
264
|
+
exports.setStorageCredential = setStorageCredential;
|
|
265
|
+
exports.validateDatabase = validateDatabase;
|
|
266
|
+
exports.validateStorage = validateStorage;
|
package/download/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
const aws = require(
|
|
2
|
+
|
|
3
|
+
const aws = require('@pi-r/aws/download');
|
|
4
|
+
const { setStorageCredential } = require('@pi-r/oci');
|
|
4
5
|
function download(credential, service = "oci") {
|
|
5
|
-
|
|
6
|
+
setStorageCredential(credential);
|
|
6
7
|
return aws.call(this, credential, service);
|
|
7
8
|
}
|
|
9
|
+
|
|
8
10
|
module.exports = download;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/oci",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Oracle (OCI) cloud functions for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -19,12 +19,15 @@
|
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@e-mc/cloud": "^0.
|
|
23
|
-
"@e-mc/module": "^0.
|
|
24
|
-
"@e-mc/types": "^0.
|
|
25
|
-
"@pi-r/aws": "^0.
|
|
26
|
-
"@pi-r/oracle": "^0.
|
|
22
|
+
"@e-mc/cloud": "^0.14.0",
|
|
23
|
+
"@e-mc/module": "^0.14.0",
|
|
24
|
+
"@e-mc/types": "^0.14.0",
|
|
25
|
+
"@pi-r/aws": "^0.12.0",
|
|
26
|
+
"@pi-r/oracle": "^0.12.0",
|
|
27
27
|
"aws-sdk": "^2.1693.0",
|
|
28
28
|
"oracledb": "^6.10.0"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@types/oracledb": "^6"
|
|
29
32
|
}
|
|
30
33
|
}
|
package/upload/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
const aws = require(
|
|
2
|
+
|
|
3
|
+
const aws = require('@pi-r/aws/upload');
|
|
4
|
+
const { setStorageCredential } = require('@pi-r/oci');
|
|
4
5
|
function upload(credential, service = "oci") {
|
|
5
|
-
|
|
6
|
+
setStorageCredential(credential);
|
|
6
7
|
return aws.call(this, credential, service);
|
|
7
8
|
}
|
|
9
|
+
|
|
8
10
|
module.exports = upload;
|