diff --git a/scripts/extractor.js b/scripts/extractor.js index e4007a7..7d2b15f 100644 --- a/scripts/extractor.js +++ b/scripts/extractor.js @@ -11,8 +11,11 @@ class Extractor { * @param {...any} args itemsSelector, fieldSelectors, and more args to specify target urls. */ task(...args) { - if (!testArgs(...args)) - throw new Error(`Invalid call arguments.\n\n${signitures}\n\n`); + if (!testArgs(...args)) { + console.log(`Invalid call arguments.\n\n${argsToString(...args)}\n${signitures}\n`); + // break call chain to avoid unexpected task running + return undefined; + } // given >2 arguments means the task specifies target page, // so it won't accept last task result as url list. // in this case, former tasks are useless, can be cleared. diff --git a/scripts/tools.js b/scripts/tools.js index 7e076a0..c779b5c 100644 --- a/scripts/tools.js +++ b/scripts/tools.js @@ -1,7 +1,4 @@ const signitures = ` -# DataExtracter Help ----------------------------- - ## Usage new Extractor().task(...args).task(...args).start(); @@ -14,7 +11,7 @@ task(itemsSelector:string, fieldSelectors:string, url:string, pages:number[]) task(itemsSelector:string, fieldSelectors:string[], urls:string[]) task(itemsSelector:string, fieldSelectors:string[], urls:ExtractResult) -See detail help in: +## See Detailed Help: https://git.jebbs.co/jebbs/data-extracter-extesion `.trim(); @@ -95,4 +92,8 @@ function testArgs(...args) { function testArrayVals(arr, tester) { return arr.reduce((p, c) => p && tester(c), true); } +} + +function argsToString(...args) { + return args.map(v => (v instanceof Array ? `[${v.join(', ')}]` : v.toString())).join(', '); } \ No newline at end of file