source-from-vercel-deployment
Version:
A simple package made for downloading the source code from your Vercel Deployment.
117 lines (98 loc) • 3.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.promptForTeam = exports.promptForProjectUrl = exports.promptForProjectName = exports.promptForOutputDirectory = exports.promptForAuthorizationToken = void 0;
var _colors = _interopRequireDefault(require("colors"));
var _fuzzy = _interopRequireDefault(require("fuzzy"));
var _inquirer = _interopRequireDefault(require("inquirer"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_inquirer.default.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
const promptForAuthorizationToken = async () => {
const {
AUTHORIZATION_TOKEN
} = await _inquirer.default.prompt([{
type: 'input',
name: 'AUTHORIZATION_TOKEN',
message: _colors.default.magenta('Authorization token (Generate one here https://vercel.com/account/tokens and save it to env variable VERCEL_AUTH_TOKEN to not be asked anymore or paste it here)')
}]);
return AUTHORIZATION_TOKEN;
};
exports.promptForAuthorizationToken = promptForAuthorizationToken;
const promptForTeam = async teams => {
const {
TEAM_ID
} = await _inquirer.default.prompt([{
type: 'autocomplete',
name: 'TEAM_ID',
message: 'Choose the team that your project is in (or Personal Project if it\'s not in a team)',
source: (_, input) => {
return new Promise(resolve => {
const fuzzyResult = _fuzzy.default.filter(input || '', teams.map(project => project.name));
resolve(fuzzyResult.map(result => ({
name: _colors.default.cyan(result.original),
value: teams[teams.findIndex(project => project.name === result.original)].id
})));
});
},
pageSize: 10
}]);
return TEAM_ID;
};
exports.promptForTeam = promptForTeam;
const promptForProjectName = async projectNames => {
const {
DEPLOYMENT_NAME
} = await _inquirer.default.prompt([{
type: 'autocomplete',
name: 'DEPLOYMENT_NAME',
message: 'Choose the project name that you wish to download from',
source: (_, input) => {
return new Promise(resolve => {
const fuzzyResult = _fuzzy.default.filter(input || '', projectNames);
resolve(fuzzyResult.map(result => ({
name: _colors.default.cyan(result.original),
value: result.original
})));
});
},
pageSize: 10
}]);
return DEPLOYMENT_NAME;
};
exports.promptForProjectName = promptForProjectName;
const promptForProjectUrl = async projects => {
const {
PROJECT_URL
} = await _inquirer.default.prompt([{
type: 'autocomplete',
name: 'PROJECT_URL',
message: 'Choose the deployment that you wish to download from (first is the latest)',
source: (_, input) => {
return new Promise(resolve => {
const fuzzyResult = _fuzzy.default.filter(input || '', projects.map(project => project.url));
resolve(fuzzyResult.map(result => ({
name: _colors.default.cyan(result.original),
value: {
deploymentUid: projects[projects.findIndex(project => project.url === result.original)].uid,
deploymentUrl: projects[projects.findIndex(project => project.url === result.original)].url
}
})));
});
},
pageSize: 10
}]);
return PROJECT_URL;
};
exports.promptForProjectUrl = promptForProjectUrl;
const promptForOutputDirectory = async () => {
const {
OUTPUT_DIRECTORY
} = await _inquirer.default.prompt([{
type: 'input',
name: 'OUTPUT_DIRECTORY',
message: _colors.default.magenta('Where do you want the source to be placed? (Default: ./deployment_source)')
}]);
return OUTPUT_DIRECTORY;
};
exports.promptForOutputDirectory = promptForOutputDirectory;