Request
I saw this code here https://adobexdplatform.com/plugin-docs/reference/PerPluginStorage.html and I am wondering if the XD team would allow the plugin ID to be received via the API instead of manually writing it a variable as below:
const PLUGIN_ID = "<your manifest's plugin ID here>";
let richObject = {
list: [2, 4, 6],
name: "Hello world"
};
node.sharedPluginData.setItem(PLUGIN_ID, "richData", JSON.stringify(richObject));
I agree that this would be good. Currently, I always use
require('./manifest.json').id
to get the plugin id (this, at least, doesn’t require me to set the id at different places).
I’m generally curious, however (I direct this question to Adobe): Why do we need to pass the plugin id to setItem
when (quoting the docs) “(it) Must be equal to your plugin’s ID.”?
2 Likes
I wouldn’t ever thought about this in a million years
And yeah, this:
node.sharedPluginData.setItem(PLUGIN_ID, "richData", JSON.stringify(richObject));
whould have been much better as this (less confusing):
node.sharedPluginData.setItem("richData", JSON.stringify(richObject));
1 Like
Yep, if you’re using webpack, you can
import { id } from '../manifest.json'
and Bob’s your uncle.
1 Like
@cpryland .
Ideally, with webpack (as webpack enables one to do so), one creates an alias for the manifest.json
. Importing
"../../../../../../../../manifest.json"
gets slightly out of hand a few levels deep .
but this doesn’t happen when you only have the main.js in the same folder with the manifest.json, right ?
Correct. Only when your plugins get more and more complex and subfolders of subfolders begin to emerge .
Yeah, that’s why we need it to get it from the scenegraph API
@cpryland please vote this feature
I think it’s much simpler to just include whatever you need from manifest in your sources, as I and other suggest above. Generally, it’d be in your main module, so I think the “levels deep” argument doesn’t hold.
No need for Adobe to burden the API with something this simple and easily accessible at build time.
1 Like