JSPM

chroma-custom-utils

0.0.3
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 13
    • Score
      100M100P100Q35250F

    Package Exports

    • chroma-custom-utils

    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 (chroma-custom-utils) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Unofficial port of the Razer Chroma Rest SDK

    Hello Everyone, this is part of a port of the razer chroma rest sdk, while razer offers the official javascript implementation of the SDK, it is implemented in ES5 and it is quite of an All in one solution, you could easily use it there's nothing wrong on that. However I wanted to practice a little bit and also have some typescript support as well.

    Usage

    Please refer to the src/tests directory to see how it is used, but for short

                          // true is for development
    const keyboard = new KeyboardHelper(true, {
          author: {
            name: "Chroma Tester",
            contact: "Tester"
          },
          title: "Chroma SDK Test Runner",
          device_supported: ["keyboard"],
          category: "application",
          description: "Test App"
        });
    
    async function main() {
      // either init at the beggining of the app or inside the function
      // just take in mind that this calls the chroma api each 5s
      await keyboard.init(); 
      let id;
      const autoapply = false; // or true depending on you
      
      if(autoapply) {
        id = await keyboardInstance
            // auto apply effect
            .stopAnimation(true);
        // do more stuff...
      } else {
        id = await keyboardInstance.stopAnimation();
        // do more stuff...
      
        // apply the effect
        await keyboard.applyEffect(id);
        
      }
      
      // do more stuff...
      
      // you need to delete the effects to release resources
      await keyboard.deleteEffect(id); 
      
      // remove the connection with the server and remove polling to the endpoint
      keyboard.unload();
    }
    
    main();

    Build

    npm install
    npm run build

    this will create a Dist directory with the UMD compiled javascript files

    Development

    npm install
    npm run test:watch

    if these two run well, you are ready to add/modify whatever you need alsso if you are using vscode you can debug the tests since they are run with --inspect by default

    This code does not use razer specific product inside the code I based the code to reflect the Rest API that is documented on the Razer Rest SDK Docs

    Links