UNPKG

@dpkit/file

Version:

Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames

107 lines 10.6 kB
import { describe, expect, it } from "vitest"; import { saveResourceFiles } from "./save.js"; describe("saveResourceFiles", () => { it.each([ { description: "local path", basepath: "data", resource: { path: "data/table.csv" }, descriptor: { path: "table.csv" }, }, { description: "local paths", basepath: "data", resource: { path: ["data/table1.csv", "data/table2.csv"] }, descriptor: { path: ["table1.csv", "table2.csv"] }, }, { description: "local path and remote path", basepath: "data", resource: { path: "data/table.csv", schema: "https://example.com/schema.json", }, descriptor: { path: "table.csv", schema: "https://example.com/schema.json", }, }, { description: "local path and remote path using withRemote", basepath: "data", withRemote: true, resource: { type: "table", path: "data/table.csv", schema: "https://example.com/schema.json", }, descriptor: { type: "table", path: "table.csv", schema: "schema.json", }, }, { description: "remote paths with the same filename using withRemote", basepath: "data", withRemote: true, resource: { path: [ "http://example1.com/table.csv", "http://example2.com/table.csv", "http://example3.com/table.csv", "http://example4.com/table.csv.zip", "http://example5.com/table.csv.zip", ], }, descriptor: { path: [ "table.csv", "table-1.csv", "table-2.csv", "table.csv.zip", "table-1.csv.zip", ], }, }, { description: "local paths in different folders", basepath: "data", resource: { type: "table", path: "data/folder1/table.csv", schema: "data/folder2/schema.json", }, descriptor: { type: "table", path: "folder1/table.csv", schema: "folder2/schema.json", }, }, { description: "local paths in different folders using withoutFolders", basepath: "data", withoutFolders: true, resource: { type: "table", path: "data/folder1/table.csv", schema: "data/folder2/schema.json", }, descriptor: { type: "table", path: "folder1-table.csv", schema: "folder2-schema.json", }, }, ])("$description", async ({ resource, basepath, withRemote, withoutFolders, descriptor }) => { expect( // @ts-ignore await saveResourceFiles(resource, { basepath, withRemote, withoutFolders, saveFile: async (props) => props.denormalizedPath, })).toEqual(descriptor); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcmVzb3VyY2Uvc2F2ZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFN0MsUUFBUSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ047WUFDRSxXQUFXLEVBQUUsWUFBWTtZQUN6QixRQUFRLEVBQUUsTUFBTTtZQUNoQixRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDcEMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUNsQztRQUNEO1lBQ0UsV0FBVyxFQUFFLGFBQWE7WUFDMUIsUUFBUSxFQUFFLE1BQU07WUFDaEIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtZQUMxRCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUU7U0FDbkQ7UUFDRDtZQUNFLFdBQVcsRUFBRSw0QkFBNEI7WUFDekMsUUFBUSxFQUFFLE1BQU07WUFDaEIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE1BQU0sRUFBRSxpQ0FBaUM7YUFDMUM7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLE1BQU0sRUFBRSxpQ0FBaUM7YUFDMUM7U0FDRjtRQUNEO1lBQ0UsV0FBVyxFQUFFLDZDQUE2QztZQUMxRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsTUFBTSxFQUFFLGlDQUFpQzthQUMxQztZQUNELFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsV0FBVztnQkFDakIsTUFBTSxFQUFFLGFBQWE7YUFDdEI7U0FDRjtRQUNEO1lBQ0UsV0FBVyxFQUFFLHNEQUFzRDtZQUNuRSxRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFO29CQUNKLCtCQUErQjtvQkFDL0IsK0JBQStCO29CQUMvQiwrQkFBK0I7b0JBQy9CLG1DQUFtQztvQkFDbkMsbUNBQW1DO2lCQUNwQzthQUNGO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRTtvQkFDSixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixlQUFlO29CQUNmLGlCQUFpQjtpQkFDbEI7YUFDRjtTQUNGO1FBQ0Q7WUFDRSxXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixNQUFNLEVBQUUsMEJBQTBCO2FBQ25DO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLE1BQU0sRUFBRSxxQkFBcUI7YUFDOUI7U0FDRjtRQUNEO1lBQ0UsV0FBVyxFQUFFLHVEQUF1RDtZQUNwRSxRQUFRLEVBQUUsTUFBTTtZQUNoQixjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsTUFBTSxFQUFFLDBCQUEwQjthQUNuQztZQUNELFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0Y7S0FDRixDQUFDLENBQ0EsY0FBYyxFQUNkLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE1BQU07UUFDSixhQUFhO1FBQ2IsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDaEMsUUFBUTtZQUNSLFVBQVU7WUFDVixjQUFjO1lBQ2QsUUFBUSxFQUFFLEtBQUssRUFBQyxLQUFLLEVBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQyxDQUNILENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3ZCLENBQUMsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgc2F2ZVJlc291cmNlRmlsZXMgfSBmcm9tIFwiLi9zYXZlLnRzXCJcblxuZGVzY3JpYmUoXCJzYXZlUmVzb3VyY2VGaWxlc1wiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcImxvY2FsIHBhdGhcIixcbiAgICAgIGJhc2VwYXRoOiBcImRhdGFcIixcbiAgICAgIHJlc291cmNlOiB7IHBhdGg6IFwiZGF0YS90YWJsZS5jc3ZcIiB9LFxuICAgICAgZGVzY3JpcHRvcjogeyBwYXRoOiBcInRhYmxlLmNzdlwiIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJsb2NhbCBwYXRoc1wiLFxuICAgICAgYmFzZXBhdGg6IFwiZGF0YVwiLFxuICAgICAgcmVzb3VyY2U6IHsgcGF0aDogW1wiZGF0YS90YWJsZTEuY3N2XCIsIFwiZGF0YS90YWJsZTIuY3N2XCJdIH0sXG4gICAgICBkZXNjcmlwdG9yOiB7IHBhdGg6IFtcInRhYmxlMS5jc3ZcIiwgXCJ0YWJsZTIuY3N2XCJdIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJsb2NhbCBwYXRoIGFuZCByZW1vdGUgcGF0aFwiLFxuICAgICAgYmFzZXBhdGg6IFwiZGF0YVwiLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgcGF0aDogXCJkYXRhL3RhYmxlLmNzdlwiLFxuICAgICAgICBzY2hlbWE6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9zY2hlbWEuanNvblwiLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0b3I6IHtcbiAgICAgICAgcGF0aDogXCJ0YWJsZS5jc3ZcIixcbiAgICAgICAgc2NoZW1hOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vc2NoZW1hLmpzb25cIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJsb2NhbCBwYXRoIGFuZCByZW1vdGUgcGF0aCB1c2luZyB3aXRoUmVtb3RlXCIsXG4gICAgICBiYXNlcGF0aDogXCJkYXRhXCIsXG4gICAgICB3aXRoUmVtb3RlOiB0cnVlLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgdHlwZTogXCJ0YWJsZVwiLFxuICAgICAgICBwYXRoOiBcImRhdGEvdGFibGUuY3N2XCIsXG4gICAgICAgIHNjaGVtYTogXCJodHRwczovL2V4YW1wbGUuY29tL3NjaGVtYS5qc29uXCIsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRvcjoge1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIHBhdGg6IFwidGFibGUuY3N2XCIsXG4gICAgICAgIHNjaGVtYTogXCJzY2hlbWEuanNvblwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInJlbW90ZSBwYXRocyB3aXRoIHRoZSBzYW1lIGZpbGVuYW1lIHVzaW5nIHdpdGhSZW1vdGVcIixcbiAgICAgIGJhc2VwYXRoOiBcImRhdGFcIixcbiAgICAgIHdpdGhSZW1vdGU6IHRydWUsXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBwYXRoOiBbXG4gICAgICAgICAgXCJodHRwOi8vZXhhbXBsZTEuY29tL3RhYmxlLmNzdlwiLFxuICAgICAgICAgIFwiaHR0cDovL2V4YW1wbGUyLmNvbS90YWJsZS5jc3ZcIixcbiAgICAgICAgICBcImh0dHA6Ly9leGFtcGxlMy5jb20vdGFibGUuY3N2XCIsXG4gICAgICAgICAgXCJodHRwOi8vZXhhbXBsZTQuY29tL3RhYmxlLmNzdi56aXBcIixcbiAgICAgICAgICBcImh0dHA6Ly9leGFtcGxlNS5jb20vdGFibGUuY3N2LnppcFwiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0b3I6IHtcbiAgICAgICAgcGF0aDogW1xuICAgICAgICAgIFwidGFibGUuY3N2XCIsXG4gICAgICAgICAgXCJ0YWJsZS0xLmNzdlwiLFxuICAgICAgICAgIFwidGFibGUtMi5jc3ZcIixcbiAgICAgICAgICBcInRhYmxlLmNzdi56aXBcIixcbiAgICAgICAgICBcInRhYmxlLTEuY3N2LnppcFwiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcImxvY2FsIHBhdGhzIGluIGRpZmZlcmVudCBmb2xkZXJzXCIsXG4gICAgICBiYXNlcGF0aDogXCJkYXRhXCIsXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIHBhdGg6IFwiZGF0YS9mb2xkZXIxL3RhYmxlLmNzdlwiLFxuICAgICAgICBzY2hlbWE6IFwiZGF0YS9mb2xkZXIyL3NjaGVtYS5qc29uXCIsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRvcjoge1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIHBhdGg6IFwiZm9sZGVyMS90YWJsZS5jc3ZcIixcbiAgICAgICAgc2NoZW1hOiBcImZvbGRlcjIvc2NoZW1hLmpzb25cIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJsb2NhbCBwYXRocyBpbiBkaWZmZXJlbnQgZm9sZGVycyB1c2luZyB3aXRob3V0Rm9sZGVyc1wiLFxuICAgICAgYmFzZXBhdGg6IFwiZGF0YVwiLFxuICAgICAgd2l0aG91dEZvbGRlcnM6IHRydWUsXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIHBhdGg6IFwiZGF0YS9mb2xkZXIxL3RhYmxlLmNzdlwiLFxuICAgICAgICBzY2hlbWE6IFwiZGF0YS9mb2xkZXIyL3NjaGVtYS5qc29uXCIsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRvcjoge1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIHBhdGg6IFwiZm9sZGVyMS10YWJsZS5jc3ZcIixcbiAgICAgICAgc2NoZW1hOiBcImZvbGRlcjItc2NoZW1hLmpzb25cIixcbiAgICAgIH0sXG4gICAgfSxcbiAgXSkoXG4gICAgXCIkZGVzY3JpcHRpb25cIixcbiAgICBhc3luYyAoeyByZXNvdXJjZSwgYmFzZXBhdGgsIHdpdGhSZW1vdGUsIHdpdGhvdXRGb2xkZXJzLCBkZXNjcmlwdG9yIH0pID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBhd2FpdCBzYXZlUmVzb3VyY2VGaWxlcyhyZXNvdXJjZSwge1xuICAgICAgICAgIGJhc2VwYXRoLFxuICAgICAgICAgIHdpdGhSZW1vdGUsXG4gICAgICAgICAgd2l0aG91dEZvbGRlcnMsXG4gICAgICAgICAgc2F2ZUZpbGU6IGFzeW5jIHByb3BzID0+IHByb3BzLmRlbm9ybWFsaXplZFBhdGgsXG4gICAgICAgIH0pLFxuICAgICAgKS50b0VxdWFsKGRlc2NyaXB0b3IpXG4gICAgfSxcbiAgKVxufSlcbiJdfQ==