Nihilist Postmodern Mistake

    @stackbit/sdk
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.32 • Public • Published

    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);
    });

    Install

    npm i @stackbit/sdk

    DownloadsWeekly Downloads

    1,549

    Version

    0.2.32

    License

    MIT

    Unpacked Size

    768 kB

    Total Files

    110

    Last publish

    Collaborators

    • stackbitjoe
    • arseny.gurevich
    • eladroz
    • smnh
    • weissrami
    • tomasb
    • ohadpr
    • rodikh
    • berdav
    • stackbit-admin
    • ausrob
    • vitaliyr
    • denar90
    • youvalv
    • ievgenii