@363045841yyt/klinechart-core 0.9.0-alpha.4 → 0.9.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -146,6 +146,24 @@ export declare function resolveSettings(partial?: Partial<ChartSettings>): Chart
146
146
  export declare function migrateStoredSettings(stored: Record<string, unknown>): Partial<ChartSettings>;
147
147
  /** localStorage 存储键名 */
148
148
  export declare const SETTINGS_STORAGE_KEY = "kline-chart-settings";
149
+ /**
150
+ * 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
151
+ *
152
+ * @param storage - 可读 Storage;省略时尝试使用全局 localStorage
153
+ */
154
+ export declare function loadStoredSettings(storage?: Pick<Storage, 'getItem'> | null | undefined): Partial<ChartSettings> | null;
155
+ /**
156
+ * 解析运行时设置的权威源。
157
+ *
158
+ * @remarks
159
+ * - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
160
+ * 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
161
+ * - 未传 settings prop 时:localStorage + 默认值
162
+ *
163
+ * @param propSettings - 组件 settings prop;undefined 表示未传
164
+ * @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
165
+ */
166
+ export declare function resolveRuntimeSettings(propSettings?: Partial<ChartSettings>, stored?: Partial<ChartSettings> | null): ChartSettings;
149
167
  import { type ColorPresetSettings } from '../tokens/colorPresetSettings';
150
168
  export {};
151
169
  //# sourceMappingURL=chartSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chartSettings.d.ts","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CA2B/D;AAED,aAAa;AACb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFnB,CAAA;AAEV,KAAK,aAAa,GAAG,OAAO,gBAAgB,CAAA;AAE5C,KAAK,aAAa,GAAG;KAClB,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,GAC1E,OAAO,GACP,IAAI,SAAS;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GACzE,CAAC,GACD,MAAM;CACb,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,CAAA;AAYH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAqB/E;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAY7F;AAED,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"chartSettings.d.ts","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CA2B/D;AAED,aAAa;AACb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFnB,CAAA;AAEV,KAAK,aAAa,GAAG,OAAO,gBAAgB,CAAA;AAE5C,KAAK,aAAa,GAAG;KAClB,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,GAC1E,OAAO,GACP,IAAI,SAAS;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GACzE,CAAC,GACD,MAAM;CACb,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,CAAA;AAYH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAqB/E;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAY7F;AAED,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAE1D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAGjC,GACT,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAS/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EACrC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GACrC,aAAa,CAKf;AAED,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAA"}
@@ -169,5 +169,42 @@ export function migrateStoredSettings(stored) {
169
169
  }
170
170
  /** localStorage 存储键名 */
171
171
  export const SETTINGS_STORAGE_KEY = 'kline-chart-settings';
172
+ /**
173
+ * 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
174
+ *
175
+ * @param storage - 可读 Storage;省略时尝试使用全局 localStorage
176
+ */
177
+ export function loadStoredSettings(storage = typeof globalThis !== 'undefined' && 'localStorage' in globalThis
178
+ ? globalThis.localStorage
179
+ : null) {
180
+ if (!storage)
181
+ return null;
182
+ try {
183
+ const saved = storage.getItem(SETTINGS_STORAGE_KEY);
184
+ if (!saved)
185
+ return null;
186
+ return migrateStoredSettings(JSON.parse(saved));
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
192
+ /**
193
+ * 解析运行时设置的权威源。
194
+ *
195
+ * @remarks
196
+ * - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
197
+ * 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
198
+ * - 未传 settings prop 时:localStorage + 默认值
199
+ *
200
+ * @param propSettings - 组件 settings prop;undefined 表示未传
201
+ * @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
202
+ */
203
+ export function resolveRuntimeSettings(propSettings, stored) {
204
+ if (propSettings !== undefined) {
205
+ return resolveSettings(propSettings);
206
+ }
207
+ return resolveSettings(stored ?? loadStoredSettings() ?? undefined);
208
+ }
172
209
  import { normalizeColorPresetSettings, } from '../tokens/colorPresetSettings';
173
210
  //# sourceMappingURL=chartSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chartSettings.js","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chartSettings.js","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0-alpha.4";
1
+ export declare const VERSION = "0.9.0-alpha.6";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.9.0-alpha.4';
1
+ export const VERSION = '0.9.0-alpha.6';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@363045841yyt/klinechart-core",
3
- "version": "0.9.0-alpha.4",
3
+ "version": "0.9.0-alpha.6",
4
4
  "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,8 +14,8 @@
14
14
  "./dist/engine/indicators/registerBuiltins.js",
15
15
  "./dist/engine/renderers/Indicator/*.js",
16
16
  "./dist/engine/renderers/subVolume.js",
17
- "./src/data-fetchers/*.ts",
18
- "./dist/data-fetchers/*.js"
17
+ "./src/data/*.ts",
18
+ "./dist/data/*.js"
19
19
  ],
20
20
  "main": "./dist/index.js",
21
21
  "module": "./dist/index.js",
@@ -136,4 +136,4 @@
136
136
  "dependencies": {
137
137
  "effect": "^3.21.4"
138
138
  }
139
- }
139
+ }
@@ -1,6 +1,12 @@
1
1
  import { describe, expect, it } from 'vitest'
