mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-30 11:14:27 +08:00
Updated definition and tests to reflect Cheerio doc
This commit is contained in:
+281
-54
@@ -1,67 +1,294 @@
|
||||
/// <reference path="cheerio.d.ts" />
|
||||
|
||||
import cheerio = require("cheerio");
|
||||
import cheerio = require('cheerio');
|
||||
|
||||
cheerio('<html></html>');
|
||||
/*
|
||||
* LOADING
|
||||
*/
|
||||
let html =
|
||||
`<ul id="fruits">
|
||||
<li class="orange">Apple</li>
|
||||
<li class="class">Orange</li>
|
||||
<li class="pear">Pear</li>
|
||||
<input type="text" />
|
||||
</ul>`;
|
||||
|
||||
var $ = cheerio.load("<html></html>");
|
||||
var $el = $('selector');
|
||||
var $multiEl = $('seletor', 'selector', 'selector');
|
||||
// Preferred Method
|
||||
var $ = cheerio.load(html);
|
||||
// Directly load element
|
||||
cheerio(html);
|
||||
cheerio('ul', html);
|
||||
cheerio('li', 'ul', html);
|
||||
|
||||
$el.addClass("class").addClass("test");
|
||||
$el.hasClass("test");
|
||||
$el.removeClass("class").removeClass("test");
|
||||
|
||||
$el.attr('class');
|
||||
$el.attr('class', 'test');
|
||||
$el.removeAttr("class").removeAttr("test");
|
||||
|
||||
$el.find("ul").find("> li");
|
||||
|
||||
$el.parent().parent();
|
||||
$el.next().next();
|
||||
$el.prev().prev();
|
||||
$el.siblings().siblings();
|
||||
|
||||
$el.children().children();
|
||||
$el.children("li").children("a");
|
||||
|
||||
$el.children().each((index, element) => {
|
||||
return $(element).find('t');
|
||||
$ = cheerio.load(html, {
|
||||
normalizeWhitespace: true,
|
||||
xmlMode: true
|
||||
});
|
||||
|
||||
$el.children().map((index, element) => {
|
||||
return $(element).find('t');
|
||||
$ = cheerio.load(html, {
|
||||
normalizeWhitespace: true,
|
||||
xmlMode: true,
|
||||
decodeEntities: true,
|
||||
lowercaseTags: true,
|
||||
lowerCaseAttributeNames: true,
|
||||
recognizeCDATA: true,
|
||||
recognizeSelfClosing: true
|
||||
});
|
||||
|
||||
$el.children().filter((index) => {
|
||||
return $el.children().eq(index).find('t').length >= 0;
|
||||
});
|
||||
/**
|
||||
* Selectors
|
||||
*/
|
||||
var $el = $('.class');
|
||||
var $multiEl = $('selector', 'selector', 'selector');
|
||||
|
||||
$el.filter('span').filter('li');
|
||||
/**
|
||||
* Attributes
|
||||
*/
|
||||
|
||||
$el.first().last().find('t');
|
||||
|
||||
$('div').eq(0).find('b');
|
||||
|
||||
$('#id').append("test html", "other html").find('a');
|
||||
$('#id').prepend("test html", "other html").find('a');
|
||||
$('#id').after("test html", "other html").find('a');
|
||||
$('#id').before("test html", "other html").find('a');
|
||||
|
||||
$el.remove('div').remove('a');
|
||||
|
||||
$('#id').replaceWith('some html').parent();
|
||||
$('#id').empty().parent();
|
||||
|
||||
$el.html();
|
||||
$el.html("<html></html>").find('div');
|
||||
|
||||
$el.text();
|
||||
$el.text('some text');
|
||||
|
||||
$el.toArray();
|
||||
$el.clone().find('a').parent();
|
||||
$.root().find('a');
|
||||
// attr
|
||||
$el.attr('id');
|
||||
$el.attr('id', 'favorite').html();
|
||||
|
||||
// data
|
||||
$el.data();
|
||||
$el.data('apple-color');
|
||||
$el.data('kind', 'mac');
|
||||
|
||||
// val
|
||||
$('input[type="text"]').val();
|
||||
$('input[type="text"]').val('test').html();
|
||||
|
||||
// removeAttr
|
||||
$el.removeAttr('class').html();
|
||||
|
||||
// hasClass, addClass, removeClass, toggleClass
|
||||
$el.addClass('class').addClass('test');
|
||||
$el.hasClass('test');
|
||||
$el.removeClass('class').removeClass('test');
|
||||
$el.addClass('red').removeClass().html();
|
||||
$el.toggleClass('fruit green red').html();
|
||||
|
||||
// is
|
||||
$el.is('#id');
|
||||
$el.is($el);
|
||||
$el.is(() => {
|
||||
return true;
|
||||
});
|
||||
|
||||
/**
|
||||
* Forms
|
||||
*/
|
||||
// serializeArray
|
||||
$('<form><input name="foo" value="bar" /></form>').serializeArray();
|
||||
|
||||
/**
|
||||
* Traversing
|
||||
*/
|
||||
// find
|
||||
$el.find('li').length;
|
||||
$el.find($('.apple')).length;
|
||||
|
||||
// .parent([selector])
|
||||
$el.parent().attr('id');
|
||||
$el.parent('.class').attr('id');
|
||||
|
||||
// .parents([selector])
|
||||
$el.parents().length;
|
||||
$el.parents('.class').length;
|
||||
|
||||
// .parentsUntil([selector][,filter])
|
||||
$el.parentsUntil().length;
|
||||
$el.parentsUntil('.class').length;
|
||||
|
||||
// .closest(selector)
|
||||
$el.closest();
|
||||
$el.closest('.class');
|
||||
|
||||
// .next([selector])
|
||||
$el.next().hasClass('class');
|
||||
$el.next('.class').hasClass('class');
|
||||
|
||||
// .nextAll([selector])
|
||||
$el.nextAll().length;
|
||||
$el.nextAll('.class').length;
|
||||
|
||||
// .nextUntil([selector], [filter])
|
||||
$el.nextUntil();
|
||||
$el.nextUntil('.class');
|
||||
|
||||
// .prev([selector])
|
||||
$el.prev().hasClass('class');
|
||||
$el.prev('.class').hasClass('class');
|
||||
|
||||
// .prevAll([selector])
|
||||
$el.prevAll().length;
|
||||
$el.prevAll('.class').length;
|
||||
|
||||
// .prevUntil([selector], [filter])
|
||||
$el.prevUntil();
|
||||
$el.prevUntil('.class');
|
||||
|
||||
// .slice( start, [end] )
|
||||
$el.slice(1).eq(0).text();
|
||||
$el.slice(1, 2).length;
|
||||
|
||||
// .siblings([selector])
|
||||
$el.siblings().length;
|
||||
$el.siblings('.class').length;
|
||||
|
||||
// .children([selector])
|
||||
$el.children().length;
|
||||
$el.children('.class').text();
|
||||
|
||||
// .contents()
|
||||
$el.contents().length;
|
||||
|
||||
// .each( function(index, element) )
|
||||
$el.each((i, el) => {
|
||||
$(el).html();
|
||||
});
|
||||
|
||||
// .map( function(index, element) )
|
||||
$el.map((i, el) => {
|
||||
return $(el).text();
|
||||
}).get().join(' ');
|
||||
|
||||
// .filter
|
||||
$ = cheerio.load(html);
|
||||
$el.filter('.class').attr('class');
|
||||
$el.filter($('.class')).attr('class');
|
||||
$el.filter($('.class')[0]).attr('class');
|
||||
|
||||
$el.filter((i, el) => {
|
||||
return $(el).attr('class') === 'class';
|
||||
}).attr('class');
|
||||
|
||||
// .not
|
||||
$el.not('.class').length;
|
||||
$el.not($('.class')).length;
|
||||
$el.not($('.class')[0]).length;
|
||||
|
||||
$el.not((i, el) => {
|
||||
return $(el).attr('class') === 'class';
|
||||
}).length;
|
||||
|
||||
// .has
|
||||
$el.has('.class').attr('id');
|
||||
$el.has($el[0]).attr('id');
|
||||
|
||||
// .first()
|
||||
$el.children().first().text();
|
||||
|
||||
// .last()
|
||||
$el.children().last().text();
|
||||
|
||||
// .eq( i )
|
||||
$el.eq(0).text();
|
||||
$el.eq(-1).text();
|
||||
|
||||
// .get( [i] )
|
||||
$el.get(0).tagName;
|
||||
$el.get().length;
|
||||
|
||||
// .index()
|
||||
// .index( selector )
|
||||
// .index( nodeOrSelection )
|
||||
$el.index();
|
||||
$el.index('li');
|
||||
$el.index($('#fruit, li'));
|
||||
|
||||
// .end()
|
||||
$el.eq(0).end().length;
|
||||
|
||||
// .add
|
||||
$el.add('.class').length
|
||||
|
||||
// .addBack( [filter] )
|
||||
$el.eq(0).addBack().length
|
||||
$el.eq(0).addBack('.class').length
|
||||
|
||||
/**
|
||||
* Manipulation
|
||||
*/
|
||||
|
||||
// .append( content, [content, ...] )
|
||||
$el.append('<li class="plum">Plum</li>').html();
|
||||
$el.append('<li class="plum">Plum</li>', '<li class="plum">Plum</li>').html();
|
||||
|
||||
// .prepend( content, [content, ...] )
|
||||
$el.prepend('<li class="plum">Plum</li>').html();
|
||||
$el.prepend('<li class="plum">Plum</li>', '<li class="plum">Plum</li>').html();
|
||||
|
||||
// .after( content, [content, ...] )
|
||||
$el.after('<li class="plum">Plum</li>').html();
|
||||
$el.after('<li class="plum">Plum</li>', '<li class="plum">Plum</li>').html();
|
||||
|
||||
// .insertAfter( content )
|
||||
$('<li class="plum">Plum</li>').insertAfter('.class').html();
|
||||
|
||||
// .before( content, [content, ...] )
|
||||
$el.before('<li class="plum">Plum</li>').html();
|
||||
$el.before('<li class="plum">Plum</li>', '<li class="plum">Plum</li>').html();
|
||||
|
||||
// .insertBefore( content )
|
||||
$('<li class="plum">Plum</li>').insertBefore('.class').html();
|
||||
|
||||
// .remove( [selector] )
|
||||
$el.remove().html();
|
||||
$el.remove('.class').html();
|
||||
|
||||
// .replaceWith( content )
|
||||
$el.replaceWith($('<li class="plum">Plum</li>')).html();
|
||||
|
||||
// .empty()
|
||||
$el.empty().html();
|
||||
|
||||
// .html( [htmlString] )
|
||||
$el.html();
|
||||
$el.html('<li class="mango">Mango</li>').html();
|
||||
|
||||
// .text( [textString] )
|
||||
$el.text();
|
||||
$el.text('text');
|
||||
|
||||
// .wrap( content )
|
||||
// See https://github.com/cheeriojs/cheerio/issues/731
|
||||
// $el.wrap($('<div class="red-fruit"></div>')).html();
|
||||
|
||||
// .css
|
||||
$el.css('width');
|
||||
$el.css(['width', 'height']);
|
||||
$el.css('width', '50px');
|
||||
|
||||
/**
|
||||
* Rendering
|
||||
*/
|
||||
$.html();
|
||||
$.html('.class');
|
||||
$.xml();
|
||||
|
||||
/**
|
||||
* Miscellaneous
|
||||
*/
|
||||
|
||||
// .clone() ####
|
||||
$el.clone().html();
|
||||
|
||||
/**
|
||||
* Utilities
|
||||
*/
|
||||
|
||||
// $.root
|
||||
$.root().append('<ul id="vegetables"></ul>').html();
|
||||
|
||||
// $.contains( container, contained )
|
||||
$.contains($el[0], $el[0]);
|
||||
|
||||
// $.parseHTML( data [, context ] [, keepScripts ] )
|
||||
$.parseHTML(html);
|
||||
$.parseHTML(html, null, true);
|
||||
|
||||
/**
|
||||
* Not in doc
|
||||
*/
|
||||
$el.toArray();
|
||||
|
||||
Vendored
+41
-5
@@ -17,12 +17,17 @@ interface Cheerio {
|
||||
attr(name: string, value: any): Cheerio;
|
||||
|
||||
data(): any;
|
||||
data(name: string): any;
|
||||
data(name: string, value: any): any;
|
||||
|
||||
val(): string;
|
||||
val(value: string): Cheerio;
|
||||
|
||||
removeAttr(name: string): Cheerio;
|
||||
|
||||
has(selector: string): Cheerio;
|
||||
has(element: CheerioElement): Cheerio;
|
||||
|
||||
hasClass(className: string): boolean;
|
||||
addClass(classNames: string): Cheerio;
|
||||
|
||||
@@ -41,6 +46,9 @@ interface Cheerio {
|
||||
is(selection: Cheerio): boolean;
|
||||
is(func: (index: number, element: CheerioElement) => boolean): boolean;
|
||||
|
||||
// Form
|
||||
serializeArray(): {name: string, value: string}[];
|
||||
|
||||
// Traversing
|
||||
|
||||
find(selector: string): Cheerio;
|
||||
@@ -52,10 +60,12 @@ interface Cheerio {
|
||||
parentsUntil(element: CheerioElement, filter?: string): Cheerio;
|
||||
parentsUntil(element: Cheerio, filter?: string): Cheerio;
|
||||
|
||||
closest(): Cheerio;
|
||||
closest(selector: string): Cheerio;
|
||||
|
||||
next(selector?: string): Cheerio;
|
||||
nextAll(): Cheerio;
|
||||
nextAll(selector: string): Cheerio;
|
||||
|
||||
nextUntil(selector?: string, filter?: string): Cheerio;
|
||||
nextUntil(element: CheerioElement, filter?: string): Cheerio;
|
||||
@@ -63,6 +73,7 @@ interface Cheerio {
|
||||
|
||||
prev(selector?: string): Cheerio;
|
||||
prevAll(): Cheerio;
|
||||
prevAll(selector: string): Cheerio;
|
||||
|
||||
prevUntil(selector?: string, filter?: string): Cheerio;
|
||||
prevUntil(element: CheerioElement, filter?: string): Cheerio;
|
||||
@@ -83,15 +94,24 @@ interface Cheerio {
|
||||
filter(selection: Cheerio): Cheerio;
|
||||
filter(element: CheerioElement): Cheerio;
|
||||
filter(elements: CheerioElement[]): Cheerio;
|
||||
filter(func: (index: number) => boolean): Cheerio;
|
||||
filter(func: (index: number, element: CheerioElement) => boolean): Cheerio;
|
||||
|
||||
not(selector: string): Cheerio;
|
||||
not(selection: Cheerio): Cheerio;
|
||||
not(element: CheerioElement): Cheerio;
|
||||
not(func: (index: number, element: CheerioElement) => boolean): Cheerio;
|
||||
|
||||
first(): Cheerio;
|
||||
last(): Cheerio;
|
||||
|
||||
eq(index: number): Cheerio;
|
||||
|
||||
get(): Document[];
|
||||
get(index: number): Document;
|
||||
get(): CheerioElement[];
|
||||
get(index: number): CheerioElement;
|
||||
|
||||
index(): number;
|
||||
index(selector: string): number;
|
||||
index(selection: Cheerio): number;
|
||||
|
||||
end(): Cheerio;
|
||||
|
||||
@@ -101,6 +121,9 @@ interface Cheerio {
|
||||
add(elements: CheerioElement[]): Cheerio;
|
||||
add(selection: Cheerio): Cheerio;
|
||||
|
||||
addBack():Cheerio;
|
||||
addBack(filter: string):Cheerio;
|
||||
|
||||
// Manipulation
|
||||
|
||||
append(content: string, ...contents: any[]): Cheerio;
|
||||
@@ -118,11 +141,19 @@ interface Cheerio {
|
||||
after(content: Document[], ...contents: any[]): Cheerio;
|
||||
after(content: Cheerio, ...contents: any[]): Cheerio;
|
||||
|
||||
insertAfter(content: string): Cheerio;
|
||||
insertAfter(content: Document): Cheerio;
|
||||
insertAfter(content: Cheerio): Cheerio;
|
||||
|
||||
before(content: string, ...contents: any[]): Cheerio;
|
||||
before(content: Document, ...contents: any[]): Cheerio;
|
||||
before(content: Document[], ...contents: any[]): Cheerio;
|
||||
before(content: Cheerio, ...contents: any[]): Cheerio;
|
||||
|
||||
insertBefore(content: string): Cheerio;
|
||||
insertBefore(content: Document): Cheerio;
|
||||
insertBefore(content: Cheerio): Cheerio;
|
||||
|
||||
remove(selector?: string): Cheerio;
|
||||
|
||||
replaceWith(content: string): Cheerio;
|
||||
@@ -138,6 +169,11 @@ interface Cheerio {
|
||||
text(): string;
|
||||
text(text: string): Cheerio;
|
||||
|
||||
// See https://github.com/cheeriojs/cheerio/issues/731
|
||||
/*wrap(content: string): Cheerio;
|
||||
wrap(content: Document): Cheerio;
|
||||
wrap(content: Cheerio): Cheerio;*/
|
||||
|
||||
css(propertyName: string): string;
|
||||
css(propertyNames: string[]): string[];
|
||||
css(propertyName: string, value: string): Cheerio;
|
||||
@@ -203,7 +239,7 @@ interface CheerioStatic extends CheerioSelector {
|
||||
interface CheerioElement {
|
||||
// Document References
|
||||
// Node Console
|
||||
|
||||
tagName: string;
|
||||
type: string;
|
||||
name: string;
|
||||
attribs: Object;
|
||||
@@ -221,5 +257,5 @@ interface CheerioAPI extends CheerioSelector {
|
||||
declare var cheerio:CheerioAPI;
|
||||
|
||||
declare module "cheerio" {
|
||||
export = CheerioAPI;
|
||||
export = cheerio;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user