mirror of https://gitee.com/antv-l7/antv-l7
build: upgrade TS, babel plugin and to support optional chaining
This commit is contained in:
parent
b61be25c30
commit
5fc540f8fd
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
}
|
|
@ -22,6 +22,7 @@ module.exports = (api) => {
|
|||
'@babel/preset-typescript',
|
||||
],
|
||||
plugins: [
|
||||
'@babel/plugin-proposal-optional-chaining',
|
||||
[
|
||||
'@babel/plugin-proposal-decorators',
|
||||
{
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"devDependencies": {
|
||||
"@babel/cli": "^7.5.5",
|
||||
"@babel/core": "^7.5.5",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.6.0",
|
||||
"@babel/preset-env": "^7.5.5",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
"@babel/preset-typescript": "^7.3.3",
|
||||
|
@ -49,7 +50,7 @@
|
|||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^7.0.18",
|
||||
"postcss-plugin": "^1.0.0",
|
||||
"prettier": "^1.14.2",
|
||||
"prettier": "^1.18.2",
|
||||
"raw-loader": "^1.0.0",
|
||||
"react": "^16.8.6",
|
||||
"react-docgen-typescript-loader": "^3.1.0",
|
||||
|
@ -68,7 +69,7 @@
|
|||
"tslint-config-prettier": "^1.15.0",
|
||||
"tslint-plugin-prettier": "^1.3.0",
|
||||
"tslint-react": "^3.6.0",
|
||||
"typescript": "^3.6.2",
|
||||
"typescript": "^3.7.0-beta",
|
||||
"webpack": "^4.17.1",
|
||||
"webpack-cli": "^3.1.0",
|
||||
"webpack-dev-server": "^3.1.7",
|
||||
|
|
|
@ -53,9 +53,9 @@ export default class StyleAttribute implements IStyleAttribute {
|
|||
/**
|
||||
* 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值
|
||||
*/
|
||||
if (this!.scale!.callback) {
|
||||
if (this.scale?.callback) {
|
||||
// 使用用户返回的值处理
|
||||
const ret = this!.scale!.callback(params);
|
||||
const ret = this.scale?.callback(params);
|
||||
if (!isNil(ret)) {
|
||||
return [ret];
|
||||
}
|
||||
|
@ -68,10 +68,10 @@ export default class StyleAttribute implements IStyleAttribute {
|
|||
private defaultCallback = (params: unknown[]): unknown[] => {
|
||||
// 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量
|
||||
if (params.length === 0) {
|
||||
return this!.scale!.values;
|
||||
return this.scale?.values || [];
|
||||
}
|
||||
return params.map((param, idx) => {
|
||||
const scaleFunc = this.scale!.scalers![idx].func;
|
||||
const scaleFunc = this.scale?.scalers![idx].func;
|
||||
// @ts-ignore
|
||||
const value = scaleFunc(param);
|
||||
return value;
|
||||
|
|
|
@ -148,7 +148,7 @@ export default class PixelPickingPass implements IPass {
|
|||
) {
|
||||
this.logger.info('picked');
|
||||
const pickedFeatureIdx = decodePickingColor(pickedColors);
|
||||
const rawFeature = this.layer.getSource()!.data!.dataArray[
|
||||
const rawFeature = this.layer.getSource()?.data?.dataArray[
|
||||
pickedFeatureIdx
|
||||
];
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ export default class BaseLayer<ChildLayerStyleOptions = {}> implements ILayer {
|
|||
};
|
||||
return this;
|
||||
}
|
||||
public style(options: unknown): ILayer {
|
||||
public style(options: object): ILayer {
|
||||
// @ts-ignore
|
||||
this.styleOptions = {
|
||||
...this.styleOptions,
|
||||
|
|
|
@ -84,7 +84,7 @@ export default class DataMappingPlugin implements ILayerPlugin {
|
|||
return [];
|
||||
}
|
||||
|
||||
const scalers = attribute!.scale!.scalers || [];
|
||||
const scalers = attribute?.scale?.scalers || [];
|
||||
const params: unknown[] = [];
|
||||
|
||||
scalers.forEach(({ field }) => {
|
||||
|
|
|
@ -71,8 +71,8 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
|||
this.scaleCache = {};
|
||||
attributes.forEach((attribute) => {
|
||||
if (attribute.scale) {
|
||||
attribute!.scale!.scalers = this.parseFields(
|
||||
attribute!.scale!.field || '',
|
||||
attribute.scale.scalers = this.parseFields(
|
||||
attribute.scale.field || '',
|
||||
).map((field: string) => ({
|
||||
field,
|
||||
func: this.getOrCreateScale(field, attribute, dataArray),
|
||||
|
@ -93,7 +93,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
|||
this.scaleCache[field] = this.createScale(field, dataArray);
|
||||
(this.scaleCache[field] as {
|
||||
range: (c: unknown[]) => void;
|
||||
}).range(attribute!.scale!.values);
|
||||
}).range(attribute?.scale?.values || []);
|
||||
return this.scaleCache[field];
|
||||
}
|
||||
|
||||
|
@ -114,7 +114,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
|||
|
||||
private createScale(field: string, data?: IParseDataItem[]): unknown {
|
||||
// 首先查找全局默认配置例如 color
|
||||
const scaleOption: IScale = this.configService.getConfig()!.scales![field];
|
||||
const scaleOption: IScale | undefined = this.configService.getConfig()?.scales?.[field];
|
||||
|
||||
if (!data || !data.length) {
|
||||
// 数据为空
|
||||
|
@ -122,7 +122,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
|||
? this.createDefaultScale(scaleOption)
|
||||
: d3.scaleOrdinal([field]);
|
||||
}
|
||||
const firstValue = data!.find((d) => !isNil(d[field]))![field];
|
||||
const firstValue = data.find((d) => !isNil(d[field]))?.[field];
|
||||
// 常量 Scale
|
||||
if (isNumber(field) || (isNil(firstValue) && !scaleOption)) {
|
||||
return d3.scaleOrdinal([field]);
|
||||
|
@ -152,7 +152,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
|||
const cfg: IScale = {
|
||||
type,
|
||||
};
|
||||
const values = data!.map((item) => item[field]);
|
||||
const values = data?.map((item) => item[field]) || [];
|
||||
// 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales
|
||||
if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) {
|
||||
cfg.domain = extent(values);
|
||||
|
|
|
@ -29,8 +29,6 @@ mapboxgl.accessToken =
|
|||
'pk.eyJ1IjoieGlhb2l2ZXIiLCJhIjoiY2pxcmc5OGNkMDY3cjQzbG42cXk5NTl3YiJ9.hUC5Chlqzzh0FFd_aEc-uQ';
|
||||
const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12;
|
||||
|
||||
let counter = 1;
|
||||
|
||||
/**
|
||||
* AMapService
|
||||
*/
|
||||
|
@ -166,7 +164,6 @@ export default class MapboxService implements IMapService {
|
|||
public async init(mapConfig: IMapConfig): Promise<void> {
|
||||
const { id, attributionControl = false, ...rest } = mapConfig;
|
||||
this.$mapContainer = document.getElementById(id);
|
||||
this.$mapContainer!.classList.add(`${counter++}`);
|
||||
|
||||
this.viewport = new Viewport();
|
||||
|
||||
|
|
25
yarn.lock
25
yarn.lock
|
@ -313,6 +313,14 @@
|
|||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
|
||||
|
||||
"@babel/plugin-proposal-optional-chaining@^7.6.0":
|
||||
version "7.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz#e9bf1f9b9ba10c77c033082da75f068389041af8"
|
||||
integrity sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
"@babel/plugin-syntax-optional-chaining" "^7.2.0"
|
||||
|
||||
"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
||||
version "7.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
|
||||
|
@ -378,6 +386,13 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
|
||||
"@babel/plugin-syntax-optional-chaining@^7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff"
|
||||
integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
|
||||
"@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.3.3":
|
||||
version "7.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991"
|
||||
|
@ -11815,7 +11830,7 @@ prepend-http@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
|
||||
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
|
||||
|
||||
prettier@^1.14.2, prettier@^1.16.4:
|
||||
prettier@^1.16.4, prettier@^1.18.2:
|
||||
version "1.18.2"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
|
||||
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
|
||||
|
@ -14755,10 +14770,10 @@ typedarray@^0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^3.6.2:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54"
|
||||
integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==
|
||||
typescript@^3.7.0-beta:
|
||||
version "3.7.0-beta"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.0-beta.tgz#4ad556e0eee14b90ecc39261001690e16e5eeba9"
|
||||
integrity sha512-4jyCX+IQamrPJxgkABPq9xf+hUN+GWHVxoj+oey1TadCPa4snQl1RKwUba+1dyzYCamwlCxKvZQ3TjyWLhMGBA==
|
||||
|
||||
ua-parser-js@^0.7.18:
|
||||
version "0.7.20"
|
||||
|
|
Loading…
Reference in New Issue