aboutsummaryrefslogtreecommitdiff
path: root/src/fields/ScriptField.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-08-20 19:11:00 -0400
committerbobzel <zzzman@gmail.com>2024-08-20 19:11:00 -0400
commit5196009ec6bcb673fd2a4519c54442df218841f7 (patch)
tree79f4b1d559c20a6bfd9b4759a5cbe9d8f8c00fe1 /src/fields/ScriptField.ts
parent0e975569e5686138e52bdc554b3f0391f42aeead (diff)
parente57584a1be9d428fb40fc789494a7ac0ac14fb84 (diff)
fixed up a bunch of things in face recognition
Diffstat (limited to 'src/fields/ScriptField.ts')
-rw-r--r--src/fields/ScriptField.ts28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/fields/ScriptField.ts b/src/fields/ScriptField.ts
index 8fe365ac2..582c09f29 100644
--- a/src/fields/ScriptField.ts
+++ b/src/fields/ScriptField.ts
@@ -1,15 +1,15 @@
import { action, makeObservable, observable } from 'mobx';
import { computedFn } from 'mobx-utils';
import { PropSchema, SKIP, createSimpleSchema, custom, map, object, primitive, serializable } from 'serializr';
-import { numberRange } from '../Utils';
+import { emptyFunction, numberRange } from '../Utils';
import { GPTCallType, gptAPICall } from '../client/apis/gpt/GPT';
import { CompileScript, CompiledScript, ScriptOptions, Transformer } from '../client/util/Scripting';
import { ScriptingGlobals, scriptingGlobal } from '../client/util/ScriptingGlobals';
import { Deserializable, autoObject } from '../client/util/SerializationHelper';
-import { Doc, Field, FieldType, FieldResult, Opt } from './Doc';
+import { Doc, Field, FieldType, FieldResult, ObjGetRefField, Opt } from './Doc';
import { Copy, FieldChanged, Id, ToJavascriptString, ToScriptString, ToString, ToValue } from './FieldSymbols';
import { List } from './List';
-import { ObjGetRefField, ObjectField } from './ObjectField';
+import { ObjectField } from './ObjectField';
import { Cast, StrCast } from './Types';
function optional(propSchema: PropSchema) {
@@ -20,7 +20,7 @@ function optional(propSchema: PropSchema) {
}
return SKIP;
},
- (jsonValue: any, context: any, oldValue: any, callback: (err: any, result: any) => void) => {
+ (jsonValue, context, oldValue, callback) => {
if (jsonValue !== undefined) {
return propSchema.deserializer(jsonValue, callback, context, oldValue);
}
@@ -63,7 +63,7 @@ function finalizeScript(scriptIn: ScriptField) {
async function deserializeScript(scriptIn: ScriptField) {
const script = scriptIn;
if (script.captures) {
- const captured: any = {};
+ const captured: { [key: string]: undefined | string | number | boolean | Doc } = {};
(script.script.options as ScriptOptions).capturedVariables = captured;
Promise.all(
script.captures.map(async capture => {
@@ -85,7 +85,7 @@ async function deserializeScript(scriptIn: ScriptField) {
}
@scriptingGlobal
-@Deserializable('script', deserializeScript)
+@Deserializable('script', (obj: unknown) => deserializeScript(obj as ScriptField))
export class ScriptField extends ObjectField {
@serializable
readonly rawscript: string | undefined;
@@ -114,7 +114,7 @@ export class ScriptField extends ObjectField {
const captured = script?.options?.capturedVariables;
if (captured) {
- this.captures = new List<string>(Object.keys(captured).map(key => key + ':' + (captured[key] instanceof Doc ? 'ID->' + (captured[key] as Doc)[Id] : captured[key].toString())));
+ this.captures = new List<string>(Object.keys(captured).map(key => key + ':' + (captured[key] instanceof Doc ? 'ID->' + (captured[key] as Doc)[Id] : captured[key]?.toString())));
}
this.rawscript = rawscript;
this.setterscript = setterscript;
@@ -186,7 +186,7 @@ export class ScriptField extends ObjectField {
}
@scriptingGlobal
-@Deserializable('computed', deserializeScript)
+@Deserializable('computed', (obj: unknown) => deserializeScript(obj as ComputedField))
export class ComputedField extends ScriptField {
static undefined = '__undefined';
static useComputed = true;
@@ -221,7 +221,7 @@ export class ComputedField extends ScriptField {
_readOnly_: true,
},
console.log
- ).result
+ ).result as FieldResult
)(); // prettier-ignore
return this._lastComputedResult;
};
@@ -239,7 +239,7 @@ export class ComputedField extends ScriptField {
public static MakeInterpolatedNumber(fieldKey: string, interpolatorKey: string, doc: Doc, curTimecode: number, defaultVal: Opt<number>) {
if (!doc[`${fieldKey}_indexed`]) {
- const flist = new List<number>(numberRange(curTimecode + 1).map(() => undefined) as any as number[]);
+ const flist = new List<number>(numberRange(curTimecode + 1).map(emptyFunction) as unknown as number[]);
flist[curTimecode] = Cast(doc[fieldKey], 'number', null);
doc[`${fieldKey}_indexed`] = flist;
}
@@ -249,7 +249,7 @@ export class ComputedField extends ScriptField {
}
public static MakeInterpolatedString(fieldKey: string, interpolatorKey: string, doc: Doc, curTimecode: number) {
if (!doc[`${fieldKey}_`]) {
- const flist = new List<string>(numberRange(curTimecode + 1).map(() => undefined) as any as string[]);
+ const flist = new List<string>(numberRange(curTimecode + 1).map(emptyFunction) as unknown as string[]);
flist[curTimecode] = StrCast(doc[fieldKey]);
doc[`${fieldKey}_indexed`] = flist;
}
@@ -260,7 +260,7 @@ export class ComputedField extends ScriptField {
public static MakeInterpolatedDataField(fieldKey: string, interpolatorKey: string, doc: Doc, curTimecode: number) {
if (doc[`${fieldKey}`] instanceof List) return undefined;
if (!doc[`${fieldKey}_indexed`]) {
- const flist = new List<FieldType>(numberRange(curTimecode + 1).map(() => undefined) as any as FieldType[]);
+ const flist = new List<FieldType>(numberRange(curTimecode + 1).map(emptyFunction) as unknown as FieldType[]);
flist[curTimecode] = Field.Copy(doc[fieldKey]);
doc[`${fieldKey}_indexed`] = flist;
}
@@ -278,7 +278,7 @@ export class ComputedField extends ScriptField {
ScriptingGlobals.add(
// eslint-disable-next-line prefer-arrow-callback
- function setIndexVal(list: any[], index: number, value: any) {
+ function setIndexVal(list: FieldResult[], index: number, value: FieldType) {
while (list.length <= index) list.push(undefined);
list[index] = value;
},
@@ -288,7 +288,7 @@ ScriptingGlobals.add(
ScriptingGlobals.add(
// eslint-disable-next-line prefer-arrow-callback
- function getIndexVal(list: any[], index: number, defaultVal: Opt<number> = undefined) {
+ function getIndexVal(list: unknown[], index: number, defaultVal: Opt<number> = undefined) {
return list?.reduce((p, x, i) => ((i <= index && x !== undefined) || p === undefined ? x : p), defaultVal);
},
'returns the value at a given index of a list',