@dpkit/zip
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
24 lines • 2.92 kB
JavaScript
import { loadPackageFromZip, savePackageToZip } from "./package/index.js";
export class ZipPlugin {
async loadPackage(source) {
const isZip = getIsZip(source);
if (!isZip)
return undefined;
const dataPackage = await loadPackageFromZip(source);
return dataPackage;
}
async savePackage(dataPackage, options) {
const isZip = getIsZip(options.target);
if (!isZip)
return undefined;
await savePackageToZip(dataPackage, {
archivePath: options.target,
withRemote: !!options?.withRemote,
});
return { path: undefined };
}
}
function getIsZip(path) {
return path.endsWith(".zip");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXpFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYztRQUM5QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUU1QixNQUFNLFdBQVcsR0FBRyxNQUFNLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3BELE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLFdBQW9CLEVBQ3BCLE9BQWlEO1FBRWpELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUU1QixNQUFNLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDM0IsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVTtTQUNsQyxDQUFDLENBQUE7UUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO0lBQzVCLENBQUM7Q0FDRjtBQUVELFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhY2thZ2UsIFBsdWdpbiB9IGZyb20gXCJAZHBraXQvY29yZVwiXG5pbXBvcnQgeyBsb2FkUGFja2FnZUZyb21aaXAsIHNhdmVQYWNrYWdlVG9aaXAgfSBmcm9tIFwiLi9wYWNrYWdlL2luZGV4LnRzXCJcblxuZXhwb3J0IGNsYXNzIFppcFBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbiB7XG4gIGFzeW5jIGxvYWRQYWNrYWdlKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaXNaaXAgPSBnZXRJc1ppcChzb3VyY2UpXG4gICAgaWYgKCFpc1ppcCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZGF0YVBhY2thZ2UgPSBhd2FpdCBsb2FkUGFja2FnZUZyb21aaXAoc291cmNlKVxuICAgIHJldHVybiBkYXRhUGFja2FnZVxuICB9XG5cbiAgYXN5bmMgc2F2ZVBhY2thZ2UoXG4gICAgZGF0YVBhY2thZ2U6IFBhY2thZ2UsXG4gICAgb3B0aW9uczogeyB0YXJnZXQ6IHN0cmluZzsgd2l0aFJlbW90ZT86IGJvb2xlYW4gfSxcbiAgKSB7XG4gICAgY29uc3QgaXNaaXAgPSBnZXRJc1ppcChvcHRpb25zLnRhcmdldClcbiAgICBpZiAoIWlzWmlwKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBhd2FpdCBzYXZlUGFja2FnZVRvWmlwKGRhdGFQYWNrYWdlLCB7XG4gICAgICBhcmNoaXZlUGF0aDogb3B0aW9ucy50YXJnZXQsXG4gICAgICB3aXRoUmVtb3RlOiAhIW9wdGlvbnM/LndpdGhSZW1vdGUsXG4gICAgfSlcblxuICAgIHJldHVybiB7IHBhdGg6IHVuZGVmaW5lZCB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SXNaaXAocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLmVuZHNXaXRoKFwiLnppcFwiKVxufVxuIl19