/endeavor

A Node package written in TypeScript that consumes the new Anilist API

Primary LanguageTypeScriptMIT LicenseMIT

endeavor




Say Thanks!

English README Portuguese README

Build Status codecov Codacy Badge npm Dependencies Known Vulnerabilities Maintainability

About

A node.js package written in TypeScript(TS) that consumes the Anilist API V2, written to support GraphQL queries.

This package was written as dependency to Telegram's AnilistBot.

Installing it:

npm install --save endeavor

note: no need of installing @types/endeavor or something like it, the declaration typings file is linked in the package.json.

How to use it?

Just use it as the following:

queryAnilist({ query, variables })

  • Expect:
    • [String] query: GraphQL query
    • [Object] variables?: if needed
  • Returns a Promise:
    • [Object] then: requested data
    • [Object | Error] catch: description error on the query or a Node error of the request

Examples

const query = 'query ($id: Int) {\
    Media (id: $id, type: ANIME) {\
        id\
        title {\
            romaji\
            english\
            native\
        }\
    }\
}';
const variables = {
    id: 15125
};
const result = queryAnilist({ query, variables }).then(console.log);

This will print the following:

data: {
    Media: {
        id: 15125,
        title: {
            english: 'Teekyuu',
            native: 'てーきゅう',
            romaji: 'Teekyuu'
        }
    }
}

You can also use it as an async call encapsulating it as:

const callAnilist = async () => {
    const result = await queryAnilist({ query, variables });

    console.log(result);
};

This way, console.log also prints the same as before.

A more "advanced" usage of this package can be found at AnilistBot, with a caveat of a webpack due to webpack-graphql-loader.

Code

Plain and simple TS with the Microsoft linter standards.

Testing it

Just run:

npm test

In case of running into a Snyk warning or something like that, just read their docs in how to solve it. If that is the case, jus run:

npm run jest

Built with

No dependency required :)

TODO

  • Mutation support
  • Write more examples

Authors

Contributing

Talk to me through an issue.

License

Like many Open-Source Software (OSS) the MIT license is used, more about it in LICENSE.