Skip to content

Commit

Permalink
deprecated: config.importPathPrefix
Browse files Browse the repository at this point in the history
  • Loading branch information
h13i32maru committed Aug 15, 2015
1 parent 32a02ff commit 0dacc5a
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 47 deletions.
17 changes: 10 additions & 7 deletions src/ESDoc.js
Expand Up @@ -38,11 +38,11 @@ export default class ESDoc {
config = Plugin.onHandleConfig(config);

this._setDefaultConfig(config);
this._deprecatedConfig(config);

Logger.debug = !!config.debug;
let includes = config.includes.map((v) => new RegExp(v));
let excludes = config.excludes.map((v) => new RegExp(v));
let pathPrefix = config.importPathPrefix;

let packageName = null;
let mainFilePath = null;
Expand Down Expand Up @@ -74,7 +74,7 @@ export default class ESDoc {
if (filePath.match(reg)) return;
}

let temp = this._traverse(config.source, filePath, packageName, mainFilePath, pathPrefix);
let temp = this._traverse(config.source, filePath, packageName, mainFilePath);
if (!temp) return;
results.push(...temp.results);

Expand Down Expand Up @@ -157,8 +157,6 @@ export default class ESDoc {

if (!config.package) config.package = './package.json';

if (!config.importPathPrefix) config.importPathPrefix = '';

if (!config.styles) config.styles = [];

if (!config.scripts) config.scripts = [];
Expand All @@ -171,6 +169,12 @@ export default class ESDoc {
}
}

static _deprecatedConfig(config) {
if (config.importPathPrefix) {
console.log('[deprecated] config.importPathPrefix is deprecated. Use esdoc-importpath-plugin(https://github.com/esdoc/esdoc-importpath-plugin)');
}
}

/**
* Use built-in external document.
* built-in external has number, string, boolean, etc...
Expand Down Expand Up @@ -215,13 +219,12 @@ export default class ESDoc {
* @param {string} filePath - target JavaScript file path.
* @param {string} [packageName] - npm package name of target.
* @param {string} [mainFilePath] - npm main file path of target.
* @param {string} [pathPrefix] - prefix of import path from root directory.
* @returns {Object} - return document that is traversed.
* @property {DocObject[]} results - this is contained JavaScript file.
* @property {AST} ast - this is AST of JavaScript file.
* @private
*/
static _traverse(inDirPath, filePath, packageName, mainFilePath, pathPrefix) {
static _traverse(inDirPath, filePath, packageName, mainFilePath) {
logger.i(`parsing: ${filePath}`);
let ast;
try {
Expand All @@ -231,7 +234,7 @@ export default class ESDoc {
return null;
}

let pathResolver = new PathResolver(inDirPath, filePath, packageName, mainFilePath, pathPrefix);
let pathResolver = new PathResolver(inDirPath, filePath, packageName, mainFilePath);
let factory = new DocFactory(ast, pathResolver);

ASTUtil.traverse(ast, (node, parent)=>{
Expand Down
22 changes: 6 additions & 16 deletions src/Util/PathResolver.js
Expand Up @@ -5,7 +5,7 @@ import os from 'os';
/**
* file path resolver.
* @example
* let pathResolver = new PathResolver('./src', 'foo/bar.js', 'foo-bar', 'out/foo/bar.js', 'out');
* let pathResolver = new PathResolver('./src', 'foo/bar.js', 'foo-bar', 'foo/bar.js');
* pathResolver.importPath; // 'foo-bar'
* pathResolver.filePath; // 'src/foo/bar.js'
* pathResolver.resolve('./baz.js'); // 'src/foo/baz.js'
Expand All @@ -17,9 +17,8 @@ export default class PathResolver {
* @param {string} filePath - relative file path from root directory path.
* @param {string} [packageName] - npm package name.
* @param {string} [mainFilePath] - npm main file path.
* @param {string} [pathPrefix] - import path prefix.
*/
constructor(inDirPath, filePath, packageName = null, mainFilePath = null, pathPrefix = '') {
constructor(inDirPath, filePath, packageName = null, mainFilePath = null) {
assert(inDirPath);
assert(filePath);

Expand All @@ -36,31 +35,22 @@ export default class PathResolver {
/** @type {string} */
this._mainFilePath = path.resolve(mainFilePath);
}

/** @type {string} */
this._pathPrefix = pathPrefix || '';

if (this._pathPrefix) {
/** @type {string} */
this._prefixedFilePath = path.resolve(`${this._pathPrefix}${path.sep}${this.filePath}`);
} else {
this._prefixedFilePath = path.resolve(this.filePath);
}
}

/**
* import path that is considered package name, main file and path prefix.
* @type {string}
*/
get importPath() {
if (this._mainFilePath === this._prefixedFilePath) {
let relativeFilePath = this.filePath;

if (this._mainFilePath === path.resolve(relativeFilePath)) {
return this._packageName;
}

let relativeFilePath = this.filePath;
let filePath;
if (this._packageName) {
filePath = path.normalize(`${this._packageName}${path.sep}${this._pathPrefix}${path.sep}${relativeFilePath}`);
filePath = path.normalize(`${this._packageName}${path.sep}${relativeFilePath}`);
} else {
filePath = `./${relativeFilePath}`;
}
Expand Down
2 changes: 1 addition & 1 deletion test/fixture/package.json
Expand Up @@ -5,5 +5,5 @@
"type": "git",
"url": "https://github.com/h13i32maru/esdoc"
},
"main": "./out/src/MyClass.js"
"main": "./src/MyClass.js"
}
16 changes: 8 additions & 8 deletions test/src/BuilderTest/ExportDocTest.js
Expand Up @@ -9,7 +9,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport1.html');

it('has instance notice.', ()=>{
assert.includes(doc, '[data-ice="importPath"]', "import MyExport1 from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import MyExport1 from 'esdoc-test-fixture/src/Export.js'");
assert.includes(doc, '.self-detail', 'You can directly use instance of this class. myExport1');
});
});
Expand All @@ -18,7 +18,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport2.html');

it('has instance notice.', ()=>{
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/out/src/Export.js");
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/src/Export.js");
assert.includes(doc, '.self-detail', 'You can directly use instance of this class. myExport2');
});
});
Expand All @@ -27,7 +27,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport3.html');

it('has instance notice.', ()=>{
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/out/src/Export.js");
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/src/Export.js");
assert.includes(doc, '.self-detail', 'You can directly use instance of this class. myExport3');
});
});
Expand All @@ -36,7 +36,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport4.html');

it('has instance notice.', ()=>{
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/out/src/Export.js");
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/src/Export.js");
assert.includes(doc, '.self-detail', 'You can directly use instance of this class. myExport4');
});
});
Expand All @@ -45,7 +45,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport5.html');

