smartpath/ts/smartpath.transform.ts

41 lines
1.4 KiB
TypeScript
Raw Normal View History

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