@scalar/import
TypeScript icon, indicating that this package has built-in type declarations

0.4.5 • Public • Published

Scalar Import

Version Downloads License Discord

Pass an URL to an OpenAPI document, a Swagger document, a Postman collection, a Scalar API reference, a Scalar Sandbox link … basically anything, and retrieve an OpenAPI document.

Installation

npm install @scalar/import

Usage

Find any OpenAPI/Swagger document URL in any content:

import { resolve } from '@scalar/import'

// Get the raw file URL from a GitHub link
const result = await resolve(
  'https://github.com/outline/openapi/blob/main/spec3.yml',
)

// https://raw.githubusercontent.com/outline/openapi/refs/heads/main/spec3.yml

Features

  • Resolves URLs to OpenAPI specifications from various sources
  • Supports JSON and YAML formats (.json, .yaml, .yml)
  • Extracts OpenAPI specification URLs from HTML content, including:
    • Scalar API Reference <script> tags
    • Redoc HTML and JavaScript implementations
  • Works with different quote styles and data attribute formats
  • Robust error handling for various HTML structures
  • Transforms GitHub URLs to raw file URLs
  • Handles Scalar Sandbox URLs

Examples

Input Output Description
https://cdn.jsdelivr.net/npm/@scalar/galaxy/dist/latest.json Same as input Returns JSON URLs as-is
https://cdn.jsdelivr.net/npm/@scalar/galaxy/dist/latest.yaml or *.yml Same as input Returns YAML URLs as-is
https://sandbox.scalar.com/p/dlw8v https://sandbox.scalar.com/files/dlw8v/openapi.yaml Resolves sandbox URLs to specific file paths
https://github.com/owner/repo/blob/main/openapi.yaml https://raw.githubusercontent.com/owner/repo/refs/heads/main/openapi.yaml Transforms GitHub URLs to raw file URLs
HTML with data-url attribute URL from data-url attribute Extracts URL from HTML script tag with data-url attribute
HTML with relative URL /openapi.yaml https://example.com/openapi.yaml Resolves relative URLs to absolute URLs
HTML with JSON configuration URL from JSON configuration Extracts URL from JSON configuration in data-configuration attribute
Redoc HTML URL from spec-url attribute Extracts URL from Redoc's spec-url attribute
HTML with embedded OpenAPI Parsed OpenAPI object Extracts and parses embedded OpenAPI JSON from HTML

Community

We are API nerds. You too? Let’s chat on Discord: https://discord.gg/scalar

License

The source code in this repository is licensed under MIT.

Package Sidebar

Install

npm i @scalar/import

Weekly Downloads

44,305

Version

0.4.5

License

MIT

Unpacked Size

42.1 kB

Total Files

12

Last publish

Collaborators

  • amritkahlon
  • cameronrohani
  • marclave
  • tommastro
  • scalar_geoff
  • hwkr
  • mason-little
  • hanspagel
  • bgrcs