UNPKG

@vuemap/amap-jsapi-loader

Version:

高德官网提供的地图JSAPI加载器,可以避免多种异步加载API的错误用法

1 lines 21.4 kB
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["enum LoadStatus {\n notload = \"notload\",\n loading = \"loading\",\n loaded = \"loaded\",\n failed = \"failed\",\n}\nlet config = {\n key: \"\",\n AMap: {\n version: \"1.4.15\",\n plugins: [],\n },\n AMapUI: {\n version: \"1.1\",\n plugins: [],\n },\n Loca: {\n version: \"1.3.2\",\n },\n} as any;\n\nlet Status = {\n AMap: LoadStatus.notload,\n AMapUI: LoadStatus.notload,\n Loca: LoadStatus.notload,\n};\nlet Callback: {\n AMap: any[],\n AMapUI: any[],\n Loca: any[]\n} = {\n AMap: [],\n AMapUI: [],\n Loca: [],\n};\n\nlet onloadCBKs: any[] = [];\nconst onload = function (callback) {\n if (typeof callback == \"function\") {\n if (Status.AMap === LoadStatus.loaded) {\n callback(window.AMap);\n return;\n }\n onloadCBKs.push(callback);\n }\n};\n\ninterface LoadOption {\n key: string;\n version?: string;\n plugins?: string[];\n AMapUI?: {\n version?: string;\n plugins?: string[];\n };\n Loca?: {\n version?: string;\n };\n}\nfunction appendOther(option: LoadOption): Promise<any> {\n let pros: Promise<void>[] = [];\n if (option.AMapUI) {\n pros.push(loadAMapUI(option.AMapUI));\n }\n if (option.Loca) {\n pros.push(loadLoca(option.Loca));\n }\n return Promise.all(pros);\n}\nfunction loadAMapUI(params: { version?: string; plugins?: string[] }): Promise<void> {\n return new Promise((res, rej) => {\n const newPlugins: string[] = [];\n if (params.plugins) {\n for (let i = 0; i < params.plugins.length; i += 1) {\n if (config.AMapUI.plugins.indexOf(params.plugins[i]) == -1) {\n newPlugins.push(params.plugins[i]);\n }\n }\n }\n if (Status.AMapUI === LoadStatus.failed) {\n rej(\"前次请求 AMapUI 失败\");\n } else if (Status.AMapUI === LoadStatus.notload) {\n Status.AMapUI = LoadStatus.loading;\n config.AMapUI.version = params.version || config.AMapUI.version;\n const version = config.AMapUI.version;\n const parentNode = document.body || document.head;\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = `https://webapi.amap.com/ui/${version}/main.js`;\n\n script.onerror = (e) => {\n Status.AMapUI = LoadStatus.failed;\n rej(\"请求 AMapUI 失败\");\n };\n script.onload = () => {\n Status.AMapUI = LoadStatus.loaded;\n if (newPlugins.length) {\n window.AMapUI.loadUI(newPlugins, function () {\n for (let i = 0, len = newPlugins.length; i < len; i++) {\n const path = newPlugins[i];\n const name = path.split(\"/\").slice(-1)[0];\n window.AMapUI[name] = arguments[i];\n }\n res();\n while (Callback.AMapUI.length) {\n Callback.AMapUI.splice(0, 1)[0]();\n }\n });\n } else {\n res();\n while (Callback.AMapUI.length) {\n Callback.AMapUI.splice(0, 1)[0]();\n }\n }\n };\n parentNode.appendChild(script);\n } else if (Status.AMapUI === LoadStatus.loaded) {\n if (params.version && params.version !== config.AMapUI.version) {\n rej(\"不允许多个版本 AMapUI 混用\");\n } else {\n if (newPlugins.length) {\n window.AMapUI.loadUI(newPlugins, function () {\n for (let i = 0, len = newPlugins.length; i < len; i++) {\n const path = newPlugins[i];\n const name = path.split(\"/\").slice(-1)[0];\n window.AMapUI[name] = arguments[i];\n }\n res();\n });\n } else {\n res();\n }\n }\n } else {\n if (params.version && params.version !== config.AMapUI.version) {\n rej(\"不允许多个版本 AMapUI 混用\");\n } else {\n Callback.AMapUI.push((err) => {\n if (err) {\n rej(err);\n } else {\n if (newPlugins.length) {\n window.AMapUI.loadUI(newPlugins, function () {\n for (let i = 0, len = newPlugins.length; i < len; i++) {\n const path = newPlugins[i];\n const name = path.split(\"/\").slice(-1)[0];\n window.AMapUI[name] = arguments[i];\n }\n res();\n });\n } else {\n res();\n }\n }\n });\n }\n }\n });\n}\n\nfunction loadLoca(params: { version?: string }): Promise<void> {\n return new Promise((res, rej) => {\n if (Status.Loca === LoadStatus.failed) {\n rej(\"前次请求 Loca 失败\");\n } else if (Status.Loca === LoadStatus.notload) {\n Status.Loca = LoadStatus.loading;\n config.Loca.version = params.version || config.Loca.version;\n const version = config.Loca.version;\n const isApiV2 = config.AMap.version.startsWith(\"2\");\n const isLocaV2 = version.startsWith(\"2\");\n if ((isApiV2 && !isLocaV2) || (!isApiV2 && isLocaV2)) {\n rej(\"JSAPI 与 Loca 版本不对应!!\");\n return;\n }\n const key = config.key;\n const parentNode = document.body || document.head;\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = `https://webapi.amap.com/loca?v=${version}&key=${key}`;\n\n script.onerror = (e) => {\n Status.Loca = LoadStatus.failed;\n rej(\"请求 AMapUI 失败\");\n };\n script.onload = () => {\n Status.Loca = LoadStatus.loaded;\n res();\n while (Callback.Loca.length) {\n Callback.Loca.splice(0, 1)[0]();\n }\n };\n parentNode.appendChild(script);\n } else if (Status.Loca === LoadStatus.loaded) {\n if (params.version && params.version !== config.Loca.version) {\n rej(\"不允许多个版本 Loca 混用\");\n } else {\n res();\n }\n } else {\n if (params.version && params.version !== config.Loca.version) {\n rej(\"不允许多个版本 Loca 混用\");\n } else {\n Callback.Loca.push((err) => {\n if (err) {\n rej(err);\n } else {\n rej();\n }\n });\n }\n }\n });\n}\n\nconst load = function (options: LoadOption) {\n if (typeof window === 'undefined') {\n throw Error(\"AMap JSAPI can only be used in Browser.\");\n }\n return new Promise((resolve, reject) => {\n if (Status.AMap == LoadStatus.failed) {\n reject(\"\");\n } else if (Status.AMap == LoadStatus.notload) {\n //初次加载\n let { key, version, plugins } = options;\n if (!key) {\n reject(\"请填写key\");\n return;\n }\n if (window.AMap && location.host !== \"lbs.amap.com\") {\n reject(\"禁止多种API加载方式混用\");\n }\n config.key = key;\n config.AMap.version = version || config.AMap.version;\n config.AMap.plugins = plugins || config.AMap.plugins;\n Status.AMap = LoadStatus.loading;\n\n const parentNode = document.body || document.head;\n\n window.___onAPILoaded = function (err) {\n delete window.___onAPILoaded;\n if (err) {\n Status.AMap = LoadStatus.failed;\n reject(err);\n } else {\n Status.AMap = LoadStatus.loaded;\n appendOther(options)\n .then(() => {\n resolve(window.AMap);\n })\n .catch(reject);\n while (onloadCBKs.length) {\n onloadCBKs.splice(0, 1)[0]();\n }\n }\n };\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n\n script.src =\n \"https://webapi.amap.com/maps?callback=___onAPILoaded&v=\" +\n config.AMap.version +\n \"&key=\" +\n key +\n \"&plugin=\" +\n config.AMap.plugins.join(\",\");\n script.onerror = (e) => {\n Status.AMap = LoadStatus.failed;\n reject(e);\n };\n parentNode.appendChild(script);\n } else if (Status.AMap == LoadStatus.loaded) {\n //deal multi load\n if (options.key && options.key !== config.key) {\n reject(\"多个不一致的 key\");\n return;\n }\n if (options.version && options.version !== config.AMap.version) {\n reject(\"不允许多个版本 JSAPI 混用\");\n return;\n }\n const newPlugins: any[] = [];\n if (options.plugins) {\n for (var i = 0; i < options.plugins.length; i += 1) {\n if (config.AMap.plugins.indexOf(options.plugins[i]) == -1) {\n newPlugins.push(options.plugins[i]);\n }\n }\n }\n if (newPlugins.length) {\n window.AMap.plugin(newPlugins, () => {\n appendOther(options)\n .then(() => {\n resolve(window.AMap);\n })\n .catch(reject);\n });\n } else {\n appendOther(options)\n .then(() => {\n resolve(window.AMap);\n })\n .catch(reject);\n }\n } else {\n // loading\n if (options.key && options.key !== config.key) {\n reject(\"多个不一致的 key\");\n return;\n }\n if (options.version && options.version !== config.AMap.version) {\n reject(\"不允许多个版本 JSAPI 混用\");\n return;\n }\n const newPlugins: any[] = [];\n if (options.plugins) {\n for (var i = 0; i < options.plugins.length; i += 1) {\n if (config.AMap.plugins.indexOf(options.plugins[i]) == -1) {\n newPlugins.push(options.plugins[i]);\n }\n }\n }\n onload(() => {\n if (newPlugins.length) {\n window.AMap.plugin(newPlugins, () => {\n appendOther(options)\n .then(() => {\n resolve(window.AMap);\n })\n .catch(reject);\n });\n } else {\n appendOther(options)\n .then(() => {\n resolve(window.AMap);\n })\n .catch(reject);\n }\n });\n }\n });\n};\nfunction reset() {\n delete window.AMap;\n delete window.AMapUI;\n delete window.Loca;\n config = {\n key: \"\",\n AMap: {\n version: \"1.4.15\",\n plugins: [],\n },\n AMapUI: {\n version: \"1.1\",\n plugins: [],\n },\n Loca: {\n version: \"1.3.2\",\n },\n };\n Status = {\n AMap: LoadStatus.notload,\n AMapUI: LoadStatus.notload,\n Loca: LoadStatus.notload,\n };\n Callback = {\n AMap: [],\n AMapUI: [],\n Loca: [],\n };\n}\nexport default { load, reset };\n"],"names":["LoadStatus","config","key","AMap","version","plugins","AMapUI","Loca","Status","notload","Callback","onloadCBKs","callback","loaded","window","push","appendOther","option","pros","loadAMapUI","loadLoca","Promise","all","params","res","rej","i","length","indexOf","newPlugins","failed","loading","script","type","src","onerror","e","script.onerror","onload","script.onload","loadUI","len","name","arguments","splice","parentNode","appendChild","err","isApiV2","isLocaV2","Error","resolve","reject","options","location","host","document","body","head","___onAPILoaded","window.___onAPILoaded","then","catch","createElement","join","plugin","reset","load"],"mappings":"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"}