ayakashi
Version:
The next generation web scraping framework
67 lines (66 loc) • 2.93 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareStandard = void 0;
const opLog_1 = require("../opLog/opLog");
const getDirectory_1 = require("./getDirectory");
const path_1 = require("path");
const tsHelpers_1 = require("./tsHelpers");
function prepareStandard(dir, alternativeConfigFile, skipTsBuild) {
return __awaiter(this, void 0, void 0, function* () {
const opLog = opLog_1.getOpLog();
let directory = getDirectory_1.getDirectory(dir);
//check if it's a ts project and use the dist directory
const ts = yield tsHelpers_1.isTypescriptProject(directory);
if (ts) {
directory = yield tsHelpers_1.getTypescriptDist(directory);
//we'll still compile if there is no dist folder even if the flag is set
if (!skipTsBuild || !(yield tsHelpers_1.isTypescriptDistReady(directory))) {
yield tsHelpers_1.buildTS();
}
}
let resolvedConfigFile;
if (alternativeConfigFile) {
if (ts) {
if (alternativeConfigFile.endsWith(".ts")) {
let c = alternativeConfigFile.split(path_1.sep).pop();
c = c.replace(".ts", ".js");
resolvedConfigFile = path_1.resolve(directory, c);
}
else {
resolvedConfigFile = path_1.resolve(alternativeConfigFile);
}
}
else {
resolvedConfigFile = path_1.resolve(alternativeConfigFile);
}
}
else {
resolvedConfigFile = path_1.resolve(directory, "ayakashi.config.js");
}
opLog.info("running project:", directory);
opLog.info("configFile:", resolvedConfigFile);
try {
let config = require(resolvedConfigFile);
if (config.default)
config = config.default;
return {
config: config,
directory: directory
};
}
catch (_e) {
opLog.error("Could not find a valid ayakashi config file");
process.exit(1);
}
});
}
exports.prepareStandard = prepareStandard;