Socket
Socket
Sign inDemoInstall

@stackbit/sdk

Package Overview
Dependencies
87
Maintainers
19
Versions
366
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @stackbit/sdk

Stackbit SDK


Version published
Maintainers
19
Created

Readme

Source

Stackbit SDK

Stackbit SDK contains set of utilities to work with stackbit.yaml file.

Add to your project

npm install @stackbit/sdk

Generate stackbit.yaml

Create a FileBrowser with FileSystemFileBrowserAdapter or GitHubFileBrowserAdapter:

  • Analyzing a local project:

    import { FileSystemFileBrowserAdapter, FileBrowser } from '@stackbit/sdk';
    
    const fileBrowserAdapter = new FileSystemFileBrowserAdapter({ dirPath: inputDir });
    const fileBrowser = new FileBrowser({ fileBrowserAdapter });
    
  • Analyzing a remote GitHub project:

    import { GitHubFileBrowserAdapter, FileBrowser } from '@stackbit/sdk';
    
    const fileBrowserAdapter = new GitHubFileBrowserAdapter({
        owner: 'stackbit',
        repo: 'theme',
        branch: 'master',
        auth: GITHUB_PERSONAL_ACCESS_TOKEN
    });
    const fileBrowser = new FileBrowser({ fileBrowserAdapter });
    

Then, pass the fileBrowser to the analyzeSite() method, get the result and save the config as stackbit.yaml:

import { writeConfig, analyzeSite } from '@stackbit/sdk';

const analyzeResult = await analyzeSite({ fileBrowser });
await writeConfig({ dirPath: inputDir, config: analyzeResult.config });

Validate stackbit.yaml

Load and validate stackbit.yaml. Any errors will be returned within the errors array.

import { loadConfig } from '@stackbit/sdk';

const configResult = await loadConfig({ dirPath: inputDir });

configResult.errors.forEach((error) => {
    console.log(error.message);
});

If configResult.config is not null, pass it to load and validate web-site's content. Any errors will be returned within the errors array, and loaded content within the contentItems:

import { loadContent } from '@stackbit/sdk';

if (configResult.config) {
    return;
}

const contentResult = await loadContent({ dirPath: inputDir, config: configResult.config });

contentResult.contentItems.forEach((contentItem) => {
    console.log(contentItem.__metadata.filePath);
});

contentResult.errors.forEach((error) => {
    console.log(error.message);
});

Keywords

FAQs

Last updated on 20 May 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc