GithubHelp home page GithubHelp logo

zawilliams / cep-spy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from inventsable/cep-spy

0.0 1.0 0.0 513 KB

No-dependency CEP utility for identifying current host app, current panel, sibling extensions and more

JavaScript 100.00%

cep-spy's Introduction

cep-spy

Slim, no-dependency utility to dynamically reveal all information about current Adobe host application, active panel using it and even it's sibling CEP extensions, all without needing CSInterface.

Installation

npm install cep-spy

Usage

// Via import:
import spy from "cep-spy";

// Via require:
const spy = require("cep-spy").default;

Examples:

CEP-Spy returns as an object with various pre-calculated values and helper functions:

import spy from "cep-spy";
console.log(spy);

Some are simple wrappers around CSInterface's functions but returning more useful formats (no need to always JSON.parse), some return values that CSInterface doesn't even offer but are useful (localhost port, extension version, environment, etc)


Launch the current localhost of the panel without knowing the app, panel, or localhost:

import spy from "cep-spy";

spy.launchLocalhost(); // Launches in default browser

console.log(spy.localhost); // Returns `http://localhost:####`

Easily get absolute values about your panel/environment regardless of OS:

const spy = require("cep-spy").default;

console.log(spy.path.root); // Returns 'C:/Users/.../[your-panel-root]'
console.log(spy.extVersion); // Returns '1.0.0', as defined in manifest.xml
console.log(spy.isDev); // Returns BOOL true if bombino and while hot reloading
console.log(spy.appName); // Returns 'ILST' or current <HostList> param of host app

Spy on all your colleagues:

import spy from "cep-spy";

let siblings = spy.getAllExtensions();
console.log(siblings);


API

Static values

  • path.root [STRING]: The absolute path (pre-treated) of the current extension
  • path.userData [STRING]: The absolute path (pre-treated) to CS's userData
  • path.commonFiles [STRING]: The absolute path (pre-treated) to CS's commonFiles
  • path.myDocuments [STRING]: The absolute path (pre-treated) to CS's myDocuments
  • path.hostApplication [STRING]: The absolute path (pre-treated) to the app's hostApplication executable
  • package [OBJECT]: The JSON-parsed contents of the panel's root package.json file
  • extID [STRING]: id of the current extension as seen in manifest.xml (eg com.adobe.panel)
  • author [STRING/OBJECT]: Returns the author parameter of package.json, either as a string or an Object with name, email, and url key-values.
  • extName [STRING]: Proper name as displayed in Menu of the current extension
  • extVersion [STRING]: The major, minor, micro versioning of the extension (eg 1.x.x) in manifest.xml
  • ext [OBJECT]: Object containing CSInterface data for current extension (height, mainPath, width, windowType, etc.)
  • localhost [STRING]: The direct URL including "https://localhost:" of the current extension
  • isDev [BOOL]: True if extension"s document.location contains "localhost" (if bombino panel during hot reload for development)
  • appName [STRING]: The 4-letter app identifier from <HostList> (eg "ILST", "AEFT")
  • appLocale [STRING]: The language/region locale identifier (eg "en_US")
  • appVersion [STRING]: The major/minor/micro of the host app (eg 24.0.0)
  • userAgent [STRING]: If OS is Windows or Mac
  • cepVersion [STRING]: The major/minor/micro of CEP engine
  • hostCapabilities [OBJECT]: The extended parameters for host under the same name in CSInterface
  • userId [STRING]: CSInterface.getCurrentImsUserId() wrapper (returns null often)
  • exts [ARRAY]: Array of all CEP extensions (as objects with base data) in current host app.

Functions

  • getAllExtensions(): Returns array of all extension data including version from each manifest.xml
  • getExtData(id): Returns extension data object of matching id
  • openExtension(ext): Requests a given extension launch by extension data object
  • getVersion(ext): Returns a major/minor/micro from given extension data object
  • launchLocalhost(): Launches any given localhost or the current extension's localhost if none
  • launchHomepage(): Launches the homepage given in package.json's homepage attribute
  • launchGitRepo(): Launches the GitHub repo link given in package.json's repository attribute

cep-spy's People

Contributors

inventsable avatar zawilliams avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.