PsyTask | API Docs
    Preparing search index...

    Class App<T>

    Disposable event emitter, use Set to manage listeners

    Type Parameters

    • T extends { frame_ms: number } = { frame_ms: number }

    Hierarchy (View Summary)

    Index

    Constructors

    • Type Parameters

      • T extends { frame_ms: number } = { frame_ms: number }

      Parameters

      • root: HTMLElement

        Root element of the app

      • data: T & LooseObject

        Data will be collected automatically

      Returns App<T>

    Properties

    data: T & LooseObject

    Data will be collected automatically

    listeners: { dispose?: Set<(e: undefined) => void> }

    Root element of the app

    Methods

    • Create data collector

      Type Parameters

      • T extends LooseObject

      Parameters

      • ...e: [
            filename: string,
            options?: { backup_on_leave?: boolean; serializer?: Serializer<T> },
        ]

      Returns Collector<T>

      Basic usage

      using dc = await app.collector('data.csv');
      dc.add({ name: 'Alice', age: 25 });
      dc.add({ name: 'Bob', age: 30 });
      dc.final(); // get final text
      dc.download(); // download data.csv

      Add listeners

      using dc = await app
      .collector('data.csv')
      .on('add', (row) => {
      console.log('add a row', row);
      })
      .on('chunk', (chunk) => {
      console.log('a chunk of raw is ready', chunk);
      });
    • Emit event listeners

      Type Parameters

      • K extends "dispose"

      Parameters

      • type: K
      • ...__namedParameters: { dispose: undefined }[K] extends undefined
            ? [evt?: any[any]]
            : [evt: { dispose: undefined }[K]]

      Returns this

    • Remove event listener

      Type Parameters

      • K extends "dispose"

      Parameters

      • type: K
      • listener: (evt: { dispose: undefined }[K]) => void

      Returns this

    • Add event listener

      Type Parameters

      • K extends "dispose"

      Parameters

      • type: K
      • listener: (evt: { dispose: undefined }[K]) => void

      Returns this

    • Add one-time event listener, can not be removed manually

      Type Parameters

      • K extends "dispose"

      Parameters

      • type: K
      • listener: (evt: { dispose: undefined }[K]) => void

      Returns this

    • Create a scene

      Type Parameters

      • T extends MaybeGenericComponent

      Parameters

      Returns Scene<T> & { config(patchOptions: Partial<ExtendedSceneOptions>): Scene<T> }

      • config: function
        • Change options one-time

          Parameters

          • patchOptions: Partial<ExtendedSceneOptions>

          Returns Scene<T>

          Show with new options

          await scene.config({ duration: 1e2 }).show();
          await scene.config({ close_on: 'click' }).show();

      Create text scene

      const Component = (props: { text: string }) => {
      const el = document.createElement('div');
      const ctx = getCurrentScene();
      ctx.on('show', () => {
      el.textContent = props.text; // update element
      });
      return {
      node: el,
      data: () => ({ text: el.textContent }),
      };
      };

      using scene = app.scene(Component, {
      adapter: createComponentAdapter((e) => e),
      defaultProps: { text: 'default text' }, // default props is required
      close_on: 'click',
      duration: 100,
      });

      Scene