welsonjs/lib/credentials.js

70 lines
1.6 KiB
JavaScript
Raw Normal View History

2025-01-13 05:46:48 +00:00
// credentials.js
// Namhyeon Go <abuse@catswords.net>
// https://github.com/gnh1201/welsonjs
//
var FILE = require("lib/file");
var CREDENTIALS_DATA = [];
function getTextFromFile(filename) {
if (FILE.fileExists(filename)) {
return FILE.readFile(filename, FILE.CdoCharset.CdoUTF_8);
}
return "";
}
function readFromFile(type, filename) {
var data = JSON.parse(getTextFromFile(filename));
for (var provider in data) {
var prelude = "file:";
var value = (function(s) {
if (s.indexOf(prelude) == 0) {
var filename = s.substring(prelude.length);
return getTextFromFile(filename);
} else {
return s;
}
})(data[provider]);
push(type, provider, value);
}
}
function push(type, provider, value) {
CREDENTIALS_DATA.push({
"type": type,
"provider": provider,
"value": value
});
}
function get(type, provider, index) {
var index = index || 0;
var matches = CREDENTIALS_DATA.reduce(function(a, x) {
if (x.type == type && x.provider == provider) {
a.push(x.value);
}
return a;
}, []);
if (matches.length - 1 < index) {
return null;
}
return matches[index];
}
readFromFile("apikey", "data/apikey.json");
exports.readFromFile = readFromFile;
exports.push = push;
exports.get = get;
exports.VERSIONINFO = "Credential store (credentials.js) version 0.1";
exports.AUTHOR = "abuse@catswords.net";
exports.global = global;
exports.require = global.require;