diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 7a573db2c0..1ce01722d8 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -30,6 +30,7 @@ "@nocobase/evaluators": "1.6.0-alpha.28", "@nocobase/sdk": "1.6.0-alpha.28", "@nocobase/utils": "1.6.0-alpha.28", + "@nocobase/json-template-parser": "1.6.0-alpha.28", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/client/src/application/Application.tsx b/packages/core/client/src/application/Application.tsx index 8d194d9d13..cbc98390f2 100644 --- a/packages/core/client/src/application/Application.tsx +++ b/packages/core/client/src/application/Application.tsx @@ -17,7 +17,7 @@ import React, { ComponentType, FC, ReactElement, ReactNode } from 'react'; import { createRoot } from 'react-dom/client'; import { I18nextProvider } from 'react-i18next'; import { Link, NavLink, Navigate } from 'react-router-dom'; - +import { createJSONTemplateParser, JSONTemplateParser } from '@nocobase/json-template-parser'; import { APIClient, APIClientProvider } from '../api-client'; import { CSSVariableProvider } from '../css-variable'; import { AntdAppProvider, GlobalThemeProvider } from '../global-theme'; @@ -83,6 +83,7 @@ export interface ApplicationOptions { export class Application { public eventBus = new EventTarget(); + public jsonTemplateParser: JSONTemplateParser; public providers: ComponentAndProps[] = []; public router: RouterManager; @@ -162,6 +163,7 @@ export class Application { }); this.initListeners(); this.jsonLogic = getOperators(); + this.jsonTemplateParser = createJSONTemplateParser(); } private initListeners() { diff --git a/packages/core/json-template-parser/package.json b/packages/core/json-template-parser/package.json index 0b3d151e0c..de48d19134 100644 --- a/packages/core/json-template-parser/package.json +++ b/packages/core/json-template-parser/package.json @@ -1,5 +1,5 @@ { - "name": "@nocobase/json-templates", + "name": "@nocobase/json-template-parser", "version": "1.6.0-alpha.28", "license": "AGPL-3.0", "main": "lib/index.js", diff --git a/packages/core/json-template-parser/src/parser/index.ts b/packages/core/json-template-parser/src/parser/index.ts index 8ed0f5e1ab..486942bdd5 100644 --- a/packages/core/json-template-parser/src/parser/index.ts +++ b/packages/core/json-template-parser/src/parser/index.ts @@ -8,4 +8,4 @@ */ export { parse } from './parse'; -export { createJSONTemplateParser } from './json-template-parser'; +export { createJSONTemplateParser, JSONTemplateParser } from './json-template-parser'; diff --git a/packages/core/json-template-parser/src/parser/json-template-parser.ts b/packages/core/json-template-parser/src/parser/json-template-parser.ts index bae7f64545..c4da1a2410 100644 --- a/packages/core/json-template-parser/src/parser/json-template-parser.ts +++ b/packages/core/json-template-parser/src/parser/json-template-parser.ts @@ -23,7 +23,7 @@ type Filter = { uiSchema: any; }; -class JSONTemplateParser { +export class JSONTemplateParser { engine: Liquid; private _filterGroups: Array; private _filters: Array; diff --git a/packages/core/server/package.json b/packages/core/server/package.json index 3f229ac23e..25ab42c7df 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -17,6 +17,7 @@ "@nocobase/data-source-manager": "1.6.0-alpha.28", "@nocobase/database": "1.6.0-alpha.28", "@nocobase/evaluators": "1.6.0-alpha.28", + "@nocobase/json-template-parser": "1.6.0-alpha.28", "@nocobase/lock-manager": "1.6.0-alpha.28", "@nocobase/logger": "1.6.0-alpha.28", "@nocobase/resourcer": "1.6.0-alpha.28", diff --git a/packages/core/server/src/application.ts b/packages/core/server/src/application.ts index 09b520f3d3..7f8018fde8 100644 --- a/packages/core/server/src/application.ts +++ b/packages/core/server/src/application.ts @@ -34,7 +34,7 @@ import { ToposortOptions, wrapMiddlewareWithLogging, } from '@nocobase/utils'; - +import { createJSONTemplateParser, JSONTemplateParser } from '@nocobase/json-template-parser'; import { Command, CommandOptions, ParseOptions } from 'commander'; import { randomUUID } from 'crypto'; import glob from 'glob'; @@ -250,7 +250,7 @@ export class Application exten public container = new ServiceContainer(); public lockManager: LockManager; - + public jsonTemplateParser: JSONTemplateParser; constructor(public options: ApplicationOptions) { super(); this.context.reqId = randomUUID(); @@ -260,6 +260,8 @@ export class Application exten if (!options.skipSupervisor) { this._appSupervisor.addApp(this); } + + this.jsonTemplateParser = createJSONTemplateParser(); } private static staticCommands = []; diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 45b70fbd29..c9b22b3bb3 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -6,7 +6,7 @@ "license": "AGPL-3.0", "dependencies": { "@budibase/handlebars-helpers": "^0.14.0", - "@nocobase/json-templates": "1.6.0-alpha.28", + "@nocobase/json-template-parser": "1.6.0-alpha.28", "@hapi/topo": "^6.0.0", "@rc-component/mini-decimal": "^1.1.0", "dayjs": "^1.11.9",