appcenter-cli
Version:
Command line tool for Visual Studio App Center
56 lines (55 loc) • 2.63 kB
JavaScript
;
/**
* Some commands have pairs of parameters which are used to specify the same list of users.
* One of these parameters is used to specify list of users as string, another one is used to specify path to file which contains the list of users.
* This helper handles correct user list retrieval for such parameters.
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUsersList = void 0;
const Pfs = require("./promisfied-fs");
const commandline_1 = require("../commandline");
const util_1 = require("util");
const _ = require("lodash");
function getUsersList(listOfUsers, pathToListOfUsers, debug) {
return __awaiter(this, void 0, void 0, function* () {
return extractUsersFromString(yield getUserListString(listOfUsers, pathToListOfUsers, debug));
});
}
exports.getUsersList = getUsersList;
function getUserListString(listOfUsers, pathToListOfUsers, debug) {
return __awaiter(this, void 0, void 0, function* () {
if (listOfUsers != null) {
return listOfUsers;
}
else if (pathToListOfUsers != null) {
try {
debug("Reading file with the list of users");
return yield Pfs.readFile(pathToListOfUsers, "utf8");
}
catch (error) {
if (error.code === "ENOENT") {
throw commandline_1.failure(commandline_1.ErrorCodes.InvalidParameter, `file ${pathToListOfUsers} doesn't exists`);
}
else {
debug(`Failed to read file with list of users - ${util_1.inspect(error)}`);
throw commandline_1.failure(commandline_1.ErrorCodes.Exception, `failed to read file ${pathToListOfUsers}`);
}
}
}
else {
return "";
}
});
}
function extractUsersFromString(listString) {
return _.chain(listString).words(/\S+/g).uniq().value();
}