it('has instance notice.', ()=>{
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/out/src/Export.js");
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/src/Export.js");
assert.includes(doc, '.self-detail', 'You can directly use instance of this class. myExport5');
});
});
Expand All @@ -54,7 +54,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport6.html');

it('does not have instance notice.', ()=>{
assert.includes(doc, '[data-ice="importPath"]', "import {MyExport6} from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {MyExport6} from 'esdoc-test-fixture/src/Export.js'");
assert.notIncludes(doc, '.self-detail', 'You can directly use instance of this class.');
});
});
Expand All @@ -63,7 +63,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport9.html');

it('has instance notice.', ()=>{
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/out/src/Export.js");
assert.notIncludes(doc, '[data-ice="importPath"]', "esdoc-test-fixture/src/Export.js");
assert.notIncludes(doc, '.self-detail', 'You can directly use instance of this class.');
});
});
Expand All @@ -72,7 +72,7 @@ describe('Export:', ()=>{
let doc = readDoc('class/src/Export.js~MyExport99.html');

it('does not have instance notice.', ()=>{
assert.includes(doc, '[data-ice="importPath"]', "import {MyExport99} from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {MyExport99} from 'esdoc-test-fixture/src/Export.js'");
assert.notIncludes(doc, '.self-detail', 'You can directly use instance of this class.');
});
});
Expand Down
10 changes: 5 additions & 5 deletions test/src/BuilderTest/FunctionDocTest.js
Expand Up @@ -26,7 +26,7 @@ describe('MyFunction:', ()=>{
it('has detail.', ()=>{
find(doc, '[data-ice="detail"]:nth-of-type(1)', (doc)=>{
assert.includes(doc, '#static-function-myFunction1', 'public myFunction1()');
assert.includes(doc, '[data-ice="importPath"]', "import myFunction1 from 'esdoc-test-fixture/out/src/myFunction.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myFunction1 from 'esdoc-test-fixture/src/myFunction.js'");

find(doc, '[data-ice="example"]', (doc)=>{
assert.includes(doc, 'div.example-doc:nth-of-type(1)', 'This is example caption');
Expand All @@ -38,12 +38,12 @@ describe('MyFunction:', ()=>{

find(doc, '[data-ice="detail"]:nth-of-type(2)', (doc)=>{
assert.includes(doc, '#static-function-myFunction2', 'public myFunction2(p1: number, p2: string)');
assert.includes(doc, '[data-ice="importPath"]', "import {myFunction2} from 'esdoc-test-fixture/out/src/myFunction.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myFunction2} from 'esdoc-test-fixture/src/myFunction.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(3)', (doc)=>{
assert.includes(doc, '#static-function-myFunction3', 'public myFunction3(): number');
assert.includes(doc, '[data-ice="importPath"]', "import {myFunction3} from 'esdoc-test-fixture/out/src/myFunction.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myFunction3} from 'esdoc-test-fixture/src/myFunction.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(4)', (doc)=>{
Expand All @@ -68,12 +68,12 @@ describe('MyFunction:', ()=>{

find(doc, '[data-ice="detail"]:nth-of-type(9)', (doc)=>{
assert.includes(doc, '#static-function-myFunctionSeparateExport1', 'public myFunctionSeparateExport1(p1: number)');
assert.includes(doc, '[data-ice="importPath"]', "import myFunctionSeparateExport1 from 'esdoc-test-fixture/out/src/myFunction.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myFunctionSeparateExport1 from 'esdoc-test-fixture/src/myFunction.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(10)', (doc)=>{
assert.includes(doc, '#static-function-myFunctionSeparateExport2', 'public myFunctionSeparateExport2(p1: number)');
assert.includes(doc, '[data-ice="importPath"]', "import {myFunctionSeparateExport2} from 'esdoc-test-fixture/out/src/myFunction.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myFunctionSeparateExport2} from 'esdoc-test-fixture/src/myFunction.js'");
});
});
});
20 changes: 10 additions & 10 deletions test/src/BuilderTest/VariableDocTest.js
Expand Up @@ -29,42 +29,42 @@ describe('MyVariable:', ()=> {
it('has detail.', ()=> {
find(doc, '[data-ice="detail"]:nth-of-type(1)', (doc)=> {
assert.includes(doc, '#static-variable-myExport1', 'public myExport1: MyExport1');
assert.includes(doc, '[data-ice="importPath"]', "import myExport1 from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myExport1 from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(2)', (doc)=> {
assert.includes(doc, '#static-variable-myExport10', 'public myExport10: MyExport10');
assert.includes(doc, '[data-ice="importPath"]', "import {myExport10} from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myExport10} from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(3)', (doc)=> {
assert.includes(doc, '#static-variable-myExport2', 'public myExport2: MyExport2');
assert.includes(doc, '[data-ice="importPath"]', "import myExport2 from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myExport2 from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(4)', (doc)=> {
assert.includes(doc, '#static-variable-myExport3', 'public myExport3: MyExport3');
assert.includes(doc, '[data-ice="importPath"]', "import myExport3 from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myExport3 from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(5)', (doc)=> {
assert.includes(doc, '#static-variable-myExport4', 'public myExport4: MyExport4');
assert.includes(doc, '[data-ice="importPath"]', "import {myExport4} from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myExport4} from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(6)', (doc)=> {
assert.includes(doc, '#static-variable-myExport5', 'public myExport5: MyExport5');
assert.includes(doc, '[data-ice="importPath"]', "import {myExport5} from 'esdoc-test-fixture/out/src/Export.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myExport5} from 'esdoc-test-fixture/src/Export.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(7)', (doc)=> {
assert.includes(doc, '#static-variable-myVariable1', 'public myVariable1: Object');
assert.includes(doc, '[data-ice="importPath"]', "import myVariable1 from 'esdoc-test-fixture/out/src/myVariable.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myVariable1 from 'esdoc-test-fixture/src/myVariable.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(8)', (doc)=> {
assert.includes(doc, '#static-variable-myVariable2', 'public myVariable2: number');
assert.includes(doc, '[data-ice="importPath"]', "import {myVariable2} from 'esdoc-test-fixture/out/src/myVariable.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myVariable2} from 'esdoc-test-fixture/src/myVariable.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(9)', (doc)=> {
Expand All @@ -81,12 +81,12 @@ describe('MyVariable:', ()=> {

find(doc, '[data-ice="detail"]:nth-of-type(12)', (doc)=> {
assert.includes(doc, '#static-variable-myVariableSeparateExport1', 'public myVariableSeparateExport1: {foo: number, bar: string}');
assert.includes(doc, '[data-ice="importPath"]', "import myVariableSeparateExport1 from 'esdoc-test-fixture/out/src/myVariable.js'");
assert.includes(doc, '[data-ice="importPath"]', "import myVariableSeparateExport1 from 'esdoc-test-fixture/src/myVariable.js'");
});

find(doc, '[data-ice="detail"]:nth-of-type(13)', (doc)=> {
assert.includes(doc, '#static-variable-myVariableSeparateExport2', 'public myVariableSeparateExport2: Object');
assert.includes(doc, '[data-ice="importPath"]', "import {myVariableSeparateExport2} from 'esdoc-test-fixture/out/src/myVariable.js'");
assert.includes(doc, '[data-ice="importPath"]', "import {myVariableSeparateExport2} from 'esdoc-test-fixture/src/myVariable.js'");
});
});
});

0 comments on commit 0dacc5a

Please sign in to comment.