@codesnippets/codesnippets
Version:
Open source code snippets and examples.
85 lines (84 loc) • 2.77 kB
JavaScript
;
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);