UNPKG

2.37 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', {
4 value: true
5});
6exports.relative = relative;
7exports.resolve = resolve;
8
9function path() {
10 const data = _interopRequireWildcard(require('path'));
11
12 path = function () {
13 return data;
14 };
15
16 return data;
17}
18
19function _getRequireWildcardCache(nodeInterop) {
20 if (typeof WeakMap !== 'function') return null;
21 var cacheBabelInterop = new WeakMap();
22 var cacheNodeInterop = new WeakMap();
23 return (_getRequireWildcardCache = function (nodeInterop) {
24 return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
25 })(nodeInterop);
26}
27
28function _interopRequireWildcard(obj, nodeInterop) {
29 if (!nodeInterop && obj && obj.__esModule) {
30 return obj;
31 }
32 if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
33 return {default: obj};
34 }
35 var cache = _getRequireWildcardCache(nodeInterop);
36 if (cache && cache.has(obj)) {
37 return cache.get(obj);
38 }
39 var newObj = {};
40 var hasPropertyDescriptor =
41 Object.defineProperty && Object.getOwnPropertyDescriptor;
42 for (var key in obj) {
43 if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {
44 var desc = hasPropertyDescriptor
45 ? Object.getOwnPropertyDescriptor(obj, key)
46 : null;
47 if (desc && (desc.get || desc.set)) {
48 Object.defineProperty(newObj, key, desc);
49 } else {
50 newObj[key] = obj[key];
51 }
52 }
53 }
54 newObj.default = obj;
55 if (cache) {
56 cache.set(obj, newObj);
57 }
58 return newObj;
59}
60
61/**
62 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
63 *
64 * This source code is licensed under the MIT license found in the
65 * LICENSE file in the root directory of this source tree.
66 */
67// rootDir and filename must be absolute paths (resolved)
68function relative(rootDir, filename) {
69 return filename.indexOf(rootDir + path().sep) === 0
70 ? filename.substring(rootDir.length + 1)
71 : path().relative(rootDir, filename);
72}
73
74const INDIRECTION_FRAGMENT = '..' + path().sep; // rootDir must be an absolute path and relativeFilename must be simple
75// (e.g.: foo/bar or ../foo/bar, but never ./foo or foo/../bar)
76
77function resolve(rootDir, relativeFilename) {
78 return relativeFilename.indexOf(INDIRECTION_FRAGMENT) === 0
79 ? path().resolve(rootDir, relativeFilename)
80 : rootDir + path().sep + relativeFilename;
81}