Skip to content

Commit 1f8502d

Browse files
committed
refactor: 合并 master 至 consolidate-packages,调和 source 重构冲突
master 的 @antv/l7-source 渐进式重构(#2882)与本分支搬运(source→layers)冲突,逐类解决: - layers/src/source 与 __tests__/source 完整采用 master 新结构 (tile-source/、parser/ndi.ts、base-source.ts、create-source.ts 等) - relative-coordinates 已由 master 上移至 @antv/l7-utils,保留 utils 版本 - maps 底图迁移:采用 master 的 BaseMap/MapboxBaseMap 新结构, @antv/l7-map 引用改 ../mapbase(map 包已并入 maps/src/mapbase) - BaseLayer: @antv/l7-source → ../source,保留 master 的 processRelativeCoordinates - 删除被合并包(source/component/map/renderer)残留,版本号同步 master 2.30.0-beta.0 - l7/layers/scene 顶部元数据冲突取 master 版本号;test-utils 保留 peerDependencies - __tests__/source 测试相对路径同步调整(../src → ../../src/source) 构建验证:layers(271) / maps(88) / scene(66) / l7(UMD 1.4M < 1.7Mb) 全部通过
2 parents e3c0230 + a86f5c8 commit 1f8502d

133 files changed

Lines changed: 7195 additions & 1533 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
'@antv/l7-maps': patch
3+
---
4+
5+
fix(maps): 补全 BMap/TMap SDK 类型声明,修复 father dts 生成失败
6+
7+
PR #2878 将 bmap/tmap 迁移到 BaseMap 后,maps 包全量 build 在
8+
father 的 declaration 生成阶段中断 (exit 1),阻塞 fixed group
9+
整体发布。根因是第三方 SDK 类型缺失运行时存在、但 .d.ts 未声明的
10+
成员:
11+
12+
- @types/bmapgl 的 BMapGL.Map 未声明 on/off/getMinZoom/getMaxZoom
13+
(bmap/map.ts 直接 this.map.on(...)/getMinZoom() 调用报 TS2339/2551)
14+
- @map-component/tmap-types 的 TMap.Map 未声明 getContainer/panBy
15+
(tmap/map.ts 7 处 getContainer + panBy 报 TS2339,连带
16+
addEventListener 回调 e 隐式 any)
17+
18+
修法 (补类型声明,非 as any 投机转换):
19+
20+
- 新增 packages/maps/map-sdk-augmentation.d.ts (ambient,与现有
21+
style.d.ts 同级,tsconfig 默认 include 覆盖):
22+
通过 namespace 接口合并为 BMapGL.Map 补 on/off/getMinZoom/
23+
getMaxZoom,为 TMap.Map 补 getContainer()/panBy([x,y])。
24+
无运行时代码,仅声明增强。
25+
- bmap/map.ts: 补 public version: string = BMAP_VERSION 声明
26+
(对齐 maplibre/map.ts、map/map.ts 惯例;此前只赋值未声明)
27+
- bmap/tmap map.ts: handleCameraChanged 中
28+
this.cameraChangedCallback(...) 改 ?. 可选调用,与 BaseMap
29+
updateView 一致 (cameraChangedCallback 为可选属性)
30+
31+
验证: pnpm --filter @antv/l7-maps build 0 error (48 files),
32+
pnpm 全量 build 通过 (fixed group 解除阻塞),eslint 0 error。
33+
无运行时行为变更。
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
'@antv/l7-test-utils': patch
3+
---
4+
5+
fix(test-utils): 移除冗余 peerDependencies,修复 changeset 版本计算误判 major
6+
7+
@antv/l7-test-utils 同时在 dependencies 与 peerDependencies 声明了
8+
@antv/l7-map / @antv/l7-maps / @antv/l7-scene (workspace:^)。
9+
peerDependencies 对内部兄弟包是语义错误 (test-utils 是开发工具,
10+
不应让消费者"提供"这些包), 且触发 changesets 的 peer-dependent
11+
major bump:
12+
13+
- changesets 默认 onlyUpdatePeerDependentsWhenOutOfRange=false,
14+
任一 peer (l7-maps/l7-scene) 获 non-patch (minor) release 时,
15+
强制将 test-utils 提升为 major
16+
- fixed group ["@antv/l7","@antv/l7-*"] 随之把全组 (含 l7-source)
17+
拉到 major → 2.30.0-beta.0 被错误算成 3.0.0-beta.0
18+
19+
这阻塞了 source 重构 beta 发布 (5 minor + 14 patch changeset 却
20+
算出 major)。
21+
22+
修法: 删除 peerDependencies (三包已在 dependencies, 行为等价且
23+
更正确)。已用 @changesets/get-release-plan 验证: 移除后全组正确
24+
算为 minor → 2.30.0-beta.0, 0 major。
25+
26+
无运行时行为变更 (依赖关系不变, 仅声明位置纠正)。

.changeset/pre.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"mode": "pre",
3+
"tag": "beta",
4+
"initialVersions": {
5+
"@antv/l7-component": "2.29.1",
6+
"@antv/l7-core": "2.29.1",
7+
"@antv/l7": "2.29.1",
8+
"@antv/l7-layers": "2.29.1",
9+
"@antv/l7-map": "2.29.1",
10+
"@antv/l7-maps": "2.29.1",
11+
"@antv/l7-renderer": "2.29.1",
12+
"@antv/l7-scene": "2.29.1",
13+
"@antv/l7-source": "2.29.1",
14+
"@antv/l7-test-utils": "2.29.1",
15+
"@antv/l7-three": "2.29.1",
16+
"@antv/l7-utils": "2.29.1",
17+
"@antv/l7-site": "2.21.4"
18+
},
19+
"changesets": [
20+
"fix-maps-bmap-tmap-types",
21+
"fix-test-utils-redundant-peerdeps",
22+
"refactor-source-01",
23+
"refactor-source-02",
24+
"refactor-source-03",
25+
"refactor-source-04",
26+
"refactor-source-06",
27+
"refactor-source-07",
28+
"refactor-source-08",
29+
"refactor-source-09",
30+
"refactor-source-10",
31+
"refactor-source-11",
32+
"refactor-source-12",
33+
"refactor-source-13",
34+
"refactor-source-14",
35+
"refactor-source-15",
36+
"refactor-source-16",
37+
"refactor-source-17",
38+
"refactor-source-18",
39+
"refactor-source-19"
40+
]
41+
}

