@pi-r/gcp 0.6.2 → 0.6.3
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 +28 -13
- package/package.json +5 -5
package/client/index.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getProjectId = exports.createBucketRequest = exports.setPredefinedAcl = exports.setPublicRead = exports.executeBatchQuery = exports.executeQuery = exports.deleteObjectsV2 = exports.deleteObjects = exports.setBucketWebsite = exports.setBucketPolicy = exports.createBucketV2 = exports.createBucket = exports.createDatabaseClient = exports.createStorageClient = exports.validateDatabase = exports.validateStorage = exports.isFirebaseApp = void 0;
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const storage = require("@google-cloud/storage");
|
|
6
|
-
const
|
|
6
|
+
const firestore_1 = require("@google-cloud/firestore");
|
|
7
7
|
const util_1 = require("@e-mc/cloud/util");
|
|
8
8
|
const types_1 = require("@e-mc/types");
|
|
9
9
|
const Module = require("@e-mc/module");
|
|
@@ -135,7 +135,7 @@ function createStorageClient(credential, bucket) {
|
|
|
135
135
|
throw err;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
getProjectId(credential);
|
|
138
|
+
getProjectId(credential, false);
|
|
139
139
|
return new storage.Storage(credential);
|
|
140
140
|
}
|
|
141
141
|
exports.createStorageClient = createStorageClient;
|
|
@@ -144,13 +144,13 @@ function createDatabaseClient(credential, data) {
|
|
|
144
144
|
try {
|
|
145
145
|
let product, name, database, table, query;
|
|
146
146
|
if (data) {
|
|
147
|
-
({ product, name, table, query } = data);
|
|
147
|
+
({ product, name, table, query, database } = data);
|
|
148
148
|
}
|
|
149
149
|
if (product === 'firebase' || isFirebaseApp(credential)) {
|
|
150
150
|
packageName = getFirebasePackageName(credential);
|
|
151
151
|
return getApp(credential, true);
|
|
152
152
|
}
|
|
153
|
-
getProjectId(credential);
|
|
153
|
+
getProjectId(credential, true);
|
|
154
154
|
if (data) {
|
|
155
155
|
if (product === 'spanner' || !product && name && database && (query || table)) {
|
|
156
156
|
const { Spanner } = require(packageName = '@google-cloud/spanner');
|
|
@@ -174,7 +174,7 @@ function createDatabaseClient(credential, data) {
|
|
|
174
174
|
this.checkPackage(err, packageName, { passThrough: true });
|
|
175
175
|
throw err;
|
|
176
176
|
}
|
|
177
|
-
return new
|
|
177
|
+
return new firestore_1.Firestore(credential);
|
|
178
178
|
}
|
|
179
179
|
exports.createDatabaseClient = createDatabaseClient;
|
|
180
180
|
async function createBucket(credential, bucket, publicRead, service = 'gcp') {
|
|
@@ -700,7 +700,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
700
700
|
if ((0, types_1.isPlainObject)(item.options)) {
|
|
701
701
|
items.push(item.options);
|
|
702
702
|
}
|
|
703
|
-
rows = await db.getAll(...items);
|
|
703
|
+
rows = (await db.getAll(...items)).filter(value => value.exists).map(value => value.data());
|
|
704
704
|
}
|
|
705
705
|
else {
|
|
706
706
|
const doc = db.collection(table).doc(id);
|
|
@@ -723,7 +723,17 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
723
723
|
for (const args of query) {
|
|
724
724
|
if ((0, types_1.isArray)(args)) {
|
|
725
725
|
const method = args[0];
|
|
726
|
+
const params = args.slice(1);
|
|
726
727
|
switch (method) {
|
|
728
|
+
case 'whereAnd':
|
|
729
|
+
case 'whereOr':
|
|
730
|
+
if (params.every(p => Array.isArray(p))) {
|
|
731
|
+
db = db.where(firestore_1.Filter[method === 'whereAnd' ? 'and' : 'or'](...params.map((p) => firestore_1.Filter.where(p[0], p[1], p[2]))));
|
|
732
|
+
}
|
|
733
|
+
else {
|
|
734
|
+
throw (0, types_1.errorMessage)(method, 'Conditionals are not in array format', Cloud.asString(params));
|
|
735
|
+
}
|
|
736
|
+
break;
|
|
727
737
|
case 'endAt':
|
|
728
738
|
case 'endBefore':
|
|
729
739
|
case 'limit':
|
|
@@ -735,7 +745,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
735
745
|
case 'startAt':
|
|
736
746
|
case 'where':
|
|
737
747
|
case 'withConverter':
|
|
738
|
-
db = db[method].apply(db,
|
|
748
|
+
db = db[method].apply(db, params); // eslint-disable-line prefer-spread
|
|
739
749
|
break;
|
|
740
750
|
}
|
|
741
751
|
}
|
|
@@ -888,19 +898,24 @@ function createBucketRequest(credential) {
|
|
|
888
898
|
return options;
|
|
889
899
|
}
|
|
890
900
|
exports.createBucketRequest = createBucketRequest;
|
|
891
|
-
function getProjectId(credential) {
|
|
901
|
+
function getProjectId(credential, cache) {
|
|
902
|
+
let projectId = credential.projectId;
|
|
903
|
+
if (!cache && projectId) {
|
|
904
|
+
return projectId;
|
|
905
|
+
}
|
|
892
906
|
let pathname = credential.keyFilename || credential.keyFile;
|
|
893
|
-
if (pathname &&
|
|
907
|
+
if (pathname && Cloud.isPath(pathname = path.resolve(pathname)) || (pathname = process.env.GOOGLE_APPLICATION_CREDENTIALS) && Cloud.isPath(pathname = path.resolve(pathname))) {
|
|
894
908
|
if (credential.keyFilename) {
|
|
895
909
|
credential.keyFilename = pathname;
|
|
896
910
|
}
|
|
897
911
|
else {
|
|
898
912
|
credential.keyFile = pathname;
|
|
899
913
|
}
|
|
900
|
-
if (!
|
|
914
|
+
if (!projectId) {
|
|
901
915
|
try {
|
|
902
|
-
const
|
|
903
|
-
if ((0, types_1.isString)(
|
|
916
|
+
const id = require(pathname).project_id;
|
|
917
|
+
if ((0, types_1.isString)(id)) {
|
|
918
|
+
projectId = id;
|
|
904
919
|
credential.projectId = projectId;
|
|
905
920
|
}
|
|
906
921
|
}
|
|
@@ -908,6 +923,6 @@ function getProjectId(credential) {
|
|
|
908
923
|
}
|
|
909
924
|
}
|
|
910
925
|
}
|
|
911
|
-
return
|
|
926
|
+
return projectId;
|
|
912
927
|
}
|
|
913
928
|
exports.getProjectId = getProjectId;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/gcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Google (GCP) cloud functions for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://github.com/anpham6/pi-r.git",
|
|
11
|
+
"url": "git+https://github.com/anpham6/pi-r.git",
|
|
12
12
|
"directory": "src/cloud/gcp"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/cloud": "^0.8.
|
|
24
|
-
"@e-mc/module": "^0.8.
|
|
25
|
-
"@e-mc/types": "^0.8.
|
|
23
|
+
"@e-mc/cloud": "^0.8.3",
|
|
24
|
+
"@e-mc/module": "^0.8.3",
|
|
25
|
+
"@e-mc/types": "^0.8.3",
|
|
26
26
|
"@google-cloud/firestore": "^7.2.0",
|
|
27
27
|
"@google-cloud/storage": "^7.7.0"
|
|
28
28
|
}
|