I’m building my custom field type in UI Kit 2 and getting resolver could not be invoked error
Structure:
src
├── frontend
│ ├── context-config.jsx
│ ├── edit.jsx
│ └── index.jsx
├── index.js
└── resolvers
└── index.js
manifest.yaml:
modules:
function:
- key: proxy-functions
handler: index.handler
jira:customFieldType:
- key: <key>
name: New Custom Field Type
description: A hello world custom field.
type: string
view:
render: native
resource: main
experience:
- issue-view
- portal-view
edit:
resource: edit
render: native
isInline: true
resolver:
function: proxy-functions
experience:
- issue-create
- issue-transition
- issue-view
- portal-request
contextConfig:
resource: config
layout: basic
render: native
resources:
- key: main
path: src/frontend/index.jsx
- key: edit
path: src/frontend/edit.jsx
- key: config
path: src/frontend/context-config.jsx
src/index.js:
export { handler } from './resolvers';
src/resolvers/index.js:
import Resolver from '@forge/resolver';
const resolver = new Resolver();
resolver.define('autocomplete', async ({ payload }) => {
const q = (payload?.q || '').trim();
if (!q) return { suggestions: [] };
return { suggestions: [{ text: `${q} Example Ave` }] };
});
export const handler = resolver.getDefinitions();
invoking it from edit.js
const data = await invoke('autocomplete', { q, max: MAX_RESULTS });
Error:
edit.js:2 autocomplete error Error: Entry point "resolver" for extension "key" could not be invoked as it does not exist or does not reference a function or endpoint
at invoke (https://jira-frontend-bifrost.prod-east.frontend.public.atl-paas.net/assets/async-forge-ui-custom-field-extension.af095280.js:90:23716)
at async https://jira-frontend-bifrost.prod-east.frontend.public.atl-paas.net/assets/async-forge-ui-custom-field-extension.af095280.js:90:57651
Error: Entry point "resolver" for extension "address-custom-field-type-custom-field-type-ui-kit-2-hello-world" could not be invoked as it does not exist or does not reference a function or endpoint
at he.error (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:131452)
at Object.<anonymous> (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:139225)
at JSON.parse (<anonymous>)
at Oe.o (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:139084)
at Oe (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:139237)
at Me.s.on (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:143897)
at Me (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:144034)
at https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:150020
at e.try (https://forge.cdn.prod.atlassian-dev.net/global-bridge.js:2:122504)
seems like I tried all things possible but still can’t figure it out.
Any ideas much appreciated.