JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 523130
  • Score
    100M100P100Q224130F
  • License Apache-2.0

Package Exports

  • @stoplight/spectral-ruleset-bundler
  • @stoplight/spectral-ruleset-bundler/plugins/builtins
  • @stoplight/spectral-ruleset-bundler/plugins/commonjs
  • @stoplight/spectral-ruleset-bundler/plugins/skypack
  • @stoplight/spectral-ruleset-bundler/plugins/stdin
  • @stoplight/spectral-ruleset-bundler/plugins/url
  • @stoplight/spectral-ruleset-bundler/plugins/virtualFs
  • @stoplight/spectral-ruleset-bundler/presets/browser
  • @stoplight/spectral-ruleset-bundler/presets/node
  • @stoplight/spectral-ruleset-bundler/presets/runtime
  • @stoplight/spectral-ruleset-bundler/presets/types
  • @stoplight/spectral-ruleset-bundler/with-loader

Readme

@stoplight/spectral-ruleset-bundler

Options

  • plugins - any other Rollup.js plugin, i.e. a minifier.
  • target:
    • node - a preset suitable for the Node.js runtime
    • browser - a preset tailored to Browsers
    • runtime - a preset you want to use if you want to bundle & execute the ruleset at the runtime
  • format - supported values are: esm, commonjs, iife.
  • treeshake - whether to enable tree shaking. False by default.

Bolded options are required.

Loading YAML/JSON Ruleset

// spectral.mjs
import * as fs from "node:fs";
import { fileURLToPath } from "node:url";
import * as path from "node:path";
import { Spectral } from "@stoplight/spectral-core";
import { bundleAndLoadRuleset } from "@stoplight/spectral-ruleset-bundler/with-loader";
import { fetch } from "@stoplight/spectral-runtime";

const __dirname = path.dirname(fileURLToPath(import.meta.url));

const s = new Spectral();
s.setRuleset(await bundleAndLoadRuleset(path.join(__dirname, ".spectral.yaml"), { fs, fetch }));

// lint as usual