Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hyperionbt/helios-loader

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hyperionbt/helios-loader

Webpack loader for helios scripts

  • 0.1.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
2
Weekly downloads
 
Created
Source

Helios Webpack loader

This Webpack loader allows importing Helios scripts directly into Javascript/Typescript projects.

Features:

  • Helios compilation is run during build time
  • Working with Helios sources directly allows using Helios IDE plugins
  • Automatically uses your current version of Helios (must be installed manually inside the repo where you configure webpack)
  • WiP: generates Typescript declarations for user-defined Helios types (Typescript declaration files are emitted inside the source directory)

Note: the Helios import syntax must use relative paths as literal strings insteads of module names.

Example

A Helios module:

// common.hl
module common

struct Datum {
    secret: Int
}

struct Redeemer {
    guess: Int
}

A Helios validator:

// contract.hl
spending contract 

import { Datum, Redeemer } from "./common.hl"

func main(datum: Datum, redeemer: Redeemer, _) -> Bool {
    datum.secret == redeemer.guess
}

Typescript off-chain code:

// index.ts
import Program from "./contract.hl"

const program = new Program()

const uplcProgram = program.compile(true)

...

The imported Program has the same methods as helios.Program.

Installation and configuration

Install the loader:

npm install --save-dev @hyperionbt/helios-loader

If npm gives the unable to resolve dependency tree error, you can try running the following command to force npm to use your currently installed Helios version:

npm install --save-dev @hyperionbt/helios-loader --legacy-peer-deps

Configure Webpack:

// webpack.config.js
module.exports = {
	mode: "development",
	entry: "./index.ts",
	output: {
		path: __dirname + "/dist/"
	},
	module: {
		rules: [
		  	{
				test: /(?<!\.d)\.(ts|tsx)$/,
				exclude: /node_modules/,
				resolve: {
			  		extensions: [".ts", ".tsx"],
				},
				use: [
					"ts-loader",
					"@hyperionbt/helios-loader" // helios-loader AFTER ts-loader so it is able to modify .ts sources importing Helios scripts BEFORE ts-loader is called
				]
		  	},
			{
				test: /\.(hl|helios)$/,
				exclude: /node_modules/,
				use: [
					{
						loader: "@hyperionbt/helios-loader",
						options: {
							emitTypes: true // must be true when importing Helios scripts in Typescript
						}
					}
				]
			}
		]
	}
}

FAQs

Package last updated on 22 May 2023

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc