Skip to content

code4fukui/openscad2-url

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openscad2-url (ESM)

Encode / decode OpenSCAD Web (openscad2) share links of the form:

  • https://ochafik.com/openscad2/#...

This module works in Web (modern browsers) and Deno with ES modules only (no Node-specific APIs).

What’s inside the #...?

openscad2 stores a “session” JSON object in the URL fragment:

  1. JSON.stringify(session)
  2. UTF-8 encode
  3. gzip
  4. Base64
  5. append after #

This library implements that pipeline in both directions.

Usage

Encode from .scad source (string) → URL

import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";

const scad = `cube([10, 10, 10]);`;

const url = await OpenSCAD.encodeToURL(scad);
console.log(url);
// https://ochafik.com/openscad2/#H4sIA...

Encode from a full session object → URL

import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";

const session = {
  // your openscad2-like session object
};

const url = await OpenSCAD.encodeToURL(session);

Decode URL (or fragment) → session object

import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";

const data = await OpenSCAD.decodeFromURL("https://ochafik.com/openscad2/#H4sIA...");
console.log(data);

You can also pass only the fragment:

const data = await OpenSCAD.decodeFromURL("#H4sIAAAAA...");

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors