Adds setup:web command.

This commit is contained in:
Michael Bleigh
2017-03-15 11:40:42 -07:00
committed by GitHub
parent a144452794
commit 51a16aac37
7 changed files with 53 additions and 0 deletions

View File

@@ -43,6 +43,7 @@ Command | Description
**logout** | Sign out of the Firebase CLI.
**login:ci** | Generate an authentication token for use in non-interactive environments.
**list** | Print a list of all of your Firebase projects.
**setup:web** | Print out SDK setup information for the Firebase JS SDK.
**use** | Set active Firebase project, manage project aliases.
**open** | Quickly open a browser to relevant project resources.
**init** | Setup a new Firebase project in the current directory. This command will create a `firebase.json` configuration file in your current directory.

View File

@@ -53,6 +53,10 @@ module.exports = function(client) {
client.open = loadCommand('open');
client.serve = loadCommand('serve');
client.setup = {
web: loadCommand('setup-web')
};
client.tools = {
migrate: loadCommand('tools-migrate')
};

22
commands/setup-web.js Normal file
View File

@@ -0,0 +1,22 @@
'use strict';
var fs = require('fs');
var RSVP = require('rsvp');
var Command = require('../lib/command');
var fetchWebSetup = require('../lib/fetchWebSetup');
var logger = require('../lib/logger');
var requireAccess = require('../lib/requireAccess');
var scopes = require('../lib/scopes');
var JS_TEMPLATE = fs.readFileSync(__dirname + '/../templates/setup/web.js', 'utf8');
module.exports = new Command('setup:web')
.description('display this project\'s setup information for the Firebase JS SDK')
.before(requireAccess, [scopes.CLOUD_PLATFORM])
.action(function(options) {
return fetchWebSetup(options).then(function(config) {
logger.info(JS_TEMPLATE.replace('{/*--CONFIG--*/}', JSON.stringify(config, null, 2)));
return RSVP.resolve(config);
});
});

View File

@@ -80,10 +80,12 @@ var api = {
authOrigin: utils.envOverride('FIREBASE_AUTH_URL', 'https://accounts.google.com'),
consoleOrigin: utils.envOverride('FIREBASE_CONSOLE_URL', 'https://console.firebase.google.com'),
deployOrigin: utils.envOverride('FIREBASE_DEPLOY_URL', utils.envOverride('FIREBASE_UPLOAD_URL', 'https://deploy.firebase.com')),
firedataOrigin: utils.envOverride('FIREBASE_FIREDATA_URL', 'https://mobilesdk-pa.googleapis.com'),
functionsOrigin: utils.envOverride('FIREBASE_FUNCTIONS_URL', 'https://cloudfunctions.googleapis.com'),
googleOrigin: utils.envOverride('FIREBASE_TOKEN_URL', utils.envOverride('FIREBASE_GOOGLE_URL', 'https://www.googleapis.com')),
hostingOrigin: utils.envOverride('FIREBASE_HOSTING_URL', 'https://firebaseapp.com'),
realtimeOrigin: utils.envOverride('FIREBASE_REALTIME_URL', 'https://firebaseio.com'),
resourceManagerOrigin: utils.envOverride('FIREBASE_RESOURCEMANAGER_URL', 'https://cloudresourcemanager.googleapis.com'),
rulesOrigin: utils.envOverride('FIREBASE_RULES_URL', 'https://firebaserules.googleapis.com'),
runtimeconfigOrigin: utils.envOverride('FIREBASE_RUNTIMECONFIG_URL', 'https://runtimeconfig.googleapis.com'),

0
lib/fetchSetup.js Normal file
View File

19
lib/fetchWebSetup.js Normal file
View File

@@ -0,0 +1,19 @@
'use strict';
var getProjectId = require('./getProjectId');
var api = require('./api');
module.exports = function(options) {
var projectId = getProjectId(options);
return api.request('GET', '/v1/projects/' + projectId, {
auth: true,
origin: api.resourceManagerOrigin
}).then(function(response) {
return api.request('GET', '/v1/projects/' + response.body.projectNumber + '/clients/_:getWebAppConfig', {
auth: true,
origin: api.firedataOrigin
});
}).then(function(response) {
return response.body;
});
};

5
templates/setup/web.js Normal file
View File

@@ -0,0 +1,5 @@
// Copy and paste this into your JavaScript code to initialize the Firebase SDK.
// You will also need to load the Firebase SDK.
// See https://firebase.google.com/docs/web/setup for more details.
firebase.initializeApp({/*--CONFIG--*/});