From 0315466b0ac276fe212cf79dd88d66c10105c6f1 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sun, 7 Apr 2024 10:19:09 -0700 Subject: [PATCH] core: add storage settings to scripts --- common/fs/@types/sdk/storage-settings.d.ts | 1 + common/src/eval/scrypted-eval.ts | 13 +++++++++++-- common/tsconfig.json | 3 ++- plugins/core/package-lock.json | 4 ++-- plugins/core/package.json | 2 +- plugins/core/tsconfig.json | 6 +++--- 6 files changed, 20 insertions(+), 9 deletions(-) create mode 120000 common/fs/@types/sdk/storage-settings.d.ts diff --git a/common/fs/@types/sdk/storage-settings.d.ts b/common/fs/@types/sdk/storage-settings.d.ts new file mode 120000 index 000000000..ed354b052 --- /dev/null +++ b/common/fs/@types/sdk/storage-settings.d.ts @@ -0,0 +1 @@ +../../../../sdk/dist/src/storage-settings.d.ts \ No newline at end of file diff --git a/common/src/eval/scrypted-eval.ts b/common/src/eval/scrypted-eval.ts index 1b39c6729..c7ae4202c 100644 --- a/common/src/eval/scrypted-eval.ts +++ b/common/src/eval/scrypted-eval.ts @@ -1,9 +1,9 @@ -import sdk, { MixinDeviceBase, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, ScryptedInterfaceDescriptors } from "@scrypted/sdk"; +import sdk, { MixinDeviceBase, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, ScryptedInterfaceDescriptors, ScryptedMimeTypes } from "@scrypted/sdk"; +import { StorageSettings } from "@scrypted/sdk/storage-settings"; import fs from 'fs'; import type { TranspileOptions } from "typescript"; import vm from "vm"; import { ScriptDevice } from "./monaco/script-device"; -import path from 'path'; const { systemManager, deviceManager, mediaManager, endpointManager } = sdk; @@ -28,9 +28,11 @@ export function readFileAsString(f: string) { } function getTypeDefs() { + const storageSettingsDefs = readFileAsString('@types/sdk/storage-settings.d.ts'); const scryptedTypesDefs = readFileAsString('@types/sdk/types.d.ts'); const scryptedIndexDefs = readFileAsString('@types/sdk/index.d.ts'); return { + storageSettingsDefs, scryptedIndexDefs, scryptedTypesDefs, }; @@ -64,6 +66,7 @@ export async function scryptedEval(device: ScryptedDeviceBase, script: string, e fs: require('realfs'), ScryptedDeviceBase, MixinDeviceBase, + StorageSettings, systemManager, deviceManager, endpointManager, @@ -73,6 +76,7 @@ export async function scryptedEval(device: ScryptedDeviceBase, script: string, e localStorage: device.storage, device, exports: {} as any, + ScryptedMimeTypes, ScryptedInterface, ScryptedDeviceType, // @ts-expect-error @@ -173,6 +177,11 @@ export function createMonacoEvalDefaults(extraLibs: { [lib: string]: string }) { "node_modules/@types/scrypted__sdk/types/index.d.ts" ); + monaco.languages.typescript.typescriptDefaults.addExtraLib( + libs['storageSettings'], + "node_modules/@types/scrypted__sdk/storage-settings.d.ts" + ); + monaco.languages.typescript.typescriptDefaults.addExtraLib( libs['sdk'], "node_modules/@types/scrypted__sdk/index.d.ts" diff --git a/common/tsconfig.json b/common/tsconfig.json index cd66ca1ca..0eac7cc3a 100644 --- a/common/tsconfig.json +++ b/common/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { - "module": "commonjs", + "module": "Node16", + "moduleResolution": "Node16", "target": "esnext", "noImplicitAny": true, "outDir": "./dist", diff --git a/plugins/core/package-lock.json b/plugins/core/package-lock.json index e67f8e237..54c476db1 100644 --- a/plugins/core/package-lock.json +++ b/plugins/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/core", - "version": "0.3.19", + "version": "0.3.20", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/core", - "version": "0.3.19", + "version": "0.3.20", "license": "Apache-2.0", "dependencies": { "@scrypted/common": "file:../../common", diff --git a/plugins/core/package.json b/plugins/core/package.json index e7e2352d8..7b48c2a39 100644 --- a/plugins/core/package.json +++ b/plugins/core/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/core", - "version": "0.3.19", + "version": "0.3.20", "description": "Scrypted Core plugin. Provides the UI, websocket, and engine.io APIs.", "author": "Scrypted", "license": "Apache-2.0", diff --git a/plugins/core/tsconfig.json b/plugins/core/tsconfig.json index 34a847ad8..add61bc65 100644 --- a/plugins/core/tsconfig.json +++ b/plugins/core/tsconfig.json @@ -1,9 +1,9 @@ { "compilerOptions": { - "module": "commonjs", - "target": "ES2021", - "resolveJsonModule": true, + "module": "Node16", "moduleResolution": "Node16", + "target": "esnext", + "resolveJsonModule": true, "esModuleInterop": true, "sourceMap": true },