haxiomic / dts2hx

Converts TypeScript definition files (d.ts) to haxe externs (.hx) via the TypeScript compiler API
MIT License
131 stars 8 forks source link

cheerio module error. #88

Closed sonygod closed 3 years ago

sonygod commented 3 years ago


npx dts2hx cheerio
> Converting module cheerio
> Error: [TypeScript 3.7] Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node` and then add `node` to the types field in your tsconfig. (C:/projects/youtubeipfs/node_modules/cheerio/types/index.d.ts:278:22)
> Error: [TypeScript 3.7] String literal expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:10)
> Error: [TypeScript 3.7] Cannot find name 'DomUtils'. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:13)
> Error: [TypeScript 3.7] Cannot find name 'from'. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:22)
> Error: [TypeScript 3.7] 'from' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:10)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:13)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:22)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:27)
> Saved externs for cheerio into .haxelib/cheerio/1,0,0-rc,6/
> Converting module domhandler
> Saved externs for domhandler into .haxelib/domhandler/4,2,0/
> Converting module htmlparser2
> Error: [TypeScript 3.7] String literal expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:10)
> Error: [TypeScript 3.7] Cannot find name 'DomUtils'. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:13)
> Error: [TypeScript 3.7] Cannot find name 'from'. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:22)
> Error: [TypeScript 3.7] 'from' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:10)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:13)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:22)
> Error: [TypeScript 3.7] ';' expected. (C:/projects/youtubeipfs/node_modules/htmlparser2/lib/index.d.ts:36:27)
> Saved externs for htmlparser2 into .haxelib/htmlparser2/6,1,0/
> Converting module domelementtype
> Saved externs for domelementtype into .haxelib/domelementtype/2,2,0/
``

these is no function 

  ` load()`

```haxe

@:jsRequire("cheerio") extern class Cheerio {
    static var value(get, never) : cheerio.CheerioAPI;
    static inline function get_value():cheerio.CheerioAPI return cast Cheerio;

    //where is load function?

}

`var $ = cheerio.load(iconv.decode(body, PAGE_ENCODING));`
``
haxiomic commented 3 years ago

load() is inside CheerioAPI: use it like Cheerio.value.load(...)

I agree this isn't intuitive, this will improve when module-level-fields for externs are fully complete (maybe haxe 4.3)

haxiomic commented 3 years ago

I've opened an issue to track that progress #89 so I will close this one