mirror of
https://github.com/pyscript/pyscript.git
synced 2026-02-21 11:01:26 -05:00
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { joinPaths } from '../utils';
|
|
import { FetchConfig } from "../pyconfig";
|
|
import { UserError } from '../exceptions';
|
|
|
|
export function calculatePaths(fetch_cfg: FetchConfig[]) {
|
|
const fetchPaths: string[] = [];
|
|
const paths: string[] = [];
|
|
fetch_cfg.forEach(function (each_fetch_cfg: FetchConfig) {
|
|
const from = each_fetch_cfg.from || "";
|
|
const to_folder = each_fetch_cfg.to_folder || ".";
|
|
const to_file = each_fetch_cfg.to_file;
|
|
const files = each_fetch_cfg.files;
|
|
if (files !== undefined)
|
|
{
|
|
if (to_file !== undefined)
|
|
{
|
|
throw new UserError(`Cannot use 'to_file' and 'files' parameters together!`);
|
|
}
|
|
for (const each_f of files)
|
|
{
|
|
const each_fetch_path = joinPaths([from, each_f]);
|
|
fetchPaths.push(each_fetch_path);
|
|
const each_path = joinPaths([to_folder, each_f]);
|
|
paths.push(each_path);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
fetchPaths.push(from);
|
|
const filename = to_file || from.split('/').pop();
|
|
if (filename === '') {
|
|
throw new UserError(`Couldn't determine the filename from the path ${from}, supply ${to_file} parameter!`);
|
|
}
|
|
else {
|
|
paths.push(joinPaths([to_folder, filename]));
|
|
}
|
|
}
|
|
});
|
|
return [paths, fetchPaths];
|
|
}
|