37 lines
669 B
37 lines
669 B
import regex from './regex';
|
|
|
|
// Factory function to return parser instance
|
|
export default class Urls {
|
|
|
|
constructor(text = null) {
|
|
this.text = text;
|
|
}
|
|
|
|
get() {
|
|
|
|
// Make sure we have a string
|
|
if(typeof this.text !== 'string') {
|
|
this.text = '';
|
|
}
|
|
|
|
// Always return array
|
|
return this.text.match(regex) || [];
|
|
}
|
|
|
|
filter(cb) {
|
|
|
|
// Make sure we have a string
|
|
if(typeof this.text !== 'string') {
|
|
this.text = '';
|
|
}
|
|
|
|
// Check callback is a funciton
|
|
if(typeof cb !== 'function') {
|
|
throw new Error('Invalid filter callback');
|
|
}
|
|
|
|
// Run filter on urls
|
|
return this.text.replace(regex, cb);
|
|
}
|
|
|
|
}
|
|
|