Inject
TSXinject
1import {
2 ContainerRegistryManager,
3 DeveloperConfigService,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class MyPluginService {
10 @Inject(DeveloperConfigService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private developerConfigService: DeveloperConfigService;
12}Write / remove
set သည် (key, pluginName) conflict ဖြင့် upsert လုပ်ပါသည်။ လျှို့ဝှက်ချက်များအတွက် private: true နှင့် encrypt: true ကို အသုံးပြုရပါသည်။
- set(props) — config တစ်ခု သို့မဟုတ် အများအပြားကို upsert လုပ်ပါသည်
- remove(key, pluginName) — အတန်း ဖျက်ပြီး cache ကို invalidate လုပ်ပါသည်
- authorizeDeveloper(password) — developer-config password စစ်ဆေးပါသည် (မရှိသေးလျှင် true ပြန်ပါသည်)
TSXset
1import {
2 ContainerRegistryManager,
3 DeveloperConfigService,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7import metadata from "../../module.metadata.json" with { type: "json" };
8
9@Service()
10export class PluginDevConfigService {
11 @Inject(DeveloperConfigService, ContainerRegistryManager.BUILTIN_PLUGIN)
12 private developerConfigService: DeveloperConfigService;
13
14 async enableFeatureFlag() {
15 await this.developerConfigService.set({
16 data: {
17 key: "feature.newCheckout",
18 value: true,
19 pluginName: metadata.name,
20 datatype: "boolean",
21 displayName: "New checkout",
22 private: false,
23 },
24 });
25 }
26}Read method များ
- getPublicConfigByKeyAndPlugin(pluginName, key, option?) — public config
- getPrivateConfig(pluginName, key, option?) — private; decrypt?: boolean
- getAllPublicConfigs(skip, limit) — public config စာရင်း
TSXread
1import {
2 ContainerRegistryManager,
3 DeveloperConfigService,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7import metadata from "../../module.metadata.json" with { type: "json" };
8
9@Service()
10export class PluginDevConfigService {
11 @Inject(DeveloperConfigService, ContainerRegistryManager.BUILTIN_PLUGIN)
12 private developerConfigService: DeveloperConfigService;
13
14 async isNewCheckoutEnabled() {
15 const row = await this.developerConfigService.getPublicConfigByKeyAndPlugin(
16 metadata.name,
17 "feature.newCheckout"
18 );
19 return Boolean(row?.value);
20 }
21
22 async apiSecret() {
23 return this.developerConfigService.getPrivateConfig(
24 metadata.name,
25 "integrations.apiSecret",
26 { decrypt: true }
27 );
28 }
29}