Page MenuHomeSealhub

item-draft.ts
No OneTemporary

item-draft.ts

import { Collection, FieldTypes as SealiousFieldTypes } from "sealious";
import { sealiousToFormField } from "./get-field-for-sealious.js";
import { Hybrid } from "./hybrid.js";
import { FormField } from "./field.js";
import { ExtractedFieldInfo } from "../../utils/extract-fields-from-collection.js";
import { toPascalCase } from "js-convert-case";
export class ItemDraft<C extends Collection> extends Hybrid<{
[name in keyof C["fields"]]: FormField;
}> {
constructor(public sealious_field: SealiousFieldTypes.ItemDraft<C>) {
super(
Object.fromEntries(
Object.entries(sealious_field.target_collection.fields).map(
([field_name, sealious_field]) => [
field_name,
sealiousToFormField(sealious_field),
]
)
) as unknown as {
[name in keyof C["fields"]]: FormField;
}
);
}
generateFieldDeclaration(
field_info: ExtractedFieldInfo,
vars: { form_field_types: string; sealious_field: string }
): string {
return `new ${vars.form_field_types}.${this.constructor.name}<typeof ${toPascalCase(field_info.target!)}>(${vars.sealious_field})`;
}
generateImportsForFieldList(
field_info: ExtractedFieldInfo
): { what: string; from: string; as?: string; type?: boolean }[] {
return [
{
what: toPascalCase(field_info.target!),
from: "src/back/collections/collections.js",
type: true,
},
];
}
}

File Metadata

Mime Type
text/x-java
Expires
Sun, Nov 2, 17:56 (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1029149
Default Alt Text
item-draft.ts (1 KB)

Event Timeline