UNPKG

job-hoarder

Version:

Job board aggregator to pull in standardized job postings from company job pages

47 lines (46 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var lodash_unescape_1 = __importDefault(require("lodash.unescape")); var utils_1 = require("../utils"); var GreehouseParser = /** @class */ (function () { function GreehouseParser() { var _this = this; /** * Parse jobs from request result * @param {any} data String of jobs * @returns {Job[]} List of parsed jobs */ this.parseJobs = function (data) { if (!data) throw new Error('No jobs to parse'); var jobs = utils_1.ensureJSON(data); if (!jobs.jobs) throw new Error('Failed to parse jobs'); return jobs.jobs.map(function (j) { return _this.parseJob(j); }); }; /** * Parses job from request result * @param {any} data String of job result * @returns {Job} Object of parsed job */ this.parseJob = function (data) { if (!data) throw new Error('No job to parse'); var job = utils_1.ensureJSON(data); return { id: job.id.toString(), url: job.absolute_url, title: job.title, datePosted: new Date(job.updated_at), jobLocation: job.location.name, department: job.departments.map(function (d) { return d.name; }).join(', '), description: lodash_unescape_1.default(job.content), }; }; } return GreehouseParser; }()); exports.default = GreehouseParser;