https://github.com/adobe/helix-shared
Shared libraries for Project Helix.
https://github.com/adobe/helix-shared
helix helix-smoke-tests helix2 helix3 library
Last synced: about 1 month ago
JSON representation
Shared libraries for Project Helix.
- Host: GitHub
- URL: https://github.com/adobe/helix-shared
- Owner: adobe
- License: apache-2.0
- Created: 2018-10-25T07:03:28.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2026-02-09T20:51:28.000Z (4 months ago)
- Last Synced: 2026-02-09T23:51:38.899Z (4 months ago)
- Topics: helix, helix-smoke-tests, helix2, helix3, library
- Language: JavaScript
- Homepage:
- Size: 15.7 MB
- Stars: 15
- Watchers: 40
- Forks: 13
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Helix Shared
> Shared libraries for Project Helix.
## Status
[](https://www.npmjs.com/package/@adobe/helix-shared)
[](https://codecov.io/gh/adobe/helix-shared)

[](https://github.com/adobe/helix-shared/blob/main/LICENSE.txt)
[](https://github.com/adobe/helix-shared/issues)
[](https://snyk.io/test/github/adobe/helix-shared?targetFile=package.json)
## Helix Configuration Files
- [`helix-fstab.yaml`](./docs/fstab.md): maps paths to source URLs, use this to pull content from sources other than GitHub
- [`helix-config.yaml`](./docs/config.md): defines Strains (variants) of a Helix site, use this to create "environments", tests, or other variants
- [`helix-query.yaml`](./docs/indexconfig.md): define what can be indexed and queried in a Helix site
- [`helix-markup.yaml`](./docs/markup.md): define what Markdown should generate which HTML, use this to tweak the HTML output
## Usage
* [API Documentation](docs/API.md)
* [Configuration File Schema](docs/README.md)
### Using `HelixConfig` to read Helix configuration files
Helix is using YAML files for configuration management, but with the `HelixConfig` class, exported from `@adobe/helix-shared`, you can read, validate, and access configuration files with ease:
```javascript
const { HelixConfig } = require('@adobe/helix-shared');
// in an async function
const configfromyaml = new HelixConfig()
.withSource(yamlstring)
.init();
const configfromjson = new HelixConfig()
.withJSON(jsonobject)
.init();
const configfromfile = new HelixConfig()
.withDirectory('/path/to/dir') // the directory contains a `helix-config.yaml`
.init();
```
### Using `sequence`, `functional`, and `op` for functional programming
## Development
### Build
```bash
npm install
```
### Test
```bash
npm test
```
### Lint
```bash
npm run lint
```