2
0
Fork 0
node-ff-assets/lib/asset-assembler-config.js

70 lines
1.7 KiB
JavaScript

'use strict';
var name = 'node-ff-assets';
var downloadTimeout = (1000*10) * 6; // 1min
var downloadMaxSize = (1024*1024) * 10; // 10mb
var template = {
downloadStartDelay: null,
downloadForce: false,
downloadOptions: {
timeout: downloadTimeout,
maxResponseLength: downloadMaxSize,
agent: name+' remote fetcher',
},
linkTargetSingleResult: true,
linkTarget: null,
linkSources: [],
linkMapping: [],
assetType: null,
assetHeader: '/* '+name+': Auto generated. */\n',
assetFooter: '/* '+name+': end */\n',
assetSeperator: '\n/* '+name+': <%= file %> */\n\n',
};
function checkConfig(config,callback) {
if (!config) {
callback(new Error('no config'));
}
if (!config.linkTarget) {
callback(new Error('no config.linkTarget'));
}
if (!config.linkSources) {
callback(new Error('no config.linkSources'));
}
if (!config.linkMapping) {
callback(new Error('no config.linkMapping'));
}
callback();
}
function fillDefaults(config,callback) {
if (config.downloadOptions === undefined) {
config.downloadOptions = template.downloadOptions;
}
if (config.assetHeader === undefined) {
config.assetHeader = template.assetHeader;
}
if (config.assetFooter === undefined) {
config.assetFooter = template.assetFooter;
}
if (config.assetSeperator === undefined) {
config.assetSeperator = template.assetSeperator;
}
if (config.linkTargetSingleResult === undefined) {
config.linkTargetSingleResult = template.linkTargetSingleResult;
}
if (config.downloadForce === undefined) {
config.downloadForce = template.downloadForce;
}
callback(null,config);
}
module.exports = {
template: template,
checkConfig: checkConfig,
fillDefaults: fillDefaults,
};