From 0dacc5aba2ac1fde0fabd5e98101e64f1fdc25c5 Mon Sep 17 00:00:00 2001 From: h13i32maru Date: Sat, 15 Aug 2015 22:03:32 +0900 Subject: [PATCH] deprecated: config.importPathPrefix https://github.com/esdoc/esdoc/issues/46 --- src/ESDoc.js | 17 ++++++++++------- src/Util/PathResolver.js | 22 ++++++---------------- test/fixture/package.json | 2 +- test/src/BuilderTest/ExportDocTest.js | 16 ++++++++-------- test/src/BuilderTest/FunctionDocTest.js | 10 +++++----- test/src/BuilderTest/VariableDocTest.js | 20 ++++++++++---------- 6 files changed, 40 insertions(+), 47 deletions(-) diff --git a/src/ESDoc.js b/src/ESDoc.js index cf96db0b..428d8c80 100644 --- a/src/ESDoc.js +++ b/src/ESDoc.js @@ -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; @@ -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); @@ -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 = []; @@ -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... @@ -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 { @@ -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)=>{ diff --git a/src/Util/PathResolver.js b/src/Util/PathResolver.js index 1babce67..e459bee7 100644 --- a/src/Util/PathResolver.js +++ b/src/Util/PathResolver.js @@ -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' @@ -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); @@ -36,16 +35,6 @@ 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); - } } /** @@ -53,14 +42,15 @@ export default class PathResolver { * @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}`; } diff --git a/test/fixture/package.json b/test/fixture/package.json index c02f8fa8..46500850 100644 --- a/test/fixture/package.json +++ b/test/fixture/package.json @@ -5,5 +5,5 @@ "type": "git", "url": "https://github.com/h13i32maru/esdoc" }, - "main": "./out/src/MyClass.js" + "main": "./src/MyClass.js" } diff --git a/test/src/BuilderTest/ExportDocTest.js b/test/src/BuilderTest/ExportDocTest.js index 6f37f292..a4b69d3f 100644 --- a/test/src/BuilderTest/ExportDocTest.js +++ b/test/src/BuilderTest/ExportDocTest.js @@ -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'); }); }); @@ -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'); }); }); @@ -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'); }); }); @@ -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'); }); }); @@ -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'); }); }); @@ -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.'); }); }); @@ -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.'); }); }); @@ -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.'); }); }); diff --git a/test/src/BuilderTest/FunctionDocTest.js b/test/src/BuilderTest/FunctionDocTest.js index 49e62906..e73ebb73 100644 --- a/test/src/BuilderTest/FunctionDocTest.js +++ b/test/src/BuilderTest/FunctionDocTest.js @@ -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'); @@ -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)=>{ @@ -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'"); }); }); }); diff --git a/test/src/BuilderTest/VariableDocTest.js b/test/src/BuilderTest/VariableDocTest.js index 25c29268..3522fae4 100644 --- a/test/src/BuilderTest/VariableDocTest.js +++ b/test/src/BuilderTest/VariableDocTest.js @@ -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)=> { @@ -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'"); }); }); });