0.1.10 • Published 12 months ago

@ceil-dev/web-point-portal v0.1.10

Weekly downloads
-
License
-
Repository
github
Last release
12 months ago

Webpoint Portal

Short project description
Webpoint portal and ether


Table of Contents

  1. Overview
  2. Installation
  3. Usage
  4. Example
  5. License

Overview

Create Webpoint portal or ether. Works via ceil.dev's relay server (aka webpoint)


Installation

# Clone the repository
npm install @ceil-dev/web-point-portal

Usage

import { createWebpointPortal, createWebpointEther } from '@ceil-dev/web-point-portal';

Example

import { createWebPointPortal } from './index';
import { microEnv, randomUUID } from '@ceil-dev/portals';

const run = async () => {
  // create portal A microenv
  const envA = microEnv(
    { foo: 'bar' },
    { id: randomUUID() }, // only UUID format strings are accepted as ID for default webpoint (webpoint.ceil.dev)
    {
      set: (props) => {
        console.log('portalA: env.set called with:', props);
      },
    }
  );
  // initialise portal A instance
  const portalA = createWebPointPortal({
    env: envA,
    fetchMethod: fetch,
    createAbortController: () => new AbortController(),
    middleware: {
      // debug: (data) => console.log(...data),
    },
  });

  const envB_id = randomUUID();

  // initialise portalB instance
  const portalB = createWebPointPortal({
    env: microEnv({ foo: 'baz' }, { id: envB_id }),
    fetchMethod: fetch,
    createAbortController: () => new AbortController(),
    middleware: {
      // debug: (data) => console.log(...data),
    },
  });

  // open portal B
  await portalB('open');

  // enter env B via portal A
  const remoteEnv = await portalA('enter', envB_id);
  console.log('Remote environment descriptor:', remoteEnv.descriptor);

  console.log('Remote value "foo":', await remoteEnv.face.foo);

  remoteEnv.face.foo = 68;
  console.log(
    'Remote value "foo" after settings to 68:',
    await remoteEnv.face.foo
  );
  remoteEnv.face.foo = 419;
  console.log(
    'Remote value "foo" after settings to 419:',
    await remoteEnv.face.foo
  );
  remoteEnv.face.foo = 'not bar';
  console.log(
    'Remote value "foo" after settings to "not bar":',
    await remoteEnv.face.foo
  );

  try {
    process.exit(0);
  } catch (e) {}
};

run().catch(console.warn);

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

0.1.10

12 months ago

0.1.8

12 months ago

0.1.7

12 months ago

0.1.6

12 months ago

0.1.5

12 months ago

0.1.3

1 year ago

0.0.8

1 year ago

0.0.5

2 years ago

0.0.1

2 years ago