1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.resolve = resolve;
|
7 | exports.resolveSync = resolveSync;
|
8 |
|
9 | var _promisify = _interopRequireDefault(require("./promisify"));
|
10 |
|
11 | var _resolve2 = _interopRequireDefault(require("resolve"));
|
12 |
|
13 | var _ = require("../");
|
14 |
|
15 | var _module = _interopRequireDefault(require("module"));
|
16 |
|
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18 |
|
19 |
|
20 |
|
21 | const resolveAsync = (0, _promisify.default)(_resolve2.default);
|
22 |
|
23 | async function resolve(fs, id, opts) {
|
24 | if (id === 'pnpapi') {
|
25 |
|
26 | return {
|
27 | resolved: 'pnpapi'
|
28 | };
|
29 | }
|
30 |
|
31 | let res = await resolveAsync(id, { ...opts,
|
32 |
|
33 | async readFile(filename, callback) {
|
34 | try {
|
35 | let res = await fs.readFile(filename);
|
36 | callback(null, res);
|
37 | } catch (err) {
|
38 | callback(err);
|
39 | }
|
40 | },
|
41 |
|
42 | async isFile(file, callback) {
|
43 | try {
|
44 | let stat = await fs.stat(file);
|
45 | callback(null, stat.isFile());
|
46 | } catch (err) {
|
47 | callback(null, false);
|
48 | }
|
49 | },
|
50 |
|
51 | async isDirectory(file, callback) {
|
52 | try {
|
53 | let stat = await fs.stat(file);
|
54 | callback(null, stat.isDirectory());
|
55 | } catch (err) {
|
56 | callback(null, false);
|
57 | }
|
58 | }
|
59 |
|
60 | });
|
61 |
|
62 | if (typeof res === 'string') {
|
63 | return {
|
64 | resolved: res
|
65 | };
|
66 | }
|
67 |
|
68 | return {
|
69 | resolved: res[0],
|
70 | pkg: res[1]
|
71 | };
|
72 | }
|
73 |
|
74 | function resolveSync(fs, id, opts) {
|
75 | if (id === 'pnpapi') {
|
76 |
|
77 | return {
|
78 | resolved: 'pnpapi'
|
79 | };
|
80 | }
|
81 |
|
82 |
|
83 | let res = _resolve2.default.sync(id, { ...opts,
|
84 | readFileSync: (...args) => {
|
85 | return fs.readFileSync(...args);
|
86 | },
|
87 | isFile: file => {
|
88 | try {
|
89 | let stat = fs.statSync(file);
|
90 | return stat.isFile();
|
91 | } catch (err) {
|
92 | return false;
|
93 | }
|
94 | },
|
95 | isDirectory: file => {
|
96 | try {
|
97 | let stat = fs.statSync(file);
|
98 | return stat.isDirectory();
|
99 | } catch (err) {
|
100 | return false;
|
101 | }
|
102 | }
|
103 | });
|
104 |
|
105 | return {
|
106 | resolved: res
|
107 | };
|
108 | } |
\ | No newline at end of file |