piral-cli
Version:
The standard CLI for creating and building a Piral instance or a Pilet.
38 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.publishPackageEmulator = publishPackageEmulator;
exports.publishWebsiteEmulator = publishWebsiteEmulator;
const path_1 = require("path");
const io_1 = require("./io");
const npm_1 = require("./npm");
const http_1 = require("./http");
function nerfUrl(url) {
const parsed = new URL(url);
const from = `${parsed.protocol}//${parsed.host}${parsed.pathname}`;
const rel = new URL('.', from);
const res = `//${rel.host}${rel.pathname}`;
return res;
}
async function publishPackageEmulator(directory, file, url, interactive = false, apiKey) {
const flags = url ? [`--registry=${url}`] : [];
if (url && apiKey) {
const authUrl = nerfUrl(url);
const tokenKey = `${authUrl}:_authToken`;
flags.push(`--${tokenKey}=${apiKey}`);
}
await (0, npm_1.publishNpmPackage)(directory, file, flags, interactive);
}
async function publishWebsiteEmulator(version, url, apiKey, mode, directory, files, interactive, headers, agent) {
const data = {
version,
type: 'custom',
};
for (const file of files) {
const relPath = (0, path_1.relative)(directory, file);
const fileName = (0, path_1.basename)(file);
const content = await (0, io_1.readBinary)((0, path_1.dirname)(file), fileName);
data[relPath] = [content, fileName];
}
return await (0, http_1.postForm)(url, mode, apiKey, data, headers, agent, interactive);
}
//# sourceMappingURL=release.js.map