1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- var path = require('path'),
- fs = require('fs');
- var getContextDirectory = require('./utility/get-context-directory'),
- enhancedRelative = require('./utility/enhanced-relative');
- module.exports = {
- name : 'projectRelative',
- decode: decode,
- encode: encode,
- root : getContextDirectory
- };
- function decode(uri) {
-
- var base = getContextDirectory.call(this),
- absFile = path.normalize(path.join(base, uri)),
- isValid = !!absFile && fs.existsSync(absFile) && fs.statSync(absFile).isFile();
- return isValid && absFile;
- }
- function encode(absolute) {
-
- var base = getContextDirectory.call(this);
- if (!base) {
- throw new Error('Cannot locate the Webpack project directory');
- }
- else {
- return '/' + enhancedRelative(base, absolute);
- }
- }
|