New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

piston-api-client

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

piston-api-client

Client wrapper for the Piston Code Execution Engine API

latest
Source
npmnpm
Version
2.0.1
Version published
Maintainers
1
Created
Source

Piston API Client

Client wrapper for the Piston Code Execution Engine API.

Inspired by node-piston.

Features

  • 🚀 Compatibility: Node.js and Fetch API compatible environments (e.g. Web, React-Native, etc.).
  • 🔧 Extensible: optionally provide your own HTTP methods and bring it to any JS platform if it is not in the supported environments.
  • 🤖 IntelliSense: built with TypeScript.
  • 0️⃣ No dependencies: uses native HTTP clients for requests.

Installation

Using PNPM

pnpm add piston-api-client

Using Yarn

yarn add piston-api-client

Using NPM

npm i piston-api-client

Usage Example

import { PistonClient } from 'piston-api-client';
// or for node.js
import { NodePistonClient as PistonClient } from 'piston-api-client';

(async () => {
  const pistonClient = new PistonClient({ server: 'https://emkc.org' /* default */ });

  const runtimes = await pistonClient.runtimes();
  if (runtimes.success) {
    console.log(runtimes.data);
    // [
    //   {
    //     "language": "typescript",
    //     "version": "1.7.5",
    //     "aliases": [
    //       "deno-ts",
    //       "deno"
    //     ],
    //     "runtime": "deno"
    //   },
    //   ...
    // ]
  }

  const result = await pistonClient.execute({
    language: 'node-js',
    version: '*',
    files: [
      {
        content: 'console.log(process.argv.slice(2))',
      },
    ],
    args: ['Hello', 'World'],
  });
  if (result.success) {
    console.log(result.data);
    // {
    //   "run": {
    //     "stdout": "[ 'Hello', 'World' ]\n",
    //     "stderr": "",
    //     "code": 0,
    //     "signal": null,
    //     "output": "[ 'Hello', 'World' ]\n"
    //   },
    //   "language": "javascript",
    //   "version": "16.3.0"
    // }
  }
})();

Your own HTTP methods

import axios from 'axios';
import { AbstractPistonClient } from 'piston-api-client';

export class PistonClient extends AbstractPistonClient {
  get(url, options) {
    return axios.get(url, options).then((response) => response.data);
  }

  post(url, data, options) {
    return axios.post(url, data, options).then((response) => response.data);
  }
}

Error handling

If an error occurs, the success property will be false and the error property will contain the error. Nothing will be thrown.

Keywords

piston

FAQs

Package last updated on 01 Jun 2022

Did you know?

Socket

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