diff --git a/build/prepare.js b/build/prepare.js index 5ba4e5bf..85246554 100644 --- a/build/prepare.js +++ b/build/prepare.js @@ -11,6 +11,7 @@ if (process.env.npm_execpath.includes('yarn')) { const dir = path.dirname(path.dirname(require.resolve('@types/node/package.json'))); const types = fs.readdirSync(dir).filter((i) => !['sharedworker', 'serviceworker'].includes(i)); +/** @type {import('typescript/lib/typescript').CompilerOptions} */ const compilerOptionsBase = { target: 'es2020', module: 'commonjs', @@ -20,6 +21,7 @@ const compilerOptionsBase = { sourceMap: false, composite: true, strictBindCallApply: true, + resolveJsonModule: true, experimentalDecorators: true, // emitDecoratorMetadata: true, incremental: true, @@ -53,7 +55,7 @@ const configFlat = (name) => ({ rootDir: '.', }, include: ['**/*.ts'], - exclude: ['public'], + exclude: ['public', 'frontend'], }); for (const name of ['plugins', 'modules']) { @@ -73,7 +75,10 @@ const UIConfig = { exclude: [ 'packages/ui-default/public', ], - include: ['ts', 'tsx'].flatMap((ext) => [].map((name) => `${name}/**/public/**/*.${ext}`).concat(`packages/ui-default/**/*.${ext}`)), + include: ['ts', 'tsx'] + .flatMap((ext) => ['plugins', 'modules'] + .flatMap((name) => [`${name}/**/public/**/*.${ext}`, `${name}/**/frontend/**/*.${ext}`]) + .concat(`packages/ui-default/**/*.${ext}`)), compilerOptions: { experimentalDecorators: true, esModuleInterop: true, diff --git a/packages/onlyoffice/frontend/office.page.ts b/packages/onlyoffice/frontend/office.page.ts index 602c812c..c45a1c27 100644 --- a/packages/onlyoffice/frontend/office.page.ts +++ b/packages/onlyoffice/frontend/office.page.ts @@ -1,5 +1,7 @@ import { $, addPage, AutoloadPage } from '@hydrooj/ui-default'; +/* global DocsAPI */ + let loaded = false; async function load() { if (loaded) return Promise.resolve(); @@ -21,7 +23,7 @@ const loader = (mode) => async (element) => { const t = new URL(url, window.location.href).pathname.split('.'); const n = new URL(url, window.location.href).pathname.split('/'); const lang = UserContext.viewLang.includes('_') ? UserContext.viewLang.split('_')[0] : UserContext.viewLang; - // eslint-disable-next-line no-undef + // @ts-ignore window.editor = new DocsAPI.DocEditor(id, { document: { fileType: t[t.length - 1], diff --git a/packages/prom-client/index.ts b/packages/prom-client/index.ts index 15c5aacf..29c55a45 100644 --- a/packages/prom-client/index.ts +++ b/packages/prom-client/index.ts @@ -1,5 +1,5 @@ import { hostname } from 'os'; -import { AggregatorRegistry, metric } from 'prom-client'; +import { AggregatorRegistry, Metric } from 'prom-client'; import { Context, Handler, SystemModel } from 'hydrooj'; import { createRegistry } from './metrics'; @@ -14,7 +14,7 @@ declare module 'hydrooj' { } } -const instances: Record = {}; +const instances: Record = {}; class MetricsHandler extends Handler { noCheckPermView = true;