improve invalid arguments processing
This commit is contained in:
@ -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.
|
||||
|
||||
@ -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(', ');
|
||||
}
|
||||
Reference in New Issue
Block a user