XLights FSEQ Light Show Validator
A npm package based on Tesla Light Show for validating FSEQ file compatibility with Tesla vehicles.
Contains the following modules:
- cli tool (dist/cjs/cli.js )
- a CommonJS (in dist/cjs folder)
- ES Modules (in dist/esm folder)
- bundled and minified UMD (in dist/umd folder)
- TypeScript declaration files (in dist/types folder)
Description
This package provides a Validation
function which takes in the contents of an FSEQ file and checks it against custom light show limitations provided by Tesla.
Usage
CLI
npm install -g @xsor/tlsv
tlsv path/to/file.fseq
Node
- Install the package:
npm install @xsor/tlsv
- Import and use the
Validator
function
import { Validator} from '@xsor/tlsv';
const fileContents = fs.readFileSync(path.join(__dirname, 'path/to/lightshow.fseq'));
const validationResult: ValidationResults = Validator(fileContents.buffer);
if(!validationResult.errors) {
// File is valid
} else {
// File is invalid, print types of errors
console.error(validationResult.errors);
}
Browser
- Bundle or import the script (e.g. webpack, unpkg)
- Use the
Validator
function
let file = document.getElementById('fileInputId').files[0];
const reader = new FileReader();
reader.onload = (event) => {
const validationResult = Validator(event.target.result);
// process the result
};
reader.onerror = function(e) {
resolve({
error: 'Error reading file: ' + e.message
});
};
reader.readAsArrayBuffer(file);
Contributing
Feel free to make a pull request and file issues on the repository page!
Test
Test your code with Jest framework:
npm run test
Note: Uses husky and commitlint to automatically execute test and lint commit message before every commit.
Build
Build production (distribution) files in your dist folder:
npm run build
Thank You
This repository was heavily based on the example-typescript-package template provided by tomchen.