UNPKG

piral-cli

Version:

The standard CLI for creating and building a Piral instance or a Pilet.

140 lines • 7.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.publishPiletDefaults = void 0; exports.publishPilet = publishPilet; const path_1 = require("path"); const types_1 = require("../types"); const common_1 = require("../common"); exports.publishPiletDefaults = { url: undefined, apiKey: undefined, fresh: false, logLevel: types_1.LogLevels.info, schemaVersion: undefined, mode: 'basic', from: 'local', fields: {}, headers: {}, interactive: false, cert: undefined, allowSelfSigned: common_1.config.allowSelfSigned, }; async function getFiles(baseDir, sources, from, fresh, originalSchemaVersion, logLevel, bundlerName, _, agent, hooks) { if (fresh) { (0, common_1.log)('generalDebug_0003', 'Detected "--fresh". Trying to resolve the package.json.'); const allEntries = await (0, common_1.matchAnyPilet)(baseDir, sources); if (allEntries.length === 0) { (0, common_1.fail)('entryFileMissing_0077'); } return await Promise.all(allEntries.map(async (entryModule) => { (0, common_1.progress)('Triggering pilet build ...'); const { root, piletPackage } = await (0, common_1.triggerBuildPilet)({ _, bundlerName, entryModule, fresh, logLevel, originalSchemaVersion, watch: false, optimizeModules: false, sourceMaps: true, declaration: true, contentHash: true, minify: true, hooks, }); const name = piletPackage.name; (0, common_1.log)('generalDebug_0003', `Pilet "${name}" built successfully!`); (0, common_1.progress)('Triggering pilet pack ...'); const file = await (0, common_1.createPiletPackage)(root, '.', '.'); (0, common_1.log)('generalDebug_0003', `Pilet "${name}" packed successfully!`); return file; })); } else { (0, common_1.log)('generalDebug_0003', `Did not find fresh flag. Trying to match from "${from}".`); switch (from) { case 'local': { (0, common_1.log)('generalDebug_0003', `Matching files using "${sources.join('", "')}".`); const allFiles = await Promise.all(sources.map((s) => (0, common_1.matchFiles)(baseDir, s))); return allFiles.reduce((result, files) => [...result, ...files], []); } case 'remote': { (0, common_1.log)('generalDebug_0003', `Download file from "${sources.join('", "')}".`); const allFiles = await Promise.all(sources.map((s) => (0, common_1.downloadFile)(s, agent))); return allFiles.reduce((result, files) => [...result, ...files], []); } case 'npm': { (0, common_1.log)('generalDebug_0003', `View npm package "${sources.join('", "')}".`); const allUrls = await Promise.all(sources.map((s) => (0, common_1.findNpmTarball)(s))); (0, common_1.log)('generalDebug_0003', `Download file from "${allUrls.join('", "')}".`); const allFiles = await Promise.all(allUrls.map((url) => (0, common_1.downloadFile)(url, agent))); return allFiles.reduce((result, files) => [...result, ...files], []); } } } } async function publishPilet(baseDir = process.cwd(), options = {}) { const { fresh = exports.publishPiletDefaults.fresh, source = fresh ? './src/index' : '*.tgz', url = common_1.config.url ?? exports.publishPiletDefaults.url, apiKey = common_1.config.apiKeys?.[url] ?? common_1.config.apiKey ?? exports.publishPiletDefaults.apiKey, logLevel = exports.publishPiletDefaults.logLevel, from = exports.publishPiletDefaults.from, schemaVersion = exports.publishPiletDefaults.schemaVersion, fields = exports.publishPiletDefaults.fields, headers = exports.publishPiletDefaults.headers, mode = exports.publishPiletDefaults.mode, interactive = exports.publishPiletDefaults.interactive, cert = exports.publishPiletDefaults.cert, allowSelfSigned = exports.publishPiletDefaults.allowSelfSigned, _ = {}, hooks = {}, bundlerName, } = options; (0, common_1.ensure)('baseDir', baseDir, 'string'); (0, common_1.ensure)('headers', headers, 'object'); (0, common_1.ensure)('fields', fields, 'object'); (0, common_1.ensure)('_', _, 'object'); (0, common_1.ensure)('hooks', hooks, 'object'); const fullBase = (0, path_1.resolve)(process.cwd(), baseDir); (0, common_1.setLogLevel)(logLevel); (0, common_1.progress)('Reading configuration ...'); if (!url) { (0, common_1.fail)('missingPiletFeedUrl_0060'); } const ca = await (0, common_1.getCertificate)(cert); const agent = (0, common_1.getAgent)({ ca, allowSelfSigned }); (0, common_1.log)('generalDebug_0003', 'Getting the tgz files ...'); const sources = Array.isArray(source) ? source : [source]; const files = await getFiles(fullBase, sources, from, fresh, schemaVersion, logLevel, bundlerName, _, agent, hooks); const successfulUploads = []; (0, common_1.log)('generalDebug_0003', 'Received available tgz files.'); if (files.length === 0) { (0, common_1.fail)('missingPiletTarball_0061', sources); } (0, common_1.log)('generalInfo_0000', `Using feed service "${url}".`); for (const file of files) { (0, common_1.log)('generalDebug_0003', 'Reading the file for upload ...'); const fileName = (0, path_1.relative)(fullBase, file); const content = await (0, common_1.readBinary)(fullBase, fileName); if (content) { (0, common_1.progress)(`Publishing "%s" to "%s" ...`, file, url); const result = await (0, common_1.postFile)(url, mode, apiKey, content, fields, headers, agent, interactive); if (result.success) { successfulUploads.push(file); if (result.response) { (0, common_1.log)('httpPostResponse_0067', result); } (0, common_1.progress)(`Published successfully!`); } else if (result.status === 402) { (0, common_1.log)('failedToUploadPayment_0161', result.response); } else if (result.status === 409) { (0, common_1.log)('failedToUploadVersion_0162', result.response); } else if (result.status === 413) { (0, common_1.log)('failedToUploadSize_0163', result.response); } else { (0, common_1.log)('failedToUpload_0062', fileName); } } else { (0, common_1.log)('failedToRead_0063', fileName); } (0, common_1.log)('generalDebug_0003', 'Finished uploading the file.'); } if (files.length === successfulUploads.length) { (0, common_1.logDone)(`Pilet(s) published successfully!`); } else { (0, common_1.fail)('failedUploading_0064'); } } //# sourceMappingURL=publish-pilet.js.map