runeforge 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import type { AttributeMetadata, AttributeType, SelectOption } from '../../../types/attribute.js';
2
2
  import type { FieldDefinition } from '../../../types/crud.js';
3
3
  export declare function resolveOptions(m: AttributeMetadata, d: unknown): SelectOption[] | undefined;
4
+ export declare function resolveDefault(m: AttributeMetadata, d: unknown): unknown;
4
5
  export declare function resolveFormatter(m: AttributeMetadata, d: unknown): import("../../../index.ts").CellFormatter<any, any> | undefined;
5
6
  export declare function inferType(key: string, value: unknown): AttributeType;
6
7
  export declare function buildFieldDefinitions<T extends object = Record<string, unknown>>(meta: Partial<Record<string, AttributeMetadata>>, data: unknown, excludedFlag: 'excludedFromCreate' | 'excludedFromRead' | 'excludedFromUpdate', excluded: Set<string>): FieldDefinition<T>[];
@@ -3,6 +3,9 @@ export function resolveOptions(m, d) {
3
3
  return undefined;
4
4
  return typeof m.options === 'function' ? m.options(d) : m.options;
5
5
  }
6
+ export function resolveDefault(m, d) {
7
+ return typeof m.default === 'function' ? m.default(d) : m.default;
8
+ }
6
9
  export function resolveFormatter(m, d) {
7
10
  return m.formatter?.(d);
8
11
  }
@@ -34,7 +37,7 @@ export function buildFieldDefinitions(meta, data, excludedFlag, excluded) {
34
37
  required: m.required,
35
38
  autocomplete: m.autocomplete,
36
39
  placeholder: m.placeholder,
37
- default: m.default,
40
+ default: resolveDefault(m, data),
38
41
  options: resolveOptions(m, data),
39
42
  dependentOptions: m.dependentOptions
40
43
  ? (record) => m.dependentOptions(data, record)
@@ -39,6 +39,9 @@ export type AttributeMetadata = {
39
39
  required?: boolean;
40
40
  autocomplete?: FullAutoFill;
41
41
  placeholder?: string;
42
+ /** Initial value on the create form. Pass a plain value, or a function of
43
+ * `data` (e.g. to default a select to an option derived from prefetched
44
+ * data) evaluated once when the create fields are resolved. */
42
45
  default?: any;
43
46
  excludedFromList?: boolean;
44
47
  excludedFromCreate?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runeforge",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "SvelteKit toolkit for building metadata-driven CRUD interfaces with tables, forms, and actions",
5
5
  "license": "MIT",
6
6
  "author": "Ezequiel Puerta",