Skip to content

Commit

Permalink
feat(graalvm): implement web streams api
Browse files Browse the repository at this point in the history
Signed-off-by: Sam Gammon <sam@elide.dev>
  • Loading branch information
sgammon committed Feb 16, 2025
1 parent c07ecc7 commit 5ad4429
Show file tree
Hide file tree
Showing 32 changed files with 1,061 additions and 162 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ import elide.runtime.plugins.bindings.Bindings
context.evaluate(
this,
script.bufferedReader().use { it.readText() },
name = source.path.split("/").last(),
name = source.path.substringAfterLast('/'),
internals = true,
cached = true,
)
Expand Down
116 changes: 112 additions & 4 deletions packages/graalvm/api/graalvm.api
Original file line number Diff line number Diff line change
Expand Up @@ -1113,7 +1113,7 @@ public final class elide/runtime/gvm/internals/intrinsics/js/url/URLSearchParams
public static final fun urlParams (Ljava/lang/String;)Lelide/runtime/intrinsics/js/URLSearchParams;
}

public synthetic class elide/runtime/gvm/internals/intrinsics/js/webstreams/$ReadableStreamIntrinsic$Definition : io/micronaut/context/AbstractInitializableBeanDefinitionAndReference {
public synthetic class elide/runtime/gvm/internals/intrinsics/js/webstreams/$WebStreamsIntrinsic$Definition : io/micronaut/context/AbstractInitializableBeanDefinitionAndReference {
public static final field $ANNOTATION_METADATA Lio/micronaut/core/annotation/AnnotationMetadata;
public fun <init> ()V
protected fun <init> (Ljava/lang/Class;Lio/micronaut/context/AbstractInitializableBeanDefinition$MethodOrFieldReference;)V
Expand Down Expand Up @@ -2036,19 +2036,23 @@ public abstract interface class elide/runtime/intrinsics/js/RandomSource {
public abstract fun randomUUID ()Lelide/runtime/intrinsics/js/typed/UUID;
}

public abstract interface class elide/runtime/intrinsics/js/ReadableStream {
public abstract interface class elide/runtime/intrinsics/js/ReadableStream : elide/runtime/intrinsics/js/Stream {
public static final field DefaultFactory Lelide/runtime/intrinsics/js/ReadableStream$DefaultFactory;
}

public final class elide/runtime/intrinsics/js/ReadableStream$DefaultFactory : elide/runtime/intrinsics/js/ReadableStream$Factory {
public final class elide/runtime/intrinsics/js/ReadableStream$DefaultFactory : elide/runtime/intrinsics/js/ReadableStream$Factory, org/graalvm/polyglot/proxy/ProxyInstantiable {
public fun create (Lelide/runtime/intrinsics/js/stream/ReadableStreamSource;Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/ReadableStream;
public fun empty ()Lelide/runtime/intrinsics/js/ReadableStream;
public fun newInstance ([Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
public fun wrap (Ljava/io/InputStream;)Lelide/runtime/intrinsics/js/ReadableStream;
public fun wrap (Ljava/io/Reader;)Lelide/runtime/intrinsics/js/ReadableStream;
public fun wrap (Ljava/nio/ByteBuffer;)Lelide/runtime/intrinsics/js/ReadableStream;
public fun wrap ([B)Lelide/runtime/intrinsics/js/ReadableStream;
}

public abstract interface class elide/runtime/intrinsics/js/ReadableStream$Factory {
public abstract interface class elide/runtime/intrinsics/js/ReadableStream$Factory : org/graalvm/polyglot/proxy/ProxyInstantiable {
public fun create (Lelide/runtime/intrinsics/js/stream/ReadableStreamSource;)Lelide/runtime/intrinsics/js/ReadableStream;
public abstract fun create (Lelide/runtime/intrinsics/js/stream/ReadableStreamSource;Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/ReadableStream;
public abstract fun empty ()Lelide/runtime/intrinsics/js/ReadableStream;
public abstract fun wrap (Ljava/io/InputStream;)Lelide/runtime/intrinsics/js/ReadableStream;
public abstract fun wrap (Ljava/io/Reader;)Lelide/runtime/intrinsics/js/ReadableStream;
Expand All @@ -2060,6 +2064,9 @@ public abstract interface class elide/runtime/intrinsics/js/ServerAgent {
public abstract fun initialize (Lorg/graalvm/polyglot/Context;Ljava/util/concurrent/Phaser;)V
}

public abstract interface class elide/runtime/intrinsics/js/Stream {
}

public abstract interface class elide/runtime/intrinsics/js/StringLike : java/lang/CharSequence {
}

Expand All @@ -2079,6 +2086,12 @@ public abstract interface class elide/runtime/intrinsics/js/Timers {
public static synthetic fun setTimeout$default (Lelide/runtime/intrinsics/js/Timers;Ljava/lang/Long;[Ljava/lang/Object;Lorg/graalvm/polyglot/Value;ILjava/lang/Object;)J
}

public abstract interface class elide/runtime/intrinsics/js/TransformStream : elide/runtime/intrinsics/js/Stream {
}

public abstract interface class elide/runtime/intrinsics/js/TransformStream$Factory {
}

public abstract interface class elide/runtime/intrinsics/js/URL : java/io/Serializable, org/graalvm/polyglot/proxy/ProxyObject {
public abstract fun getHash ()Ljava/lang/String;
public abstract fun getHost ()Ljava/lang/String;
Expand Down Expand Up @@ -2118,6 +2131,12 @@ public abstract interface class elide/runtime/intrinsics/js/URLSearchParams : el
public abstract fun sort ()V
}

public abstract interface class elide/runtime/intrinsics/js/WritableStream : elide/runtime/intrinsics/js/Stream {
}

public abstract interface class elide/runtime/intrinsics/js/WritableStream$Factory {
}

public abstract interface class elide/runtime/intrinsics/js/encoding/EncodingUtility : org/graalvm/polyglot/proxy/ProxyObject {
public abstract fun getEncoding ()Ljava/lang/String;
}
Expand Down Expand Up @@ -5130,6 +5149,95 @@ public abstract interface class elide/runtime/intrinsics/js/node/zlib/ZlibOption
public abstract fun getWindowBits ()I
}

public abstract interface class elide/runtime/intrinsics/js/stream/ByteLengthQueuingStrategy : elide/runtime/intrinsics/js/stream/QueuingStrategy, org/graalvm/polyglot/proxy/ProxyObject {
public abstract fun getHighWaterMark ()I
public abstract fun size ()I
}

public abstract interface class elide/runtime/intrinsics/js/stream/CountQueuingStrategy : elide/runtime/intrinsics/js/stream/QueuingStrategy, org/graalvm/polyglot/proxy/ProxyObject {
public abstract fun getHighWaterMark ()I
public fun size ()I
}

public abstract interface class elide/runtime/intrinsics/js/stream/QueuingStrategy {
public abstract fun size ()I
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableByteStreamController : elide/runtime/intrinsics/js/stream/ReadableStreamController {
public static final field Companion Lelide/runtime/intrinsics/js/stream/ReadableByteStreamController$Companion;
public static fun create (Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/stream/ReadableByteStreamController;
}

public final class elide/runtime/intrinsics/js/stream/ReadableByteStreamController$Companion {
public final fun create (Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/stream/ReadableByteStreamController;
public static synthetic fun create$default (Lelide/runtime/intrinsics/js/stream/ReadableByteStreamController$Companion;Lelide/runtime/intrinsics/js/stream/QueuingStrategy;ILjava/lang/Object;)Lelide/runtime/intrinsics/js/stream/ReadableByteStreamController;
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamBYOBReader {
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamBYOBRequest {
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamController {
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamDefaultController : elide/runtime/intrinsics/js/stream/ReadableStreamController {
public static final field Companion Lelide/runtime/intrinsics/js/stream/ReadableStreamDefaultController$Companion;
public static fun create (Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/stream/ReadableStreamDefaultController;
}

public final class elide/runtime/intrinsics/js/stream/ReadableStreamDefaultController$Companion {
public final fun create (Lelide/runtime/intrinsics/js/stream/QueuingStrategy;)Lelide/runtime/intrinsics/js/stream/ReadableStreamDefaultController;
public static synthetic fun create$default (Lelide/runtime/intrinsics/js/stream/ReadableStreamDefaultController$Companion;Lelide/runtime/intrinsics/js/stream/QueuingStrategy;ILjava/lang/Object;)Lelide/runtime/intrinsics/js/stream/ReadableStreamDefaultController;
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamDefaultReader {
}

public abstract interface class elide/runtime/intrinsics/js/stream/ReadableStreamSource {
public static final field Companion Lelide/runtime/intrinsics/js/stream/ReadableStreamSource$Companion;
public abstract fun cancel (Ljava/lang/String;)Ljava/util/concurrent/Future;
public static fun from (Lorg/graalvm/polyglot/Value;)Lelide/runtime/intrinsics/js/stream/ReadableStreamSource;
public abstract fun getType ()Lelide/runtime/intrinsics/js/stream/StreamSourceType;
public abstract fun pull (Lelide/runtime/intrinsics/js/stream/ReadableStreamController;)Ljava/util/concurrent/Future;
public abstract fun start (Lelide/runtime/intrinsics/js/stream/ReadableStreamController;)Ljava/util/concurrent/Future;
}

public final class elide/runtime/intrinsics/js/stream/ReadableStreamSource$Companion {
public final fun from (Lorg/graalvm/polyglot/Value;)Lelide/runtime/intrinsics/js/stream/ReadableStreamSource;
}

public final class elide/runtime/intrinsics/js/stream/StreamSourceType : java/lang/Enum, elide/core/api/Symbolic {
public static final field BYTES Lelide/runtime/intrinsics/js/stream/StreamSourceType;
public static final field Companion Lelide/runtime/intrinsics/js/stream/StreamSourceType$Companion;
public static final field DEFAULT Lelide/runtime/intrinsics/js/stream/StreamSourceType;
public static fun getEntries ()Lkotlin/enums/EnumEntries;
public synthetic fun getSymbol ()Ljava/lang/Object;
public fun getSymbol ()Ljava/lang/String;
public static fun valueOf (Ljava/lang/String;)Lelide/runtime/intrinsics/js/stream/StreamSourceType;
public static fun values ()[Lelide/runtime/intrinsics/js/stream/StreamSourceType;
}

public final class elide/runtime/intrinsics/js/stream/StreamSourceType$Companion : elide/core/api/Symbolic$SealedResolver {
public synthetic fun resolve (Ljava/lang/Object;)Lelide/core/api/Symbolic;
public fun resolve (Ljava/lang/String;)Lelide/runtime/intrinsics/js/stream/StreamSourceType;
}

public final class elide/runtime/intrinsics/js/stream/StreamSourceTypeKt {
public static final field STREAM_SOURCE_TYPE_BYTES Ljava/lang/String;
public static final field STREAM_SOURCE_TYPE_DEFAULT Ljava/lang/String;
}

public abstract interface class elide/runtime/intrinsics/js/stream/TransformStreamDefaultController {
}

public abstract interface class elide/runtime/intrinsics/js/stream/WritableStreamDefaultController {
}

public abstract interface class elide/runtime/intrinsics/js/stream/WritableStreamDefaultWriter {
}

public abstract interface class elide/runtime/intrinsics/js/typed/UUID : elide/runtime/intrinsics/js/StringLike {
public abstract fun getAsString ()Ljava/lang/String;
}
Expand Down

This file was deleted.

Loading

0 comments on commit 5ad4429

Please sign in to comment.