s2s
Version:
Source To Source
85 lines (64 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.toErrorStack = toErrorStack;
exports.getOutputPath = getOutputPath;
exports.writeFileSync = writeFileSync;
exports.relativeFromCwd = relativeFromCwd;
exports.getDirAndBaseName = getDirAndBaseName;
exports.isAlreadyExist = isAlreadyExist;
exports.resolveInputPath = resolveInputPath;
var _path = _interopRequireDefault(require("path"));
var _fs = _interopRequireDefault(require("fs"));
var _slash = _interopRequireDefault(require("slash"));
var _normalizePathSep = _interopRequireDefault(require("normalize-path-sep"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// eslint-disable-next-line flowtype/no-weak-types
function toErrorStack(err) {
if (err._babel && err instanceof SyntaxError) {
return `${err.name}: ${err.message}\n${err.codeFrame}`;
}
return err.stack;
}
function getOutputPath(output, input) {
if (_path.default.isAbsolute(output)) {
return output;
}
const inputPath = _path.default.extname(input) === '' ? (0, _normalizePathSep.default)(input) : _path.default.dirname((0, _normalizePathSep.default)(input));
return (0, _slash.default)(_path.default.join(inputPath, (0, _normalizePathSep.default)(output)));
}
function writeFileSync(outputPath, code) {
_fs.default.writeFileSync(outputPath, code, 'utf-8');
}
function relativeFromCwd(input) {
return (0, _slash.default)(_path.default.relative(process.cwd(), input));
}
function getDirAndBaseName(testPath) {
const dirname = _path.default.dirname(testPath);
const basename = _path.default.basename(testPath);
return {
dirname,
basename
};
}
function isAlreadyExist(input) {
try {
const code = _fs.default.readFileSync(input, 'utf-8');
if (code.length === 0 || code.trim() === '') {
return false;
}
return true;
} catch (error) {
return false;
}
}
function resolveInputPath(input, eventPath) {
if (!input) {
return eventPath;
}
if (_path.default.isAbsolute(input)) {
return input;
}
return _path.default.resolve(_path.default.dirname(eventPath), input);
}