mirror of
https://github.com/zadam/trilium.git
synced 2025-11-13 16:55:50 +01:00
chore(monorepo): relocate client files
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
type LabelType = "text" | "number" | "boolean" | "date" | "datetime" | "time" | "url";
|
||||
type Multiplicity = "single" | "multi";
|
||||
|
||||
interface DefinitionObject {
|
||||
isPromoted?: boolean;
|
||||
labelType?: LabelType;
|
||||
multiplicity?: Multiplicity;
|
||||
numberPrecision?: number;
|
||||
promotedAlias?: string;
|
||||
inverseRelation?: string;
|
||||
}
|
||||
|
||||
function parse(value: string) {
|
||||
const tokens = value.split(",").map((t) => t.trim());
|
||||
const defObj: DefinitionObject = {};
|
||||
|
||||
for (const token of tokens) {
|
||||
if (token === "promoted") {
|
||||
defObj.isPromoted = true;
|
||||
} else if (["text", "number", "boolean", "date", "datetime", "time", "url"].includes(token)) {
|
||||
defObj.labelType = token as LabelType;
|
||||
} else if (["single", "multi"].includes(token)) {
|
||||
defObj.multiplicity = token as Multiplicity;
|
||||
} else if (token.startsWith("precision")) {
|
||||
const chunks = token.split("=");
|
||||
|
||||
defObj.numberPrecision = parseInt(chunks[1]);
|
||||
} else if (token.startsWith("alias")) {
|
||||
const chunks = token.split("=");
|
||||
|
||||
defObj.promotedAlias = chunks[1];
|
||||
} else if (token.startsWith("inverse")) {
|
||||
const chunks = token.split("=");
|
||||
|
||||
defObj.inverseRelation = chunks[1];
|
||||
} else {
|
||||
console.log("Unrecognized attribute definition token:", token);
|
||||
}
|
||||
}
|
||||
|
||||
return defObj;
|
||||
}
|
||||
|
||||
export default {
|
||||
parse
|
||||
};
|
||||
Reference in New Issue
Block a user