.changeset/refactor-source-01.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): dedupe interface types with @antv/l7-core via re-export
6+
7+
将 source/interface.ts 中与 @antv/l7-core 重复的 7 个类型改为 re-export,
8+
单一来源收敛到 core。纯 type-only 变更,运行时无影响。
9+
10+
- 重复类型:DataType / IDictionary / IFeatureKey / IJsonData / IJsonItem /
11+
IParseDataItem / IParserData
12+
- 保留 source 专有类型原地定义(栅格波段运算、瓦片数据源等)
13+
- IRasterCfg 因 core 版本不完整暂保留,后续统一
14+
15+
详见 docs/refactoring/source/PROGRESS.md 阶段 0.1。

.changeset/refactor-source-02.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): fix misspellings in private members (stage 0.2)
6+
7+
私有方法/局部参数重命名,无对外 API 影响:
8+
9+
- base-source.ts: excuteParser → executeParser (private)
10+
- base-source.ts: caculClusterExtent → calcClusterExtent (private)
11+
- factory.ts: registerTransform 参数 transFunction → transformFn
12+
(改为 transformFn 而非 transformFunction,避免与已有类型别名同名遮蔽)
13+
14+
详见 docs/refactoring/source/PROGRESS.md 阶段 0.2。

.changeset/refactor-source-03.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): add strict cfg interfaces for transforms (stage 0.3)
6+
7+
为 5 个内置 transform(filter/map/join/grid/hexagon)新增严格 cfg interface,
8+
内部 narrow 到具体类型获得推导。运行时零变化,ITransform index signature
9+
保留作过渡兼容。
10+
11+
- 新增 src/transform/types.ts: StatMethod + 6 个 cfg interface
12+
- filter/map/join/grid/hexagon: 内部 const cfg = option as IXxxCfg
13+
- cluster 已用 Partial<IClusterOptions>, 未动
14+
15+
详见 docs/refactoring/source/PROGRESS.md 阶段 0.3。

.changeset/refactor-source-04.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): flatten parser/raster subdir and fix function names (stage 0.4)
6+
7+
扁平化 parser/raster 子目录 + 修正复制粘贴遗留的函数名:
8+
9+
- parser/raster/rgb.ts -> parser/rgb.ts, 函数名 rasterRgb -> rgb
10+
- parser/raster/ndi.ts -> parser/ndi.ts, 函数名 rasterRgb -> ndi
11+
- parser/rasterRgb.ts (注册名 rasterRgb) 保持不变, 功能与 rgb/ndi 各异
12+
- index.ts 更新 import 路径
13+
14+
注: 三个 raster*Rgb parser 注册名/功能均不同, 非重复代码,
15+
本次仅命名/位置整理, 运行时无影响, 27/27 单测通过。
16+
17+
详见 docs/refactoring/source/PROGRESS.md 阶段 0.4。

