JSPM

@momocow/cloudflare-worker-leetcode-progress

0.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q22918F
  • License MIT

Package Exports

  • @momocow/cloudflare-worker-leetcode-progress

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@momocow/cloudflare-worker-leetcode-progress) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Cloudflare Worker LeetCode Progress

Generate LeetCode progress as a SVG deployed on Cloudflare Workers.

Usage

const createHandler = require('@momocow/cloudflare-worker-leetcode-progress').default
const handleRequest = createHandler({ /* options */ });

addEventListener('fetch', (event) => {
  event.respondWith(handleRequest(event) ?? new Response('', { status: 405 }));
});

Remember to configure your wrangler.toml to build with webpack.

type = "webpack"

Options

  • cacheName: string = undefined

    If it is undefined, no caches will be used. If it's "default", the default cache will be used; otherwise a new cache is opened using the provided name. See await caches.open(name).

  • cacheTTL: number = 300000 (in ms)

    The value is used to generate the max age of Cache-Control and compute the Expires time.

  • cors: boolean = false

    Allow CORS or not. If set, CORS headers will be generated and OPTIONS method will be handled.

  • hashAlgorithm: "sha1" | "sha256" | "sha384" | "sha512" = "sha1"

    Hash algorithm to use to generate ETag.

  • leetcodeGraphqlUrl: string = "https://leetcode.com/graphql"

    LeetCode GraphQL endpoint.

  • progressType: "global" | "session" = "global"

    Type of LeetCode progress to display. If it's "session", the statistics of the current active session is fetched.

    This option is set for the default progress type; however, at each request, ones can provided progress-type parameter in the query string to change the value.

  • userlist: Set<string> = undefined

    Access control for your Worker. If provided, only usernames appear in the set is allowed to generate the progress; otherwise, 403 forbidden is responsed.

    Note that leave it undefined means access control disabled, every is allowed to access the Worker.

  • fetch: typeof fetch = fetch

    This option is passed to graphql-request to avoid using XMLHttpRequest (No such API in Worker Runtime).

Query String Parameters

  • username: string
  • progress-type: "global" | "session"