UNPKG

ayakashi

Version:

The next generation web scraping framework

67 lines (66 loc) 2.93 kB
"use strict"; 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;