2
2
 
3
- import { migrateStoredSettings, resolveSettings } from '../chartSettings'
3
+ import {
4
+ loadStoredSettings,
5
+ migrateStoredSettings,
6
+ resolveRuntimeSettings,
7
+ resolveSettings,
8
+ SETTINGS_STORAGE_KEY,
9
+ } from '../chartSettings'
4
10
 
5
11
  describe('chart renderer settings', () => {
6
12
  it('defaults to WebGL', () => {
@@ -23,3 +29,64 @@ describe('chart renderer settings', () => {
23
29
  ).toEqual({ rendererBackend: 'webgpu' })
24
30
  })
25
31
  })
32
+
33
+ describe('resolveRuntimeSettings', () => {
34
+ it('uses prop as sole authority and drops stored ghost fields', () => {
35
+ const stored = {
36
+ showGridLines: false,
37
+ colorPresetSettings: {
38
+ dark: { candleUpBody: '#e85d04' },
39
+ },
40
+ }
41
+ const resolved = resolveRuntimeSettings(
42
+ { showGridLines: true, theme: 'dark' },
43
+ stored,
44
+ )
45
+ expect(resolved.showGridLines).toBe(true)
46
+ expect(resolved.theme).toBe('dark')
47
+ expect(resolved.colorPresetSettings).toEqual({})
48
+ })
49
+
50
+ it('treats empty prop object as authority over stored', () => {
51
+ const resolved = resolveRuntimeSettings(
52
+ {},
53
+ { colorPresetSettings: { dark: { candleUpBody: '#e85d04' } } },
54
+ )
55
+ expect(resolved.colorPresetSettings).toEqual({})
56
+ })
57
+
58
+ it('falls back to stored when prop is omitted', () => {
59
+ const resolved = resolveRuntimeSettings(undefined, {
60
+ showGridLines: false,
61
+ colorPresetSettings: { dark: { candleUpBody: '#e85d04' } },
62
+ })
63
+ expect(resolved.showGridLines).toBe(false)
64
+ expect(resolved.colorPresetSettings).toEqual({
65
+ dark: { candleUpBody: '#e85d04' },
66
+ })
67
+ })
68
+ })
69
+
70
+ describe('loadStoredSettings', () => {
71
+ it('returns null when storage is empty or missing', () => {
72
+ expect(loadStoredSettings(null)).toBeNull()
73
+ expect(
74
+ loadStoredSettings({
75
+ getItem: () => null,
76
+ }),
77
+ ).toBeNull()
78
+ })
79
+
80
+ it('migrates persisted JSON', () => {
81
+ const storage = {
82
+ getItem: (key: string) =>
83
+ key === SETTINGS_STORAGE_KEY
84
+ ? JSON.stringify({ enableWebGLRendering: true, showGridLines: false })
85
+ : null,
86
+ }
87
+ expect(loadStoredSettings(storage)).toEqual({
88
+ rendererBackend: 'webgl',
89
+ showGridLines: false,
90
+ })
91
+ })
92
+ })
@@ -203,6 +203,49 @@ export function migrateStoredSettings(stored: Record<string, unknown>): Partial<
203
203
 
204
204
  /** localStorage 存储键名 */
205
205
  export const SETTINGS_STORAGE_KEY = 'kline-chart-settings'
206
+
207
+ /**
208
+ * 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
209
+ *
210
+ * @param storage - 可读 Storage;省略时尝试使用全局 localStorage
211
+ */
212
+ export function loadStoredSettings(
213
+ storage: Pick<Storage, 'getItem'> | null | undefined =
214
+ typeof globalThis !== 'undefined' && 'localStorage' in globalThis
215
+ ? globalThis.localStorage
216
+ : null,
217
+ ): Partial<ChartSettings> | null {
218
+ if (!storage) return null
219
+ try {
220
+ const saved = storage.getItem(SETTINGS_STORAGE_KEY)
221
+ if (!saved) return null
222
+ return migrateStoredSettings(JSON.parse(saved) as Record<string, unknown>)
223
+ } catch {
224
+ return null
225
+ }
226
+ }
227
+
228
+ /**
229
+ * 解析运行时设置的权威源。
230
+ *
231
+ * @remarks
232
+ * - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
233
+ * 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
234
+ * - 未传 settings prop 时:localStorage + 默认值
235
+ *
236
+ * @param propSettings - 组件 settings prop;undefined 表示未传
237
+ * @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
238
+ */
239
+ export function resolveRuntimeSettings(
240
+ propSettings?: Partial<ChartSettings>,
241
+ stored?: Partial<ChartSettings> | null,
242
+ ): ChartSettings {
243
+ if (propSettings !== undefined) {
244
+ return resolveSettings(propSettings)
245
+ }
246
+ return resolveSettings(stored ?? loadStoredSettings() ?? undefined)
247
+ }
248
+
206
249
  import {
207
250
  type ColorPresetSettings,
208
251
  normalizeColorPresetSettings,
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.9.0-alpha.4'
1
+ export const VERSION = '0.9.0-alpha.6'