resolve-dependency-path
Advanced tools
Comparing version 1.0.1 to 1.0.2
11
index.js
@@ -27,2 +27,13 @@ var path = require('path'); | ||
filepath += fileExt; | ||
} else { | ||
// If a dependency starts with a period AND it doesn't already end | ||
// in .js AND doesn't use a custom plugin, add .js back to path. | ||
if (fileExt === '.js' && depExt !== '.js' && dep.indexOf('!') < 0) { | ||
filepath += fileExt; | ||
} else { | ||
// If using a SystemJS style plugin | ||
if (depExt.indexOf('!') > -1) { | ||
filepath += depExt.substring(0, depExt.indexOf('!')); | ||
} | ||
} | ||
} | ||
@@ -29,0 +40,0 @@ |
{ | ||
"name": "resolve-dependency-path", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Convert a dependency path into a filepath", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -1,7 +0,6 @@ | ||
### resolve-dependency-path | ||
### resolve-dependency-path [![npm](http://img.shields.io/npm/v/resolve-dependency-path.svg)](https://npmjs.org/package/resolve-dependency-path) [![npm](http://img.shields.io/npm/dm/resolve-dependency-path.svg)](https://npmjs.org/package/resolve-dependency-path) | ||
> Convert a dependency path into a filepath | ||
I literally wrote this simple function in a handful of projects and decided it should | ||
be its own module. | ||
`npm install resolve-dependency-path` | ||
@@ -8,0 +7,0 @@ ### Usage |
116
test/test.js
var assert = require('assert'); | ||
var resolvePath = require('../'); | ||
var path = require('path'); | ||
@@ -10,5 +11,36 @@ describe('resolve-dependency-path', function() { | ||
it('resolves w/initial period, w/ending in .js', function() { | ||
var depPath = './index'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert(resolved === __dirname + '/index.js'); | ||
}); | ||
it('resolves w/initial period, w/o ending in .js', function() { | ||
var depPath = './index.js'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert(resolved === __dirname + '/index.js'); | ||
}); | ||
it('resolves w/o initial period, w/o ending in .js', function() { | ||
var depPath = 'index'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert(resolved === __dirname + '/index.js'); | ||
}); | ||
it('resolves w/o initial period, w/ending in .js', function() { | ||
var depPath = 'index.js'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert(resolved === __dirname + '/index.js'); | ||
}); | ||
it('resolves relative paths', function() { | ||
var resolved = resolvePath('./bar', __dirname + '/foo.js', __dirname); | ||
assert(resolved === __dirname + '/bar.js'); | ||
@@ -40,2 +72,84 @@ }); | ||
}); | ||
describe('multiple period filenames', function() { | ||
it('resolves with multiple periods in the dependency path', function() { | ||
var depPath = './bar.baz.qux'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert(resolved === __dirname + '/bar.baz.qux.js'); | ||
}); | ||
it('does not duplicate extensions', function() { | ||
var depPath = '../index.js'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
// Extension after removing the .js extension | ||
var remainingExt = path.extname(path.basename(resolved, '.js')); | ||
assert.equal(remainingExt, ''); | ||
}); | ||
it('does not add the incorrect extension for sass files', function() { | ||
var depPath = 'styles'; | ||
var filename = __dirname + '/foo.scss'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.scss'); | ||
}); | ||
it('does not add the incorrect extension for mustache files', function() { | ||
var depPath = 'hgn!templates/foo.mustache'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.mustache'); | ||
}); | ||
}); | ||
describe('implicit jspm/systemjs style plugins', function() { | ||
it('resolve w/initial period', function() { | ||
var depPath = './templates/file.css!'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.css'); | ||
}); | ||
it('resolve w/o initial period', function() { | ||
var depPath = 'templates/file.css!'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.css'); | ||
}); | ||
}); | ||
describe('explicit jspm/systemjs style plugins', function() { | ||
it('resolve w/initial period', function() { | ||
var depPath = './templates/file.txt!text'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.txt'); | ||
}); | ||
it('resolve w/o initial period', function() { | ||
var depPath = 'templates/file.txt!text'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.txt'); | ||
}); | ||
}); | ||
describe('webpack support', function() { | ||
it.skip('resolves properly', function() { | ||
var depPath = './styles/foo.css'; | ||
var filename = __dirname + '/foo.js'; | ||
var directory = __dirname; | ||
var resolved = resolvePath(depPath, filename, directory); | ||
assert.equal(path.extname(resolved), '.css'); | ||
}); | ||
}); | ||
}); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9407
173
66