UNPKG

@verdaccio/server-fastify

Version:

fastify server api implementation

66 lines (58 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _debug = _interopRequireDefault(require("debug")); var _core = require("@verdaccio/core"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable @typescript-eslint/no-unused-vars */ const debug = (0, _debug.default)('verdaccio:fastify:tarball'); async function tarballRoute(fastify) { fastify.get('/:package/-/:filename', async (request, reply) => { const { package: pkg, filename } = request.params; debug('stream tarball for %s@%s', pkg, filename); const abort = new AbortController(); const stream = await fastify.storage.getTarballNext(pkg, filename, { signal: abort.signal // enableRemote: true, }); stream.on('content-length', size => { reply.header(_core.HEADER_TYPE.CONTENT_LENGTH, size); }); // request.socket.on('abort', () => { // debug('request aborted for %o', request.url); // abort.abort(); // }); return stream; }); fastify.get('/:scope/:name/-/:filename', async (request, reply) => { const abort = new AbortController(); const { scope, name, filename } = request.params; const scopedPackage = `${scope}/${name}`; debug('stream scope tarball for %s@%s', scopedPackage, filename); const stream = await fastify.storage.getTarballNext(scopedPackage, filename, { signal: abort.signal // enableRemote: true, }); stream.on('content-length', size => { reply.header(_core.HEADER_TYPE.CONTENT_LENGTH, size); }); // request.socket.on('abort', () => { // debug('request aborted for %o', request.url); // abort.abort(); // }); reply.header(_core.HEADERS.CONTENT_TYPE, _core.HEADERS.OCTET_STREAM); return stream; }); } var _default = tarballRoute; exports.default = _default; //# sourceMappingURL=tarball.js.map