UNPKG

@appscode/ui-builder

Version:
85 lines (72 loc) 1.9 kB
export async function fetchJsons({ loadLocalFile, loadLocalJsModule }, url) { let ui = {}; let language = {}; let functions = {}; try { ui = await loadLocalFile(`/${url}/ui.json`); language = await loadLocalFile(`/${url}/language.json`); functions = await loadLocalJsModule(`/${url}/functions.js`); } catch (e) { console.log(e); } return { ui, language, functions, }; } export function getOperatorsList() { return ["In", "NotIn", "Exists", "DoesNotExist", "Gt", "Lt"]; } export async function getImagePullSecrets({ getValue, watchDependency, axios, storeGet, reusableElementCtx, }) { const namespace = getValue(reusableElementCtx, "/data/namespace"); watchDependency("data#/namespace"); let resources = await getNamespacedResourceList(axios, storeGet, { namespace, group: "core", version: "v1", resource: "secrets", }); resources = resources.filter((item) => { const validType = ["kubernetes.io/dockerconfigjson"]; return validType.includes(item.type); }); return resources.map((resource) => { const name = (resource.metadata && resource.metadata.name) || ""; return { text: name, value: { name: name }, }; }); } export async function getNamespacedResourceList( axios, storeGet, { namespace, group, version, resource } ) { const owner = storeGet("/user/username"); const cluster = storeGet("/clusterInfo/name"); const url = `/clusters/${owner}/${cluster}/proxy/${group}/${version}/namespaces/${namespace}/${resource}`; let ans = []; try { const resp = await axios.get(url, { params: { filter: { items: { metadata: { name: null }, type: null } }, }, }); const items = (resp && resp.data && resp.data.items) || []; ans = items; } catch (e) { console.log(e); } return ans; } // return { // fetchJsons, // };