Storage API in Custom UI

Hey.

I am building a forge app. I have built the UI using Custom UI, but now I cannot find a way to use storage api.

import {storage} from '@forge/api'

Apparently this is supported only for UI Kit, but I don’t think I can switch now.

Any help would be appreciated.

3 Likes

Hey !

It’s the same problem on this post.

Since you cant call @forge/api in Custom UI, you have to use a Forge function.

  1. Define a Forge function using the @forge/resolver package (see examples here)
  2. In this function, add the logic to use the Storage API using storage from @forge/api
  3. Finally, in your CustomUI front code, use the @forge/bridge to invoke the Forge function defined in the first point (see example here)

Hope it’s help

5 Likes

@clement_garin Thank you for that. I will give it a try. Have a great day!

Hi @clement_garin @AkashP
After adding resolver dependancy getting below error while building app. can you please help ?

Error: Bundling failed: Module not found: Error: Can't resolve 'fs' in '/Users/vsarode/RQ/ds/temp/Jira-Cloud/node_modules/@forge/resolver/node_modules/@forge/api/out/api', Module not found: Error: Can't resolve 'path' in '/Users/vsarode/RQ/ds/temp/Jira-Cloud/node_modules/@forge/resolver/node_modules/@forge/api/out/api'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
        - install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "path": false }, Module not found: Error: Can't resolve 'async_hooks' in '/Users/vsarode/RQ/ds/temp/Jira-Cloud/node_modules/@forge/resolver/node_modules/@forge/api/out/api'