// credentials.js // Namhyeon Go // 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;