flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
103 lines • 3.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const pack_1 = require("./pack");
const cli_helper_1 = require("./cli-helper");
const cli_1 = require("./cli");
const request = require("request");
const FormData = require("form-data");
const fs = require("fs");
const uploadPackage = function (token) {
pack_1.createZipArchive(process.cwd() + "/flagpole.zip", function (err, fileName) {
if (err) {
cli_1.Cli.log("");
cli_1.Cli.log("Error: " + err);
cli_1.Cli.log("");
cli_1.Cli.exit(1);
}
if (!fs.existsSync(fileName)) {
cli_1.Cli.log("");
cli_1.Cli.log("Error generating package.");
cli_1.Cli.log("");
cli_1.Cli.exit(1);
}
let uri = cli_1.Cli.apiDomain + "/api/project/" + cli_1.Cli.config.project.id + "/package";
request.post({
url: uri,
formData: {
token: token,
file: fs.createReadStream(fileName)
}
}, function (err, response, body) {
if (err) {
cli_1.Cli.log("");
cli_1.Cli.log("Error Deploying: " + err);
cli_1.Cli.log("");
cli_1.Cli.exit(1);
}
if (response.statusCode == 202) {
cli_1.Cli.log("");
cli_1.Cli.log("Project " +
cli_1.Cli.config.project.name +
" was posted to your account on FlagpoleJS.com");
cli_1.Cli.log("");
cli_1.Cli.exit(0);
}
else {
cli_1.Cli.log("");
cli_1.Cli.log("Error Uploading Deploy (" + response.statusCode + ")");
cli_1.Cli.log(body);
cli_1.Cli.log("");
cli_1.Cli.exit(1);
}
});
});
};
function uploadProject(token) {
if (!cli_1.Cli.config.project.hasId) {
request.post(cli_1.Cli.apiDomain + "/api/project", {
body: JSON.stringify({
token: token,
name: cli_1.Cli.config.project.name
}),
headers: {
"Content-Type": "application/json"
}
}, function (err, response, body) {
let json = JSON.parse(body);
cli_1.Cli.config.project.id = json.data.id || "";
cli_1.Cli.config
.save()
.then(function () {
uploadPackage(token);
})
.catch(function (err) {
cli_1.Cli.log("");
cli_1.Cli.log("Error uploading project: " + err);
cli_1.Cli.log("");
cli_1.Cli.exit(1);
});
});
}
else {
uploadPackage(token);
}
}
function deploy() {
cli_1.Cli.hideBanner = true;
cli_helper_1.printHeader();
cli_helper_1.printSubheader("Deploy Project to FlagpoleJS.com");
cli_1.Cli.getCredentials()
.then(function (credentials) {
uploadProject(credentials.token);
})
.catch(function (err) {
cli_1.Cli.log("");
cli_1.Cli.log(err + " Must be logged in to deploy.");
cli_1.Cli.log("Use command: flagpole login");
cli_1.Cli.log("Create an account at: http://www.flagpolejs.com");
cli_1.Cli.log("");
cli_1.Cli.exit(0);
});
}
exports.deploy = deploy;
//# sourceMappingURL=deploy.js.map