Neurotic Programmer Masquerade

    gesso-canvas-api
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.2 • Public • Published

    Gesso 🎨

    An ESM library for the Canvas LMS REST API

    👷‍♂️🏗UNDER CONSTRUCTION👷‍♀️🔨

    The goal of this library is to provide types and methods for the Canvas LMS REST API.

    Also available on npm as gesso-canvas-api!

    Quick Start Example

    // install with npm i gesso-canvas-api
    import {
      Assignments,
      Configuration
    } from 'gesso-canvas-api';
    
    // or use Deno!
    import {
      Assignments,
      Configuration,
    } from "https://deno.land/x/gesso@v0.1/src/mod.ts";
    
    async function getCourses() {
      const thing = {
        // your canvas domain
        domain: "https://csufullerton.instructure.com",
        // auth with a key
        apiKey: "your API key",
        // or tokens...
        tokens: { accessToken: "", refreshToken: "" },
      };
    
      // create a new Configuration object
      const config = new Configuration(thing);
      // instantiate the class you'd like to make calls on
      const courseApi = new Courses(config);
    
      try {
        // and get back a list of Course objects!
        return await courseApi.listCourses();
      } catch (error) {
        return error;
      }
    }

    Repo Structure

    /types

    This folder contains all of the TypeScript interfaces for the models and query parameters for each route.

    The /types/json folder contains the JSON examples from the Canvas LMS REST API documentation that is scraped by the scripts in /scrapers

    /src

    This folder contains all of the classes that are generated from the route information in the API docs, as well as the BaseApi and Configuration classes.

    /scrapers

    The most important folder, all of the interfaces and classes are generated by the Python scripts in here.

    entityScraper.py

    This file scrapes all of the example JSON models and saves them to /types/json, as well as creating a list of type names in /temp/entities.txt for routeScraper to use. THIS SHOULD BE RAN BEFORE routeScraper.py

    routeScraper.py

    This file creates both the query param interfaces as well as the classes. (To be split into 2 separate scrapers)

    makeMain.py

    Creates the mod.ts in /src to export the types for Deno 🦕

    Keywords

    none

    Install

    npm i gesso-canvas-api

    DownloadsWeekly Downloads

    6

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    1.24 MB

    Total Files

    367

    Last publish

    Collaborators

    • peekoe