mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
Added node-modules
This commit is contained in:
112
node_modules/googleapis/lib/cache.js
generated
vendored
Normal file
112
node_modules/googleapis/lib/cache.js
generated
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
/**
|
||||
* Copyright 2013 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var fs = require('fs');
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @private
|
||||
* Path to the temporary directory.
|
||||
* @type {String}
|
||||
*/
|
||||
Cache.TMP_DIR_ = __dirname + '/../.cache';
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @private
|
||||
* Default encoding for cached files.
|
||||
* @type {String}
|
||||
*/
|
||||
Cache.ENCODING_ = 'utf-8';
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @private
|
||||
* Default expires time in micro seconds.
|
||||
* @type {Number}
|
||||
*/
|
||||
Cache.EXPIRES_IN_ = 5 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* Cache constructor.
|
||||
* @param {String} opt_opts Optional options.
|
||||
*/
|
||||
function Cache(opt_opts) {
|
||||
this.opts = opt_opts || {};
|
||||
this.opts.path = this.opts.path || Cache.TMP_DIR_;
|
||||
if (!fs.existsSync(this.opts.path)) {
|
||||
fs.mkdirSync(this.opts.path, '700');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads discovery data from cache
|
||||
* @param {object} api
|
||||
* @return {object?} Returns the cached discovery data if exists
|
||||
* or not expired.
|
||||
*/
|
||||
Cache.prototype.load = function(api) {
|
||||
var path = this.getPath(api);
|
||||
// check if file exists and not expired
|
||||
if (!fs.existsSync(path)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (this.isExpired(path)) {
|
||||
// delete the expired cache file
|
||||
fs.unlinkSync(path);
|
||||
return null;
|
||||
}
|
||||
|
||||
var data = fs.readFileSync(this.getPath(api), Cache.ENCODING_);
|
||||
return data && JSON.parse(data);
|
||||
};
|
||||
|
||||
/**
|
||||
* Writes api discovery data to the cache.
|
||||
* @param {object} api
|
||||
* @param {object} data
|
||||
*/
|
||||
Cache.prototype.write = function(api, data) {
|
||||
data && fs.writeFileSync(
|
||||
this.getPath(api), JSON.stringify(data), Cache.ENCODING_);
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks whether the file at path is expired or not
|
||||
* @param {[type]} path The path of the file to check.
|
||||
* @return {Boolean} Returns true or false depending on the expiration.
|
||||
*/
|
||||
Cache.prototype.isExpired = function(path) {
|
||||
var expiresIn = this.opts.expiresIn || Cache.EXPIRES_IN_;
|
||||
return new Date(fs.statSync(path).mtime).getTime() - expiresIn < 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the path where the api data is stored at.
|
||||
* @param {[type]} api
|
||||
* @return {string} Path to the data file.
|
||||
*/
|
||||
Cache.prototype.getPath = function(api) {
|
||||
return this.opts.path + '/' + api.name + api.version;
|
||||
};
|
||||
|
||||
/**
|
||||
* Exports Cache.
|
||||
* @type {Cache}
|
||||
*/
|
||||
module.exports = Cache;
|
Reference in New Issue
Block a user