1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var fs = require("fs");
|
4 | var path = require("path");
|
5 | function invertMap(obj, prop) {
|
6 | var ret = {};
|
7 | Object.keys(obj).forEach(function (key) {
|
8 | var v = prop ? obj[key][prop] : obj[key];
|
9 | (ret[v] || (ret[v] = [])).push(key);
|
10 | });
|
11 | return ret;
|
12 | }
|
13 | exports.invertMap = invertMap;
|
14 | function filterMap(xs, f) {
|
15 | var result = [];
|
16 | xs.forEach(function (x) {
|
17 | var mapped = f(x);
|
18 | if (mapped !== undefined)
|
19 | result.push(mapped);
|
20 | });
|
21 | return result;
|
22 | }
|
23 | exports.filterMap = filterMap;
|
24 | function makeModuleNameNoVer(name) {
|
25 | var atPos = name.indexOf("@", 1);
|
26 | return (atPos !== -1) ? name.substr(0, atPos) : name;
|
27 | }
|
28 | exports.makeModuleNameNoVer = makeModuleNameNoVer;
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 | function makeUnixPath(path) {
|
35 | return path.replace(/\\/g, "/");
|
36 | }
|
37 | exports.makeUnixPath = makeUnixPath;
|
38 |
|
39 |
|
40 |
|
41 |
|
42 | function chdir(dirpath) {
|
43 | var cwd = process.cwd();
|
44 | process.chdir(dirpath);
|
45 | return function (err) {
|
46 | process.chdir(cwd);
|
47 | return err ? Promise.reject(err) : Promise.resolve();
|
48 | };
|
49 | }
|
50 | exports.chdir = chdir;
|
51 | function mkdirpSync(p) {
|
52 | p = path.resolve(p);
|
53 | try {
|
54 | fs.mkdirSync(p);
|
55 | }
|
56 | catch (e) {
|
57 | if (e.code === "ENOENT") {
|
58 | mkdirpSync(path.dirname(p));
|
59 | mkdirpSync(p);
|
60 | }
|
61 | else {
|
62 | var stat;
|
63 | try {
|
64 | stat = fs.statSync(p);
|
65 | }
|
66 | catch (e1) {
|
67 | throw e;
|
68 | }
|
69 | if (!stat.isDirectory())
|
70 | throw e;
|
71 | }
|
72 | }
|
73 | }
|
74 | exports.mkdirpSync = mkdirpSync;
|