webstorm-init
Version:
CLI tool to write initial WebStorm settings into a new project
73 lines • 2.94 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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchSearchResults = exports.fetchArticle = void 0;
const got_1 = __importDefault(require("got"));
const wtf_wikipedia_1 = __importDefault(require("wtf_wikipedia"));
const store_1 = require("./store");
exports.fetchArticle = (title) => __awaiter(void 0, void 0, void 0, function* () {
let doc;
try {
doc = yield wtf_wikipedia_1.default.fetch(title, store_1.store.lang);
if (!doc) {
return {
type: "SearchError",
reason: "Error fetching article.",
};
}
}
catch (_a) {
return {
type: "SearchError",
reason: "Error fetching article.",
};
}
let summary;
if (doc.isDisambiguation()) {
summary = "This is a disambiguation page.";
}
else if (doc.isRedirect()) {
summary = "This is a redirection page.";
}
else {
summary = doc.sections()[0].text();
}
return { type: "Article", title: doc.title(), summary };
});
exports.fetchSearchResults = (query) => __awaiter(void 0, void 0, void 0, function* () {
let response;
try {
response = yield got_1.default(`https://${store_1.store.lang}.wikipedia.org/w/api.php?action=query&format=json&generator=prefixsearch&prop=pageprops%7Cdescription&redirects=&ppprop=displaytitle&gpssearch=${query}&gpsnamespace=0&gpslimit=6`);
}
catch (_b) {
return {
type: "SearchError",
reason: "Error fetching search results.",
};
}
const rawResults = JSON.parse(response.body);
if (!rawResults.query || !rawResults.query.pages) {
return {
type: "SearchError",
reason: "No search results.",
};
}
// extract and sort pages by index
const pages = Object.values(rawResults.query.pages).sort((a, b) => a.index - b.index);
return {
type: "Results",
results: pages,
};
});
//# sourceMappingURL=api.js.map