backend-manager 2.5.56 → 2.5.58
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/package.json +2 -2
- package/src/cli/cli.js +24 -10
- package/src/manager/index.js +7 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backend-manager",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.58",
|
|
4
4
|
"description": "Quick tools for developing Firebase functions",
|
|
5
5
|
"main": "src/manager/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -61,4 +61,4 @@
|
|
|
61
61
|
"wonderful-fetch": "^0.0.17",
|
|
62
62
|
"yargs": "^17.7.1"
|
|
63
63
|
}
|
|
64
|
-
}
|
|
64
|
+
}
|
package/src/cli/cli.js
CHANGED
|
@@ -227,6 +227,7 @@ Main.prototype.setup = async function () {
|
|
|
227
227
|
self.runtimeConfigJSON = jetpack.read(`${self.firebaseProjectPath}/functions/.runtimeconfig.json`) || '{}';
|
|
228
228
|
self.remoteconfigJSON = jetpack.read(`${self.firebaseProjectPath}/remoteconfig.template.json`) || '{}';
|
|
229
229
|
self.projectPackage = jetpack.read(`${self.firebaseProjectPath}/package.json`) || '{}';
|
|
230
|
+
self.bemConfigJSON = jetpack.read(`${self.firebaseProjectPath}/functions/backend-manager-config.json`) || '{}';
|
|
230
231
|
|
|
231
232
|
self.gitignore = jetpack.read(`${self.firebaseProjectPath}/functions/.gitignore`) || '';
|
|
232
233
|
if (!self.package) {
|
|
@@ -261,19 +262,18 @@ Main.prototype.setup = async function () {
|
|
|
261
262
|
self.bemApiURL = `https://us-central1-${_.get(self.firebaseRC, 'projects.default')}.cloudfunctions.net/bm_api?authenticationToken=${_.get(self.runtimeConfigJSON, 'backend_manager.key')}`;
|
|
262
263
|
// const prepareStatsURL = `https://us-central1-${_.get(self.firebaseRC, 'projects.default')}.cloudfunctions.net/bm_api?authenticationToken=undefined`;
|
|
263
264
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
log(`
|
|
267
|
-
log(`Url:`, chalk.bold(`${self.projectUrl}`));
|
|
265
|
+
// Log
|
|
266
|
+
log(`ID: `, chalk.bold(`${self.projectName}`));
|
|
267
|
+
log(`URL:`, chalk.bold(`${self.projectUrl}`));
|
|
268
268
|
|
|
269
269
|
if (!self.package || !self.package.engines || !self.package.engines.node) {
|
|
270
270
|
throw new Error('Missing <engines.node> in package.json')
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
|
|
274
273
|
// Tests
|
|
275
274
|
await self.test('is a firebase project', async function () {
|
|
276
275
|
let exists = jetpack.exists(`${self.firebaseProjectPath}/firebase.json`);
|
|
276
|
+
|
|
277
277
|
return exists;
|
|
278
278
|
}, fix_isFirebase);
|
|
279
279
|
|
|
@@ -281,8 +281,8 @@ Main.prototype.setup = async function () {
|
|
|
281
281
|
// return !!self.package.dependencies && !!self.package.devDependencies;
|
|
282
282
|
// let gitignore = jetpack.read(path.resolve(`${__dirname}/../../templates/gitignore.md`));
|
|
283
283
|
let nvmrc = jetpack.read(`${self.firebaseProjectPath}/functions/.nvmrc`) || '';
|
|
284
|
+
|
|
284
285
|
return nvmrc === `v${CLI_CONFIG.node}/*`
|
|
285
|
-
|
|
286
286
|
}, fix_nvmrc);
|
|
287
287
|
|
|
288
288
|
await self.test(`using node ${CLI_CONFIG.node}`, function () {
|
|
@@ -390,22 +390,25 @@ Main.prototype.setup = async function () {
|
|
|
390
390
|
let runtimeconfig = JSON.parse(jetpack.read(`${self.firebaseProjectPath}/functions/.runtimeconfig.json`) || '{}');
|
|
391
391
|
let ogPaths = getObjectPaths(runtimeconfigTemplate).split('\n');
|
|
392
392
|
let pass = true;
|
|
393
|
+
|
|
393
394
|
for (var i = 0, l = ogPaths.length; i < l; i++) {
|
|
394
395
|
let item = ogPaths[i];
|
|
395
396
|
if (!item) {continue}
|
|
396
|
-
pass =
|
|
397
|
+
pass = _.get(runtimeconfig, item, undefined);
|
|
397
398
|
if (typeof pass === 'undefined') {
|
|
398
399
|
break;
|
|
399
400
|
}
|
|
400
401
|
}
|
|
401
|
-
return !!pass;
|
|
402
402
|
|
|
403
|
+
return !!pass;
|
|
403
404
|
}, fix_runtimeConfig);
|
|
404
405
|
|
|
405
406
|
await self.test('using proper backend-manager-config.json', async function () {
|
|
406
|
-
|
|
407
|
+
const bemConfig = JSON.parse(self.bemConfigJSON);
|
|
408
|
+
|
|
407
409
|
let ogPaths = getObjectPaths(bemConfigTemplate).split('\n');
|
|
408
410
|
let pass = true;
|
|
411
|
+
|
|
409
412
|
for (var i = 0, l = ogPaths.length; i < l; i++) {
|
|
410
413
|
let item = ogPaths[i];
|
|
411
414
|
if (!item) {continue}
|
|
@@ -414,8 +417,13 @@ Main.prototype.setup = async function () {
|
|
|
414
417
|
break;
|
|
415
418
|
}
|
|
416
419
|
}
|
|
417
|
-
return !!pass;
|
|
418
420
|
|
|
421
|
+
if (self.projectName !== bemConfig.firebaseConfig.projectId) {
|
|
422
|
+
console.error(chalk.red('Mismatch between project name and firebaseConfig.projectId in backend-manager-config.json'));
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return !!pass;
|
|
419
427
|
}, fix_bemConfig);
|
|
420
428
|
|
|
421
429
|
await self.test('has service-account.json', function () {
|
|
@@ -769,6 +777,12 @@ async function fix_isFirebase(self) {
|
|
|
769
777
|
return;
|
|
770
778
|
};
|
|
771
779
|
|
|
780
|
+
async function fix_isFirebase(self) {
|
|
781
|
+
log(chalk.red(`self is not a firebase project. Please use ${chalk.bold('firebase-init')} to set up.`));
|
|
782
|
+
throw '';
|
|
783
|
+
return;
|
|
784
|
+
};
|
|
785
|
+
|
|
772
786
|
function fix_projpackage(self) {
|
|
773
787
|
return new Promise(function(resolve, reject) {
|
|
774
788
|
self.projectPackage = self.projectPackage || {};
|
package/src/manager/index.js
CHANGED
|
@@ -595,6 +595,7 @@ Manager.prototype.storage = function (options) {
|
|
|
595
595
|
|
|
596
596
|
if (!self._internal.storage[options.name]) {
|
|
597
597
|
options.temporary = typeof options.temporary === 'undefined' ? false : options.temporary;
|
|
598
|
+
options.clear = typeof options.clear === 'undefined' ? true : options.clear;
|
|
598
599
|
|
|
599
600
|
const low = require('lowdb');
|
|
600
601
|
const FileSync = require('lowdb/adapters/FileSync');
|
|
@@ -602,8 +603,12 @@ Manager.prototype.storage = function (options) {
|
|
|
602
603
|
? `${require('os').tmpdir()}/${options.name}.json`
|
|
603
604
|
: `./.data/${options.name}.json`;
|
|
604
605
|
const adapter = new FileSync(dbPath);
|
|
605
|
-
|
|
606
|
-
if (
|
|
606
|
+
|
|
607
|
+
if (
|
|
608
|
+
options.temporary
|
|
609
|
+
&& self.assistant.meta.environment === 'development'
|
|
610
|
+
&& options.clear
|
|
611
|
+
) {
|
|
607
612
|
self.assistant.log('Removed temporary file @', dbPath);
|
|
608
613
|
jetpack.remove(dbPath);
|
|
609
614
|
}
|