export interface PluginConfigLookupItem { lookupFieldCode: string; srcAttachmentFieldCode: string; destAttachmentFieldCode: string; } export type PluginConfigLookup = PluginConfigLookupItem[]; export interface PluginConfig { lookup: PluginConfigLookup; } const encodeConfigLookup = (rows: PluginConfigLookup): string => { return JSON.stringify(rows); }; const decodeConfigLookup = (lookup: string): PluginConfigLookup | null => { try { return JSON.parse(lookup) as PluginConfigLookup; } catch (e) { return null; } }; export const loadPluginConfigLookup = (pluginId: string): PluginConfigLookup | null => { const config = kintone.plugin.app.getConfig(pluginId); return decodeConfigLookup(config.lookup); }; export const loadPluginConfig = (pluginId: string): PluginConfig | null => { const config = kintone.plugin.app.getConfig(pluginId); const lookup = decodeConfigLookup(config.lookup); return lookup ? { lookup } : null; }; export const savePluginConfigLookup = (lookup: PluginConfigLookup, callback: () => void) => { kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(lookup) }, callback); }; export const savePluginConfig = (config: PluginConfig, callback: () => void) => { kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(config.lookup) }, callback); };