1.1.1 • Published 7 months ago

adejs v1.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

ADEjs

ADEjs is a JavaScript library for Context-Oriented Programming (COP) that supports asynchronous processing. It is an extension of the existing JavaScript COP library, ContextJs, designed to support a layer activation mechanism with a scoping strategy that accommodates all types of JavaScript asynchronous executions, including MicroTask, MacroTask, and EventTask.

This repository is an extension of the previous implementation of ADEjs, updated to support React’s JSX syntax and Function Components. It does not include implementations that support the async/await syntax.

previous implementation includes the implementation that supports the async/await syntax.

Usage

Vanilla JavaScript

import { layer } from "contextjs";
import { withLayersZone } from "adejs";

class Foo {
  print() {
    console.log("base");
  }
}
const L1 = layer("L1");
L1.refineClass(Foo, {
  print() {
    console.log("refined");
  },
});
let foo = new Foo();
withLayersZone(L1, () => {
  foo.print(); // prints 'refined'
  setTimeout(() => {
    foo.print(); // prints 'refined'
  }, 1000);
});

JSX in React/React Native

If you want to apply layer activation to the behavior of UI components declared in JSX, please specify the jsx_runtime as ADEjs using the @jsxImportSource annotation.

/** @jsxImportSource "../../../node_modules/adejs/lib/react */
withLayersZone(L1, () => {
  <View>
    <Foo />
  </View>;
});

refine Function Components

Function Components that are not written using classes can also be modularized into layers.

import { refineFunction } from "adejs";

function Foo() {
  return <Text>base</Text>;
}
const L1 = layer("L1");
Foo = refineFunction(Foo, L1, () => {
  return <Text>refined</Text>;
});

Installation

npm install adejs
1.1.1

7 months ago

1.1.0

7 months ago

1.0.5

7 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago