@appscode/ui-builder
Version:
## Motivation
85 lines (72 loc) • 1.9 kB
JavaScript
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,
// };