mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-29 18:46:20 -05:00
Add docstrings
This commit is contained in:
parent
5846dcacc8
commit
ab0979b958
2 changed files with 60 additions and 6 deletions
|
@ -24,9 +24,11 @@ var extraAppRoutes = [
|
|||
'^/[^\/]*\.html'
|
||||
];
|
||||
|
||||
/*
|
||||
* Given the relative path to the static directory, return an array of
|
||||
* patterns matching the files and directories there.
|
||||
*/
|
||||
var getStaticPaths = function (pathToStatic) {
|
||||
// Given the relative path to the static directory, return an array of
|
||||
// patterns matching the files and directories there.
|
||||
var staticPaths = glob.sync(path.resolve(__dirname, pathToStatic));
|
||||
return staticPaths.map( function (pathName) {
|
||||
// Reduce absolute path to relative paths like '/js'
|
||||
|
@ -35,23 +37,31 @@ var getStaticPaths = function (pathToStatic) {
|
|||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Given a list of express routes, return a list of patterns to match
|
||||
* the express route and a static view file associated with the route
|
||||
*/
|
||||
var getViewPaths = function (routes) {
|
||||
// Given a list of express routes, return a list of patterns to match
|
||||
// the express route and a static view file associated with the route
|
||||
return routes.map(function (route) {
|
||||
return route.pattern;
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Given a list of patterns for paths, OR all of them together into one
|
||||
* string suitable for a Fastly condition
|
||||
*/
|
||||
var pathsToCondition = function (paths) {
|
||||
// Given a list of patterns for paths, OR all of them together into one
|
||||
// string suitable for a Fastly condition
|
||||
return paths.reduce(function(conditionString, pattern) {
|
||||
var patternCondition = 'req.url ~ "' + pattern + '"';
|
||||
return conditionString + (conditionString ? ' || ' : '') + patternCondition;
|
||||
}, '');
|
||||
}
|
||||
|
||||
/*
|
||||
* Combine static paths, routes, and any additional paths to a single
|
||||
* fastly condition to match req.url
|
||||
*/
|
||||
var getAppRouteCondition = function (pathToStatic, routes, additionalPaths) {
|
||||
var staticPaths = getStaticPaths(pathToStatic);
|
||||
var viewPaths = getViewPaths(routes);
|
||||
|
|
|
@ -1,17 +1,45 @@
|
|||
var Fastly = require('fastly');
|
||||
|
||||
/*
|
||||
* Fastly library extended to allow configuration for a particular service
|
||||
* and some helper methods.
|
||||
*
|
||||
* @param {string} API key
|
||||
* @param {string} Service id
|
||||
*/
|
||||
module.exports = function (apiKey, serviceId) {
|
||||
var fastly = Fastly(apiKey);
|
||||
fastly.serviceId = serviceId;
|
||||
|
||||
/*
|
||||
* Helper method to NOT a condition statement
|
||||
*
|
||||
* @param {string} Statement
|
||||
*
|
||||
* @return {string}
|
||||
*/
|
||||
fastly.negateConditionStatement = function (statement) {
|
||||
return '!(' + statement + ')';
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Helper method for constructing Fastly API urls
|
||||
*
|
||||
* @param {string} Service id
|
||||
* @param {number} Version
|
||||
*
|
||||
* @return {string}
|
||||
*/
|
||||
fastly.getFastlyAPIPrefix = function (serviceId, version) {
|
||||
return '/service/' + encodeURIComponent(serviceId) + '/version/' + version;
|
||||
};
|
||||
|
||||
/*
|
||||
* getLatestVersion: Get the most recent version for the configured service
|
||||
*
|
||||
* @param {callback} Callback with signature *err, latestVersion)
|
||||
*/
|
||||
fastly.getLatestVersion = function (cb) {
|
||||
if (!this.serviceId) {
|
||||
console.error('Failed to get latest version.');
|
||||
|
@ -32,6 +60,14 @@ module.exports = function (apiKey, serviceId) {
|
|||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* setCondition: Upsert a Fastly condition entry
|
||||
* Attempts to PUT and POSTs if the PUT request is a 404
|
||||
*
|
||||
* @param {number} Version number
|
||||
* @param {object} Condition object sent to the API
|
||||
* @param {callback} Callback for fastly.request
|
||||
*/
|
||||
fastly.setCondition = function (version, condition, cb) {
|
||||
if (!this.serviceId) {
|
||||
console.error('Failed to set condition', condition);
|
||||
|
@ -59,6 +95,14 @@ module.exports = function (apiKey, serviceId) {
|
|||
}.bind(this));
|
||||
};
|
||||
|
||||
/*
|
||||
* setFastlyHeader: Upsert a Fastly header entry
|
||||
* Attempts to PUT and POSTs if the PUT request is a 404
|
||||
*
|
||||
* @param {number} Version number
|
||||
* @param {object} Header object sent to the API
|
||||
* @param {callback} Callback for fastly.request
|
||||
*/
|
||||
fastly.setFastlyHeader = function (version, header, cb) {
|
||||
if (!this.serviceId) {
|
||||
console.error('Failed to set header', header);
|
||||
|
|
Loading…
Reference in a new issue