diff options
author | bobzel <zzzman@gmail.com> | 2024-04-17 12:27:21 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2024-04-17 12:27:21 -0400 |
commit | 2a313f28fcb8675223708b0657de7517a3281095 (patch) | |
tree | ed6db226cc7d323aee378eddee43dc5f3bdb1ef9 /src/fields/ObjectField.ts | |
parent | 62937027183dc8acf14e489fbb4590aff6fce2cd (diff) |
restoring eslint - updates not complete yet
Diffstat (limited to 'src/fields/ObjectField.ts')
-rw-r--r-- | src/fields/ObjectField.ts | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/fields/ObjectField.ts b/src/fields/ObjectField.ts index e1b5b036c..6c70adc1d 100644 --- a/src/fields/ObjectField.ts +++ b/src/fields/ObjectField.ts @@ -1,26 +1,35 @@ -import { RefField } from './RefField'; -import { FieldChanged, Parent, Copy, ToScriptString, ToString, ToJavascriptString } from './FieldSymbols'; import { ScriptingGlobals } from '../client/util/ScriptingGlobals'; -import { Field } from './Doc'; +import { Copy, FieldChanged, Parent, ToJavascriptString, ToScriptString, ToString } from './FieldSymbols'; +import { RefField } from './RefField'; export abstract class ObjectField { // prettier-ignore public [FieldChanged]?: (diff?: { op: '$addToSet' | '$remFromSet' | '$set'; - items: Field[] | undefined; + items: FieldType[] | undefined; length: number | undefined; hint?: any }, serverOp?: any) => void; + // eslint-disable-next-line no-use-before-define public [Parent]?: RefField | ObjectField; abstract [Copy](): ObjectField; abstract [ToJavascriptString](): string; abstract [ToScriptString](): string; abstract [ToString](): string; -} - -export namespace ObjectField { - export function MakeCopy<T extends ObjectField>(field: T) { + static MakeCopy<T extends ObjectField>(field: T) { return field?.[Copy](); } } +export type FieldType = number | string | boolean | ObjectField | RefField; // bcz: hack for now .. must match the type definition in Doc.ts .. put here to avoid import cycles +// eslint-disable-next-line import/no-mutable-exports +export let ObjGetRefField: (id: string, force?: boolean) => Promise<RefField | undefined>; +// eslint-disable-next-line import/no-mutable-exports +export let ObjGetRefFields: (ids: string[]) => Promise<{ [id: string]: RefField | undefined }>; + +export function SetObjGetRefField(func: (id: string, force?: boolean) => Promise<RefField | undefined>) { + ObjGetRefField = func; +} +export function SetObjGetRefFields(func: (ids: string[]) => Promise<{ [id: string]: RefField | undefined }>) { + ObjGetRefFields = func; +} ScriptingGlobals.add(ObjectField); |