2016-06-14 03:16:43 +00:00
|
|
|
import "typings-global";
|
2016-03-12 07:24:05 +00:00
|
|
|
import plugins = require("./smartpath.plugins");
|
|
|
|
|
2016-03-20 17:59:30 +00:00
|
|
|
/* ------------------------------------------ *
|
|
|
|
* ------------ helpers --------------------- *
|
|
|
|
* ------------------------------------------ */
|
|
|
|
let makeAbsolute = function(localPathArg:string, baseArg?:string):string {
|
2016-03-12 07:24:05 +00:00
|
|
|
let absolutePath:string;
|
|
|
|
if(baseArg){
|
|
|
|
absolutePath = plugins.path.join(baseArg,localPathArg);
|
|
|
|
} else {
|
|
|
|
absolutePath = plugins.path.resolve(localPathArg);
|
|
|
|
}
|
|
|
|
return absolutePath;
|
|
|
|
};
|
|
|
|
|
2016-03-20 17:59:30 +00:00
|
|
|
/* ------------------------------------------ *
|
|
|
|
* ------- export functions ----------------- *
|
|
|
|
* ------------------------------------------ */
|
|
|
|
export let toAbsolute = function(relativeArg:any, baseArg?:string):any {
|
2016-03-12 07:24:05 +00:00
|
|
|
if(typeof relativeArg === "string"){
|
2016-03-12 08:36:30 +00:00
|
|
|
return makeAbsolute(relativeArg,baseArg);
|
2016-03-12 07:24:05 +00:00
|
|
|
} else if(Array.isArray(relativeArg)){
|
|
|
|
let relativeArray = relativeArg
|
2016-03-12 08:36:30 +00:00
|
|
|
let absoluteArray:string[] = [];
|
2016-03-12 07:24:05 +00:00
|
|
|
for (let key in relativeArray){
|
2016-03-12 08:36:30 +00:00
|
|
|
absoluteArray.push(makeAbsolute(relativeArray[key],baseArg));
|
2016-03-12 07:24:05 +00:00
|
|
|
};
|
|
|
|
return absoluteArray;
|
|
|
|
} else {
|
|
|
|
plugins.beautylog.error("smartpath.absolute() could not make sense of the input. " +
|
|
|
|
"Input is neither String nor Array");
|
|
|
|
return false;
|
|
|
|
}
|
2016-03-20 17:59:30 +00:00
|
|
|
};
|