.changeset/refactor-source-06.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): rename source/ to tile-source/ and rename classes (stage 0.6)
6+
7+
重命名 `src/source/` 目录为 `src/tile-source/`(实为「瓦片数据源」),
8+
两个同名 `VectorSource` class 拆分为语义清晰的名字,对外 API 完全兼容:
9+
10+
- `git mv` 保留历史:
11+
- source/vector.ts -> tile-source/mvt.ts, class VectorSource -> MVTSource
12+
- source/geojsonvt.ts -> tile-source/geojsonvt.ts, class VectorSource -> GeoJSONVTTileSource
13+
- source/index.ts -> tile-source/index.ts (重写为兼容别名导出)
14+
- `git rm source/baseSource.ts`(抽象类死代码, 无继承者)
15+
- tile-source/index.ts: 导出 MVTSource / GeoJSONVTTileSource,
16+
保留 `VectorSource`@deprecated 兼容别名 (= MVTSource)
17+
- src/index.ts: export * from './tile-source/index'
18+
- 3 个 parser (mvt/geojsonvt/jsonTile) 更新 import 路径与 new 的类名
19+
20+
兼容性:
21+
22+
- layers 包 `import type { VectorSource } from '@antv/l7-source'`
23+
(packages/layers/src/tile/tile/VectorTile.ts) 经兼容别名仍可用, 零改动
24+
- VectorSource 正式移除留待阶段 7 (届时同步 layers 改用 MVTSource)
25+
26+
验证: source tsc 0 错(基线 31 不变)、layers tsc 229 pre-existing 无新增、
27+
prettier 通过、jest 27/27 通过。
28+
29+
详见 docs/refactoring/source/PROGRESS.md 阶段 0.6。

.changeset/refactor-source-07.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): extract ClusterManager delegate from base-source (stage 1.1)
6+
7+
从 base-source.ts God Class 抽出 cluster 状态机到独立 ClusterManager
8+
delegate,对外 API 完全等价(ISource 接口不动)。
9+
10+
- 新增 src/cluster-manager.ts (138 行): 封装 Supercluster 索引 +
11+
clusterOptions + init/updateData/getClusters/getClustersLeaves/calcExtent
12+
- base-source.ts (358 -> 314 行, -44):
13+
- cluster/clusterOptions 字段 -> accessor 透明转发 delegate
14+
- 删除 clusterIndex 字段,getClusters*/updateClusterData 改转发
15+
- initCluster/calcClusterExtent 删除,processData 改调
16+
clusterManager.init
17+
- destroy 改调 clusterManager.destroy
18+
19+
设计要点:
20+
21+
- 构造期 new ClusterManager 注入 extent/invalidExtent getter 闭包,
22+
delegate 不拥有 extent 状态 (留待阶段 1.4 抽 Bounds)
23+
- updateClusterData 拆成 delegate.updateData 返回 IParserData +
24+
Source 转发赋值并 executeTrans,delegate 与 transform 链解耦
25+
- 未启用 cluster 时 getClusters/updateClusterData 仍抛 TypeError
26+
(index 为 null),与原行为一致,不加额外 guard
27+
28+
兼容性: layers 包 source.cluster / source.clusterOptions.zoom /
29+
source.updateClusterData() 零改动继续可用。
30+
31+
验证: source tsc 0 错 (基线 31 不变),layers tsc 229 pre-existing
32+
无新增,eslint/prettier 通过,jest 27/27 通过 (source.spec.ts 的
33+
cluster case 覆盖 updateClusterData 路径)。
34+
35+
详见 docs/refactoring/source/PROGRESS.md 阶段 1.1。

.changeset/refactor-source-08.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
'@antv/l7-source': patch
3+
---
4+
5+
refactor(source): extract TilesetAdapter delegate from base-source (stage 1.2)
6+
7+
从 base-source.ts 抽出瓦片管理职责到独立 TilesetAdapter delegate,
8+
对外 API 完全等价(ISource 接口不动)。
9+
10+
- 新增 src/tileset-adapter.ts (88 行): 封装 TilesetManager 实例的
11+
创建/更新/销毁 + 7 个 reload/getTile 转发方法
12+
- base-source.ts (314 -> 306, -8):
13+
- tileset/isTile 字段 -> getter 转发 adapter.manager/.isTile
14+
- 删除 initTileset(), executeParser 改调 tilesetAdapter.init
15+
- 7 个 reload*/getTile* 方法实现体改为转发 adapter
16+
- destroy 改调 tilesetAdapter.destroy
17+
18+
关键设计: adapter.manager 必须 public —— layers/tile/core/BaseLayer.ts
19+
直接读 source.tileset as TilesetManager 后自由操作实例 (update/on/
20+
destroy/tiles.filter/currentTiles)。getter 转发 adapter.manager
21+
让 layers 拿到同一个 TilesetManager 实例, 行为完全等价。
22+
23+
tileset/isTile 从字段改 getter only: ISource 接口字段契约由 getter
24+
满足;Source 内部不再写 this.tileset/this.isTile (改调 adapter.init)。
25+
isTile 不主动重置, 与原 initTileset 行为一致。reloadTilebyId 沿用
26+
原小写 b 拼写避免破坏接口。
27+
28+
验证: source tsc 0 错 (基线 31 不变), layers tsc 229 pre-existing
29+
无新增, eslint/prettier 通过, source jest 27/27 通过, source+layers
30+
jest 81 passed/1 skipped/0 failed (瓦片图层运行时路径覆盖)。
31+
32+
详见 docs/refactoring/source/PROGRESS.md 阶段 1.2。

0 commit comments

Comments
 (0)