# scenegraph-schema

> A schema generator for SceneGraph xml projects

Latest version **0.2.1** (published 2020-05-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install scenegraph-schema
pnpm add scenegraph-schema
yarn add scenegraph-schema
bun add scenegraph-schema
```

Provides the commands `sgschema`, `scenegraph-schema`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.1 |
| Published | 2020-05-12 |
| First published | 2020-04-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 1 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | Sam Heavner |
| Maintainers | slheavner |

## Links

- npm: https://www.npmjs.com/package/scenegraph-schema
- Repository: https://github.com/slheavner/scenegraph-schema
- Issues: https://github.com/slheavner/scenegraph-schema/issues
- npm.io page: https://npm.io/package/scenegraph-schema

## Dependencies (4)

- [globby](https://npm.io/package/globby.md) ^11.0.0
- [chokidar](https://npm.io/package/chokidar.md) ^3.3.1
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [xml2json](https://npm.io/package/xml2json.md) ^0.12.0

## Recent versions

- 0.2.1 (latest) — 2020-05-12
- 0.2.0 — 2020-04-28
- 0.1.0 — 2020-04-17

## README

# SceneGraph Schema ![Node.js CI](https://github.com/slheavner/scenegraph-schema/workflows/Node.js%20CI/badge.svg)

A schema generator for SceneGraph xml projects

## What you get from a schema

- a project specific `.xsd` schema file
- validation on scenegraph component xml files
- `extends` completion, including base components
- component tag completion, including components in `<children>` tag
- `field` attribute completion

## Usage

### NPM

```
npm install scenegraph-schema
scenegraph-schema [options]
OR
sgschema [options]
```

### From Source

1. clone this repository
2. run `npm run compile`
3. run `npm link`
4. use the `sgschema` or `scenegraph-schema` commands

## Options

```
  Usage:
    scenegraph-schema [options]
    sgschema [options]

  Options:
    -c, --components DIR,DIR      comma separated list of component directories, default: components
    -s, --scripts DIR,DIR         comma separated list of script directories, default: components,source
    -o, --output FILENAME         filename for output, defaults do {dirName}.xsd
    -w, --watch                   watch all directories for changes, experimental
    -r, --root                    root directory for project files, used to create package paths
                                    (https://devtools.web.roku.com/schema/RokuSceneGraph.xsd)
    -d, --defineScripts           turn on script.uri attribute enumeration, will limit script.uri to
                                    brs files detected in the project, and support autocomplete
    -h, --help                    this thing
    -v, --version                 version duh
```

## VScode Setup

1. install the RedHat vscode extension: `redhat.vscode-xml`
1. update `settings.json` with:

```
 "xml.fileAssociations": [
     {
         "pattern": "**/*.xml",
         "systemId": "./app.xsd"
     }
 ],
```

2. (optional) replace `systemId` with your output file name

---
_Source: https://npm.io/package/scenegraph-schema · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
