UNPKG

@codesnippets/codesnippets

Version:
85 lines (84 loc) 2.77 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; exports.__esModule = true; exports.getLanguages = exports.getLanguageNames = exports.getLanguage = exports.reload = void 0; var fs = require("fs"); var path = require("path"); var syncRequest = require('sync-request'); var checkLock_1 = require("./checkLock"); var language_1 = require("./language"); var indexPath = path.resolve(path.join(__dirname, '../snippets.lock.json')); var index; var lockUrl = 'https://raw.githubusercontent.com/trimorphdev/codesnippets/master/snippets.lock.json'; /** * Reloads the snippets index. */ function reload() { if (checkLock_1.isUpToDateSync()) { var contents = fs.readFileSync(indexPath).toString(); index = JSON.parse(contents); } else { var res = syncRequest('GET', lockUrl); fs.writeFileSync(indexPath, res.body); index = JSON.parse(res.body.toString()); } } exports.reload = reload; /** * Gets a language by name. * @param name name of the Language * @returns the associated Language object */ function getLanguage(name) { if (!index) reload(); for (var _i = 0, _a = Object.keys(index); _i < _a.length; _i++) { var key = _a[_i]; if (key.toLowerCase() == name.toLowerCase()) { return new language_1.Language(key, index[key]); } } } exports.getLanguage = getLanguage; /** * A list of language names defined in snippets.jsonc * @returns list of languages */ function getLanguageNames() { if (!index) reload(); var languages = []; for (var _i = 0, _a = Object.keys(index); _i < _a.length; _i++) { var item = _a[_i]; languages.push(item); } return languages; } exports.getLanguageNames = getLanguageNames; /** * Gets a list of languages defined in snippets.jsonc * @returns list of languages */ function getLanguages() { if (!index) reload(); var languages = []; for (var _i = 0, _a = Object.keys(index); _i < _a.length; _i++) { var item = _a[_i]; languages.push(getLanguage(item)); } return languages; } exports.getLanguages = getLanguages; __exportStar(require("./language"), exports); __exportStar(require("./snippet"), exports);