{"id":51005343,"url":"https://github.com/interopio/js-examples","last_synced_at":"2026-06-20T20:01:56.553Z","repository":{"id":48643866,"uuid":"154462743","full_name":"InteropIO/js-examples","owner":"InteropIO","description":"JavaScript examples of using io.Connect APIs.","archived":false,"fork":false,"pushed_at":"2026-06-02T07:27:02.000Z","size":4217,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":20,"default_branch":"master","last_synced_at":"2026-06-02T09:18:16.776Z","etag":null,"topics":["api","docs-demos","glue42","javascript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InteropIO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-24T08:07:02.000Z","updated_at":"2026-06-02T07:27:05.000Z","dependencies_parsed_at":"2023-12-08T10:28:46.923Z","dependency_job_id":"516cc763-35db-4abc-bbb5-282a7ada3fb4","html_url":"https://github.com/InteropIO/js-examples","commit_stats":null,"previous_names":["interopio/js-examples"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/InteropIO/js-examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteropIO%2Fjs-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteropIO%2Fjs-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteropIO%2Fjs-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteropIO%2Fjs-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InteropIO","download_url":"https://codeload.github.com/InteropIO/js-examples/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteropIO%2Fjs-examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34583589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","docs-demos","glue42","javascript"],"created_at":"2026-06-20T20:01:53.317Z","updated_at":"2026-06-20T20:01:56.546Z","avatar_url":"https://github.com/InteropIO.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript Examples for io.Connect Desktop\r\n\r\nThis repository contains basic examples of io.Connect enabled apps.\r\n\r\n*For more information on **io.Connect Desktop**, visit the [official io.Connect product site](https://interop.io/products/io-connect/) or see the **io.Connect Desktop** [documentation](https://docs.interop.io/).*\r\n\r\n## Prerequisites\r\n\r\n- [**io.Connect Desktop**](https://interop.io/products/io-connect/)\r\n- node\r\n- npm\r\n\r\n## Setup\r\n\r\n- Clone the repository.\r\n- Copy the `js-examples.json` configuration file and paste it in the **io.Connect Desktop** app configuration folder located at `%LocalAppData%\\interop.io\\io.Connect Desktop\\\u003cENV\u003e-\u003cREG\u003e\\apps`, where `\u003cENV\u003e-\u003cREG\u003e` represents the environment and region of **io.Connect Desktop** (e.g., DEMO-INTEROP.IO).\r\n- Open a command prompt in the base repo directory and run `npm install` to install all dependencies.\r\n- Run `npm start` to start a server at port 4242 where the apps will be hosted.\r\n- Start **io.Connect Desktop**.\r\n\r\nNow you will be able to start all example apps from the **io.Connect Desktop** launcher. All examples are grouped in the \"JavaScript Examples\" folder.\r\n\r\n## Examples\r\n\r\n### App Management\r\n\r\nThis example app uses the [App Management API](https://docs.interop.io/desktop/capabilities/app-management/javascript/index.html) to start and list apps and app instances:\r\n\r\n- lists the names of all registered visible apps;\r\n- lists the instances of the currently running visible apps;\r\n- starts app instances;\r\n- listens for any added or removed apps;\r\n- listens for any started or stopped instances of apps;\r\n\r\n### App Preferences\r\n\r\nThis example demonstrates how to use the [App Preferences API](https://docs.interop.io/desktop/capabilities/app-preferences/javascript/index.html) to save, update and retrieve custom app preferences for the current user.\r\n\r\n### Channels\r\n\r\nThis example contains two apps which use the [Channels API](https://docs.interop.io/desktop/capabilities/data-sharing/channels/javascript/index.html). You can open more than one instance of the subscriber app to use different Channels.\r\n\r\n#### Channels Publisher\r\n\r\nAfter selecting a Channel, you can publish any data to the current Channel or to any other Channel.\r\n\r\n#### Channels Subscriber\r\n\r\nSelect a Channel from the Channel Selector UI or join/leave Channels programmatically. Get the context of any Channel. The context data of the current Channel is also displayed in the app.\r\n\r\n### Flydown\r\n\r\nApp demonstrating the [flydown window functionality](https://docs.interop.io/desktop/capabilities/windows/window-management/javascript/index.html#flydown_windows) in **io.Connect Desktop**.\r\n\r\n#### Flydown App\r\n\r\nThe app that will trigger the flydown window.\r\n\r\n#### Flydown Window\r\n\r\nThe window that will be used as a flydown window.\r\n\r\n### Intents\r\n\r\nThis example contains two apps that use the [Intents API](https://docs.interop.io/desktop/capabilities/intents/javascript/index.html).\r\n\r\n#### Client List\r\n\r\nSelect a client to start the Client Portfolio app with the selected client as its context. If the Client Portfolio app is already running, selecting a client will update its context.\r\n\r\n#### Client Portfolio\r\n\r\nThis app is registered as an Intent handler and will be started when you select a client in the Client List app, or if already running, its context will be updated and it will show the selected client's portfolio.\r\n\r\n### Interop Request/Response\r\n\r\nThis example contains two apps which use the [Interop API](https://docs.interop.io/desktop/capabilities/data-sharing/interop/javascript/index.html) to communicate.\r\n\r\n#### Interop Request\r\n\r\nSelect a company from the list to [invoke an Interop method](https://docs.interop.io/desktop/capabilities/data-sharing/interop/javascript/index.html#method_invocation) registered by the Interop Response app.\r\n\r\n#### Interop Response\r\n\r\n[Registers an Interop method](https://docs.interop.io/desktop/capabilities/data-sharing/interop/javascript/index.html#method_registration) that will show details about the selected company in the Interop Request app.\r\n\r\n### Interop Streaming\r\n\r\nBasic [Interop Streaming](https://docs.interop.io/desktop/capabilities/data-sharing/interop/javascript/index.html#streaming) example consisting of an Interop Publisher and an Interop Subscriber apps.\r\n\r\n#### Interop Publisher\r\n\r\nCreates a stream and handles stream subscriptions. Shows publishing stream data to all subscribers and to a specific stream branch.\r\n\r\n#### Interop Subscriber\r\n\r\nSubscribes to a stream and shows the received stream data. You can open more than one Interop Subscriber instance to test various streaming scenarios.\r\n\r\n### Popup\r\n\r\nApp demonstrating the [popup window functionality](https://docs.interop.io/desktop/capabilities/windows/window-management/javascript/index.html#popup_windows) in **io.Connect Desktop**.\r\n\r\n#### Popup App\r\n\r\nThe app that will trigger the popup window.\r\n\r\n#### Popup Window\r\n\r\nThe window that will be used as a popup window.\r\n\r\n### Pub/Sub\r\n\r\nTwo apps using the [Pub/Sub API](https://docs.interop.io/desktop/capabilities/data-sharing/pub-sub/javascript/index.html) to communicate.\r\n\r\n#### Publisher\r\n\r\nPublishes data on a topic.\r\n\r\n#### Subscriber\r\n\r\nSubscribes for data on a topic.\r\n\r\n### Search\r\n\r\nTwo apps using the [Search API](https://docs.interop.io/desktop/capabilities/search/javascript/index.html) to register a search provider and create search queries.\r\n\r\n#### Search Bar\r\n\r\nOpen the Search Bar from the **io.Connect Desktop** launcher or by pressing `CTRL + SHIFT + S`. Type and press the \"Search\" button or `Enter` to search. Press `Esc` or the \"Close\" button to hide the Search Bar. The Search Bar will hide also when it loses focus. Selecting an action from the results, will execute it; selecting a Workspace, will open it; selecting a client, will open the **io.Connect Desktop** Client Contact demo app showing info about the selected client.\r\n\r\n#### Search Provider\r\n\r\nStarts automatically as a hidden service app and registers itself as a search provider for actions, Workspaces and clients. Registers a shortcut for opening the Search bar and Interop methods for executing actions when the user clicks a result in the Search Bar.\r\n\r\n### Shared Contexts\r\n\r\nTwo apps that use the [Shared Contexts API](https://docs.interop.io/desktop/capabilities/data-sharing/shared-contexts/javascript/index.html) to communicate.\r\n\r\n#### Client List\r\n\r\nSelecting a client in the app updates a shared context object with the client ID.\r\n\r\n#### Client Portfolio\r\n\r\nSubscribes for context updates and shows the selected client's portfolio based on the updated client ID in the shared context object.\r\n\r\n### Themes\r\n\r\nThis example demonstrates using the [Themes API](https://docs.interop.io/desktop/capabilities/windows/themes/javascript/index.html) to get all available themes, get the current theme, select a theme and subscribe for theme change events.\r\n\r\n### Window Management\r\n\r\nExample of controlling the current or other io.Connect Windows using the [Window Management API](https://docs.interop.io/desktop/capabilities/windows/window-management/javascript/index.html).\r\n\r\n#### My Window\r\n\r\nApp demonstrating controlling the current io.Connect Window.\r\n\r\n#### Window Manipulation\r\n\r\nApp demonstrating opening and controlling io.Connect Windows.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finteropio%2Fjs-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finteropio%2Fjs-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finteropio%2Fjs-examples/lists"}