deno.land / x / trex@v1.13.1 / handlers / purge_package.ts

purge_package.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/** * Copyright (c) Crew Dev. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */
import { needProxy, Proxy } from "proxy";import type { importMap } from "../utils/types.ts";import { isCachePackage } from "./handle_cache.ts";import { getImportMap } from "./handle_files.ts";import * as colors from "fmt/colors.ts";import { STD } from "../utils/info.ts";
const { red, yellow, green } = colors;
const { args } = Deno;
/** * remove a package o url from cache memory */export async function purge() { const [, pkgOrUrl] = args;
const map = await getImportMap<importMap>();
if (map) { // for url package if (pkgOrUrl.includes("http://") || pkgOrUrl.includes("https://")) { const data = await isCachePackage(pkgOrUrl);
if (!data.exist) { throw new Error(red("this package was not found in the cache")).message; }
try { await Deno.remove(data.path, { recursive: true }); console.log( green(`${yellow(pkgOrUrl)} package was removed from cache`), ); } catch (err) { throw new Error(red(err.message)).message; } } // for import map package else if (pkgOrUrl in map?.imports) { const pkg = pkgOrUrl.replace("/", ""); let url = needProxy(pkg) ? Proxy(pkg) : map?.imports[pkgOrUrl]!;
// if is a std package if (STD.includes(pkg) && !(url.endsWith(".js") || url.endsWith(".ts"))) { url += "mod.ts"; }
const data = await isCachePackage(url);
if (!data.exist) { throw new Error(red("this package was not found in the cache")).message; }
try { await Deno.remove(data.path, { recursive: true }); console.log( green(`${yellow(pkgOrUrl)} package was removed from cache`), ); } catch (err) { throw new Error(red(err.message)).message; } } } // display error else { if (!["--help", "-h"].includes(pkgOrUrl)) { throw new Error( red(`package ${yellow(pkgOrUrl)} was not found in import map file `), ).message; } }}
trex

Version Info

Tagged at
9 months ago