26 lines
827 B
JavaScript
26 lines
827 B
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.makeTar = void 0;
|
|
const tar_js_1 = __importDefault(require("tar-js"));
|
|
// converts a string to utf8 Uint8Array and returns it as a string-like
|
|
// object that `tar.append` accepts as path
|
|
function fixUnicodePath(path) {
|
|
const codes = new TextEncoder().encode(path);
|
|
return {
|
|
length: codes.length,
|
|
charCodeAt: index => codes[index],
|
|
};
|
|
}
|
|
function makeTar(data) {
|
|
const tar = new tar_js_1.default();
|
|
for (const entry of data) {
|
|
const path = fixUnicodePath(entry.path);
|
|
tar.append(path, entry.data);
|
|
}
|
|
return tar.out;
|
|
}
|
|
exports.makeTar = makeTar;
|