get-codesandbox

Given a CodeSandbox id, GitHub path, or file system path, returns the contents of the sandbox.

Usage no npm install needed!

<script type="module">
  import getCodesandbox from 'https://cdn.skypack.dev/get-codesandbox';
</script>

README

get-codesandbox

Given a CodeSandbox id, GitHub path, or file system path, returns the contents of the sandbox.

Installation

Yarn:

yarn add get-codesandbox

NPM:

npm install get-codesandbox

Usage

const { getCodeSandbox } = require('get-codesandbox');

const { files, entry } = await getCodeSandbox('new'); // Official sandboxes
const { files, entry } = await getCodeSandbox('rjk9n4zj7m'); // Sandbox ID
const { files, entry } = await getCodeSandbox(
  'github/codesandbox-app/static-template'
); // Github path
const { files, entry } = await getCodeSandbox('file:./examples/console'); // File path

console.log(files, entry);

Options

  • ignorePaths: You can choose which files to be ignored when using file path with the ignorePaths options. Note that providing this option will override the default paths.

    const { files } = await getCodeSandbox('file:./examples/console', {
      ignorePaths: ['node_modules'],
    });
    
  • skipUploadingBinaryFiles: By default, it will upload binary files to file.io temporary until CodeSandbox fetch it from there. You can bypass this by setting this option to true.

    const { files } = await getCodeSandbox('file:./examples/console', {
      skipUploadingBinaryFiles: true,
    });
    
  • basePath: The default base path when using relative path with file: schema is process.cwd(). You can override this by providing your own base path. The path has to be an absolute path.

    const { files } = await getCodeSandbox('file:./examples/console', {
      basePath: __dirname,
    });
    

uploadSandbox

There's also an utility function uploadSandbox to upload the files of the sandbox to CodeSandbox.io and get the sandbox ID.

const { getCodeSandbox, uploadSandbox } = require('get-codesandbox');

const { files } = await getCodeSandbox('file:./examples/console');

const sandboxID = await uploadSandbox(files);