Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit89bf2d4

Browse files
committed
add tests, fix windows path issue
1 parent8947d9f commit89bf2d4

15 files changed

+97
-203
lines changed

‎lib/importPaths.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ var path_1 = require('path');
33
varimportPathRegex=/require\(["'](BASE.+)["']\)([a-zA-Z0-9\-\_]+)?|^import.+?\s?["'](BASE.+)["'];?$/m;
44
varrelativePathRegex=/^BASE/;
55
functionfixImportPaths(_a){
6-
vardir=_a.dir,content=_a.content;
6+
vardir=_a.dir,content=_a.content,isWindows=_a.isWindows;
77
varentries=newSet([]);
88
returncontent.split('\n').map(function(line){
99
varisMatch=line.match(importPathRegex);
1010
if(!isMatch){
1111
returnline;
1212
}
13-
varimportPath=isMatch[1]||isMatch[2];
13+
varimportPath=isMatch[1]||isMatch[2]||isMatch[3];
1414
if(importPath.match(relativePathRegex)){
1515
varnewPath=path_1.join(dir,importPath.replace('BASE',''));
16+
if(isWindows){
17+
importPath=importPath.split('\\').join('\\\\');
18+
}
1619
varnewLine=line.replace(importPath,newPath);
1720
if(!entries.has(newLine)){
1821
entries.add(newLine);

‎lib/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"use strict";
22
varimportPaths_1=require('./importPaths');
33
varjsCodeRoad=function(_a){
4-
vardir=_a.dir,content=_a.content;
5-
return("\n(function(){'use strict';\nrequire('babel-register')({plugins:[['transform-es2015-modules-commonjs',{loose:true,sourceRoot:'"+dir+"'}]]});\n"+require('process-console-log').logger+"\nlet _fileExists = require('node-file-exists').default;\nlet_resolve = require('path').resolve;\nglobal.exists = (p) => _fileExists(_resolve('"+dir+"',p));\nrequire = require('rewire-coderoad');\n\n// unit tests\n\n"+importPaths_1.default({dir:dir,content:content})+"\n\n}());");
4+
vardir=_a.dir,content=_a.content,isWindows=_a.isWindows;
5+
return("\n(function(){'use strict';\nrequire('babel-register')({plugins:[['transform-es2015-modules-commonjs',{loose:true,sourceRoot:'"+dir+"'}]]});\n"+require('process-console-log').logger+"\nlet _fileExists = require('node-file-exists').default;\nlet_path = require('path');\nglobal.exists = (p) => _fileExists(_path.join('"+dir+"',p));\nrequire = require('rewire-coderoad');\n\n// unit tests\n\n"+importPaths_1.default({dir:dir,content:content})+"\n\n}());");
66
};
77
Object.defineProperty(exports,"__esModule",{value:true});
88
exports.default=jsCodeRoad;

‎lib/rewire-ts/__get__.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎lib/rewire-ts/addImportsAsVars.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

‎lib/rewire-ts/fileExists.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎lib/rewire-ts/getDefinePropertySrc.js

Lines changed: 0 additions & 17 deletions
This file was deleted.

‎lib/rewire-ts/getImportGlobalsSrc.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

‎lib/rewire-ts/index.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

‎lib/rewire-ts/moduleEnv.js

Lines changed: 0 additions & 25 deletions
This file was deleted.

‎lib/rewire-ts/rewire.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name":"js-coderoad",
3-
"version":"0.1.3",
3+
"version":"0.1.4",
44
"description":"bundled javascript features for coderoad test runners",
55
"keywords": [
66
"coderoad",
@@ -25,7 +25,8 @@
2525
"url":"git+https://github.com/coderoad/js-coderoad.git"
2626
},
2727
"scripts": {
28-
"test":"echo\"Error: no test specified\" && exit 1"
28+
"test":"ava test/*.js",
29+
"watch:test":"ava test/*.js --watch"
2930
},
3031
"dependencies": {
3132
"babel-plugin-transform-es2015-modules-commonjs":"6.11.5",
@@ -34,5 +35,9 @@
3435
"node-file-exists":"1.1.0",
3536
"process-console-log":"0.2.3",
3637
"rewire-coderoad":"^3.1.1"
38+
},
39+
"devDependencies": {
40+
"ava":"^0.16.0",
41+
"sinon":"^1.17.5"
3742
}
3843
}

‎src/importPaths.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const importPathRegex =
1010
/require\(["'](BASE.+)["']\)([a-zA-Z0-9\-\_]+)?|^import.+?\s?["'](BASE.+)["'];?$/m;
1111
constrelativePathRegex=/^BASE/;
1212

13-
exportdefaultfunctionfixImportPaths({dir, content}):string{
13+
exportdefaultfunctionfixImportPaths({dir, content, isWindows}):string{
1414
// collect import lines
1515
letentries=newSet([]);
1616

@@ -21,12 +21,18 @@ export default function fixImportPaths({dir, content}): string {
2121
returnline;
2222
}
2323
// multiple cases due to import or require regex
24-
constimportPath=isMatch[1]||isMatch[2];
24+
letimportPath=isMatch[1]||isMatch[2]||isMatch[3];
2525
// import path: may be relative or absolute
2626

2727
// is a relative path
2828
if(importPath.match(relativePathRegex)){
2929
letnewPath=join(dir,importPath.replace('BASE',''));
30+
31+
// fix buggy Windows paths
32+
if(isWindows){
33+
importPath=importPath.split('\\').join('\\\\');
34+
}
35+
3036
letnewLine=line.replace(importPath,newPath);
3137
// add to map of entry files
3238
if(!entries.has(newLine)){

‎src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
importfixImportPathsfrom'./importPaths';
22

3-
constjsCodeRoad=({dir, content})=>(`
3+
constjsCodeRoad=({dir, content, isWindows})=>(`
44
(function(){'use strict';
55
require('babel-register')({plugins:[['transform-es2015-modules-commonjs',{loose:true,sourceRoot:'${dir}'}]]});
66
${require('process-console-log').logger}
77
let _fileExists = require('node-file-exists').default;
8-
let_resolve = require('path').resolve;
9-
global.exists = (p) => _fileExists(_resolve('${dir}',p));
8+
let_path = require('path');
9+
global.exists = (p) => _fileExists(_path.join('${dir}',p));
1010
require = require('rewire-coderoad');
1111
1212
// unit tests

‎test/importPaths.js

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
consttest=require('ava');
2+
constfixImportPaths=require('../lib/importPaths').default;
3+
4+
constmacDir='/usr/name/desktop/folder';
5+
constwinDir=`C:\\usr\\name\\desktop\\folder`;
6+
7+
test('does nothing if no imports',t=>{
8+
constcontent='var a = 42;';
9+
constresult=fixImportPaths({
10+
dir:macDir,
11+
content
12+
});
13+
t.is(result,content);
14+
});
15+
16+
// Require
17+
18+
test('handles require beginning with BASE',t=>{
19+
constcontent=`var example = require('BASE/example');`;
20+
constresult=fixImportPaths({
21+
dir:macDir,
22+
content
23+
});
24+
constexpected=`var example = require('${macDir}/example');`;
25+
t.is(result,expected);
26+
});
27+
28+
test('handles require beginning with BASE and following with a key',t=>{
29+
constcontent=`var example = require('BASE/example').default;`;
30+
constresult=fixImportPaths({
31+
dir:macDir,
32+
content
33+
});
34+
constexpected=`var example = require('${macDir}/example').default;`;
35+
t.is(result,expected);
36+
});
37+
38+
// Import
39+
40+
test('handles import beginning with BASE',t=>{
41+
constcontent=`import example from 'BASE/example';`;
42+
constresult=fixImportPaths({
43+
dir:macDir,
44+
content
45+
});
46+
constexpected=`import example from '${macDir}/example';`
47+
t.is(result,expected);
48+
});
49+
50+
test('handles named imports beginning with BASE',t=>{
51+
constcontent=`import { example } from 'BASE/example';`;
52+
constresult=fixImportPaths({
53+
dir:macDir,
54+
content
55+
});
56+
constexpected=`import { example } from '${macDir}/example';`
57+
t.is(result,expected);
58+
});
59+
60+
// Windows
61+
62+
test('handles test paths on Windows',t=>{
63+
constcontent=`var example = require('BASE/example');`;
64+
constresult=fixImportPaths({
65+
dir:winDir,
66+
content,
67+
isWindows:true
68+
});
69+
constexpected=`var example = require('${winDir}/example');`
70+
t.is(result,expected);
71+
});

‎tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"files": [
1919
"src/importPaths.ts",
2020
"src/index.ts",
21+
"src/system.ts",
2122
"src/rewire-ts/__get__.ts",
2223
"src/rewire-ts/addImportsAsVars.ts",
2324
"src/rewire-ts/fileExists.ts",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp