IKHSAN
EN Read in EnglishID

opendesk

Publik
Branch
main
Commit terakhir
08d9f3328 Oktober 2026

meta.ts

Buka raw
import { createResource } from "frappe-ui";
import { reactive } from "vue";

const doctypeMeta = reactive({});
const userSettings = reactive({});

export function getMeta(doctype: string) {
  const meta = createResource({
    url: "frappe.desk.form.load.getdoctype",
    params: {
      doctype: doctype,
      with_parent: 1,
      cached_timestamp: null,
    },
    cache: ["Meta", doctype],
    onSuccess: (res) => {
      let dtMetas = res.docs;
      for (let dtMeta of dtMetas) {
        doctypeMeta[dtMeta.name] = dtMeta;
      }

      userSettings[doctype] = JSON.parse(res.user_settings);
    },
  });
  if (!doctypeMeta[doctype] && !meta.loading) {
    meta.fetch();
  }
  function getFields(dt = null) {
    dt = dt || doctype;
    return doctypeMeta[dt]?.fields.map((f) => f) || [];
  }

  function getField(fieldname: string) {
    return (
      doctypeMeta[doctype]?.fields.find((f) => f.fieldname === fieldname) ||
      null
    );
  }

  return { meta, doctypeMeta, getField, getFields };
}
byte
1.010
baris
42
Jenis
ts
Commit terakhir
28 Oktober 2026