@wwawing/loader 3.13.0-unstable.based-on.3.12.10.p.3 → 3.13.0-unstable.based-on.3.12.11
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.
- package/lib/core/decompressor/index.js +6 -6
- package/lib/core/extractor/checksum.js +6 -6
- package/lib/core/extractor/index.js +30 -31
- package/lib/core/index.js +30 -81
- package/lib/core/map-data-client/BaseMapDataClient.js +3 -5
- package/lib/core/map-data-client/BrowserMapDataClient.js +32 -100
- package/lib/core/map-data-client/NodeLocalMapDataClient.js +15 -74
- package/lib/core/map-data-client/index.js +3 -3
- package/lib/core/text-loader/index.js +14 -15
- package/lib/infra/index.js +58 -66
- package/lib/infra/util.js +4 -4
- package/module/core/decompressor/index.js +6 -6
- package/module/core/extractor/checksum.js +4 -4
- package/module/core/extractor/index.js +26 -28
- package/module/core/index.js +26 -78
- package/module/core/map-data-client/BaseMapDataClient.js +3 -6
- package/module/core/map-data-client/BrowserMapDataClient.js +31 -100
- package/module/core/map-data-client/NodeLocalMapDataClient.js +13 -73
- package/module/core/text-loader/index.js +13 -15
- package/module/infra/index.js +58 -68
- package/module/infra/util.js +4 -4
- package/package.json +4 -4
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.decompressMapData = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const MEM_BLOCK = 65000;
|
|
5
|
+
const EXT_LAST_PADDING = 3;
|
|
6
6
|
function decompressMapData(srcData) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
let destData = new Uint8Array(srcData.length);
|
|
8
|
+
let srcCounter, destCounter;
|
|
9
9
|
for (srcCounter = 0, destCounter = 0; srcCounter < srcData.length; srcCounter++) {
|
|
10
10
|
if (srcData[srcCounter] === 0 &&
|
|
11
11
|
srcData[srcCounter + 1] === 0 &&
|
|
@@ -14,8 +14,8 @@ function decompressMapData(srcData) {
|
|
|
14
14
|
}
|
|
15
15
|
destData[destCounter++] = srcData[srcCounter];
|
|
16
16
|
if (srcData[srcCounter] === srcData[srcCounter + 1]) {
|
|
17
|
-
|
|
18
|
-
for (
|
|
17
|
+
const maxim = srcData[srcCounter + 2];
|
|
18
|
+
for (let i = 0; i < maxim; i++) {
|
|
19
19
|
destData[destCounter++] = srcData[srcCounter];
|
|
20
20
|
}
|
|
21
21
|
srcCounter += 2;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkMapDataBroken = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const util_1 = require("../../infra/util");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
6
|
function calculateCorrectCheckSum(mapData) {
|
|
7
7
|
return mapData[constants_1.BytePosition.CHECK] + mapData[constants_1.BytePosition.CHECK + 1] * 0x100;
|
|
8
8
|
}
|
|
9
9
|
function calculateByteSum(mapData, dataLength) {
|
|
10
|
-
|
|
10
|
+
let sum = 0;
|
|
11
11
|
if (mapData[constants_1.BytePosition.VERSION] >= 29) {
|
|
12
|
-
for (
|
|
12
|
+
for (let i = 2; i < dataLength; i++) {
|
|
13
13
|
sum += (0, util_1.signedByte)(mapData[i]) * (i % 8 + 1);
|
|
14
14
|
}
|
|
15
15
|
sum = (sum % 0x10000) & 0xffff;
|
|
@@ -17,8 +17,8 @@ function calculateByteSum(mapData, dataLength) {
|
|
|
17
17
|
return sum;
|
|
18
18
|
}
|
|
19
19
|
function checkMapDataBroken(mapData, dataLength) {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const correctCheckSum = calculateCorrectCheckSum(mapData);
|
|
21
|
+
const sum = calculateByteSum(mapData, dataLength);
|
|
22
22
|
if (correctCheckSum !== sum) {
|
|
23
23
|
throw new Error("マップデータが壊れているようです。\n チェックサムの値は" +
|
|
24
24
|
correctCheckSum +
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WWADataExtractor = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const util_1 = require("../../infra/util");
|
|
5
|
+
const checksum_1 = require("./checksum");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const infra_1 = require("../../infra");
|
|
8
|
+
class WWADataExtractor {
|
|
9
|
+
constructor(byteMapData, byteMapLength, eventEmitter) {
|
|
10
10
|
this.byteMapData = byteMapData;
|
|
11
11
|
this.eventEmitter = eventEmitter;
|
|
12
12
|
(0, checksum_1.checkMapDataBroken)(byteMapData, byteMapLength);
|
|
13
13
|
this.wwaData = (0, infra_1.createDefaultWWAData)();
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
extractAllData() {
|
|
16
16
|
var mapAttrMax, objAttrMax;
|
|
17
17
|
this.wwaData.version = this.byteMapData[constants_1.BytePosition.VERSION];
|
|
18
18
|
this._extractInitialParameters();
|
|
@@ -34,8 +34,8 @@ var WWADataExtractor = (function () {
|
|
|
34
34
|
}
|
|
35
35
|
this._replaceAllRandomObjects();
|
|
36
36
|
return this.wwaData;
|
|
37
|
-
}
|
|
38
|
-
|
|
37
|
+
}
|
|
38
|
+
_convertAttributeV2toV3(partsType) {
|
|
39
39
|
var partsMax;
|
|
40
40
|
var attributeArray;
|
|
41
41
|
var localGateIndex;
|
|
@@ -84,14 +84,14 @@ var WWADataExtractor = (function () {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
87
|
+
}
|
|
88
|
+
_get1ByteNumber(index) {
|
|
89
89
|
return this.byteMapData[index];
|
|
90
|
-
}
|
|
91
|
-
|
|
90
|
+
}
|
|
91
|
+
_get2BytesNumber(index) {
|
|
92
92
|
return this.byteMapData[index] + this.byteMapData[index + 1] * 0x100;
|
|
93
|
-
}
|
|
94
|
-
|
|
93
|
+
}
|
|
94
|
+
_extractInitialParameters() {
|
|
95
95
|
if (this.wwaData.version > 29) {
|
|
96
96
|
this.wwaData.gameoverX = this._get2BytesNumber(constants_1.BytePosition.GAMEOVER_X);
|
|
97
97
|
this.wwaData.gameoverY = this._get2BytesNumber(constants_1.BytePosition.GAMEOVER_Y);
|
|
@@ -122,15 +122,15 @@ var WWADataExtractor = (function () {
|
|
|
122
122
|
this.wwaData.mapWidth = 71;
|
|
123
123
|
else if (this.wwaData.version <= 29)
|
|
124
124
|
this.wwaData.mapWidth = 101;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
}
|
|
126
|
+
_extractInitialItemData() {
|
|
127
|
+
const topIdx = this.wwaData.version > 29 ? constants_1.BytePosition.ITEMBOX_TOP : constants_1.BytePosition.OLD_ITEMBOX_TOP;
|
|
128
128
|
this.wwaData.itemBox = new Array(infra_1.WWAConsts.ITEMBOX_SIZE);
|
|
129
|
-
for (
|
|
129
|
+
for (let i = 0; i < infra_1.WWAConsts.ITEMBOX_SIZE; i++) {
|
|
130
130
|
this.wwaData.itemBox[i] = this._get1ByteNumber(topIdx + i);
|
|
131
131
|
}
|
|
132
|
-
}
|
|
133
|
-
|
|
132
|
+
}
|
|
133
|
+
_getFieldDataFromBits(partsType, partsMax) {
|
|
134
134
|
var x, y;
|
|
135
135
|
var fieldArray;
|
|
136
136
|
fieldArray = (0, util_1.new2DArray)(this.wwaData.mapWidth, this.wwaData.mapWidth);
|
|
@@ -154,8 +154,8 @@ var WWADataExtractor = (function () {
|
|
|
154
154
|
}
|
|
155
155
|
this.emitProgress(this.wwaData.mapWidth * this.wwaData.mapWidth, this.wwaData.mapWidth * this.wwaData.mapWidth, partsType === infra_1.PartsType.MAP ? infra_1.LoadStage.MAP_LOAD : infra_1.LoadStage.OBJ_LOAD);
|
|
156
156
|
return fieldArray;
|
|
157
|
-
}
|
|
158
|
-
|
|
157
|
+
}
|
|
158
|
+
_getPartsDataFromBits(partsType, partsMax, attrMax) {
|
|
159
159
|
var i, j;
|
|
160
160
|
var partsData;
|
|
161
161
|
partsData = (0, util_1.new2DArray)(partsMax, attrMax);
|
|
@@ -175,13 +175,12 @@ var WWADataExtractor = (function () {
|
|
|
175
175
|
}
|
|
176
176
|
this.emitProgress(partsMax * attrMax, partsMax * attrMax, partsType === infra_1.PartsType.MAP ? infra_1.LoadStage.MAP_ATTR : infra_1.LoadStage.OBJ_ATTR);
|
|
177
177
|
return partsData;
|
|
178
|
-
}
|
|
179
|
-
|
|
178
|
+
}
|
|
179
|
+
_replaceAllRandomObjects() {
|
|
180
180
|
this.emitProgress(this.wwaData.mapWidth * this.wwaData.mapWidth, this.wwaData.mapWidth * this.wwaData.mapWidth, infra_1.LoadStage.RAND_PARTS);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
this.eventEmitter.dispatch("progress", { current
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
}());
|
|
181
|
+
}
|
|
182
|
+
emitProgress(current, total, stage) {
|
|
183
|
+
this.eventEmitter.dispatch("progress", { current, total, stage });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
187
186
|
exports.WWADataExtractor = WWADataExtractor;
|
package/lib/core/index.js
CHANGED
|
@@ -1,47 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.WWALoader = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
4
|
+
const extractor_1 = require("./extractor");
|
|
5
|
+
const decompressor_1 = require("./decompressor");
|
|
6
|
+
const text_loader_1 = require("./text-loader");
|
|
7
|
+
const map_data_client_1 = require("./map-data-client");
|
|
8
|
+
const createMapDataClient = (fileName) => {
|
|
45
9
|
if (typeof window !== "undefined") {
|
|
46
10
|
return new map_data_client_1.BrowserMapDataClient(fileName);
|
|
47
11
|
}
|
|
@@ -49,53 +13,38 @@ var createMapDataClient = function (fileName) {
|
|
|
49
13
|
return new map_data_client_1.NodeLocalMapDataClient(fileName);
|
|
50
14
|
}
|
|
51
15
|
};
|
|
52
|
-
|
|
53
|
-
|
|
16
|
+
class WWALoader {
|
|
17
|
+
constructor(fileName, eventEmitter) {
|
|
54
18
|
this.fileName = fileName;
|
|
55
19
|
this.eventEmitter = eventEmitter;
|
|
56
20
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.eventEmitter.dispatch("mapData", wwaData);
|
|
76
|
-
return [3, 4];
|
|
77
|
-
case 3:
|
|
78
|
-
error_1 = _a.sent();
|
|
79
|
-
name_1 = error_1.name || "";
|
|
80
|
-
message = error_1.message || "";
|
|
81
|
-
this.eventEmitter.dispatch("error", { name: name_1, message: message });
|
|
82
|
-
return [3, 4];
|
|
83
|
-
case 4: return [2];
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
WWALoader.prototype.loadMapData = function (data) {
|
|
21
|
+
async requestAndLoadMapData() {
|
|
22
|
+
const client = createMapDataClient(this.fileName);
|
|
23
|
+
try {
|
|
24
|
+
const responseBuffer = await client.request();
|
|
25
|
+
if (!responseBuffer) {
|
|
26
|
+
this.eventEmitter.dispatch("error", { name: "マップデータ取得に失敗しました", message: "mapdata is empty" });
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const wwaData = this.loadMapData(responseBuffer);
|
|
30
|
+
this.eventEmitter.dispatch("mapData", wwaData);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
const name = error.name || "";
|
|
34
|
+
const message = error.message || "";
|
|
35
|
+
this.eventEmitter.dispatch("error", { name, message });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
loadMapData(data) {
|
|
89
39
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
40
|
+
const compressedByteMapData = new Uint8Array(data);
|
|
41
|
+
const { byteMapData, byteMapLength, compressedEndPosition } = (0, decompressor_1.decompressMapData)(compressedByteMapData);
|
|
42
|
+
const wwaData = new extractor_1.WWADataExtractor(byteMapData, byteMapLength, this.eventEmitter).extractAllData();
|
|
93
43
|
return new text_loader_1.TextLoader(wwaData, compressedByteMapData, compressedEndPosition, this.eventEmitter).load();
|
|
94
44
|
}
|
|
95
45
|
catch (e) {
|
|
96
46
|
throw e;
|
|
97
47
|
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
}());
|
|
48
|
+
}
|
|
49
|
+
}
|
|
101
50
|
exports.WWALoader = WWALoader;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMapDataClient = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return BaseMapDataClient;
|
|
8
|
-
}());
|
|
4
|
+
class BaseMapDataClient {
|
|
5
|
+
constructor() { }
|
|
6
|
+
}
|
|
9
7
|
exports.BaseMapDataClient = BaseMapDataClient;
|
|
@@ -1,113 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
3
|
exports.BrowserMapDataClient = void 0;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
4
|
+
const BaseMapDataClient_1 = require("./BaseMapDataClient");
|
|
5
|
+
class BrowserMapDataClient extends BaseMapDataClient_1.BaseMapDataClient {
|
|
6
|
+
constructor(uri) {
|
|
7
|
+
super();
|
|
8
|
+
this.uri = uri;
|
|
9
|
+
}
|
|
10
|
+
static async fetch(uri) {
|
|
11
|
+
try {
|
|
12
|
+
return await fetch(uri);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
throw new Error(`マップデータ 「${uri}」の読み込みに失敗しました。
|
|
16
|
+
通信環境の良いところで再度お試しください。
|
|
17
|
+
ローカルテストの場合は、ブラウザが対応していない可能性があります。`);
|
|
18
|
+
}
|
|
62
19
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var error_1;
|
|
66
|
-
return __generator(this, function (_a) {
|
|
67
|
-
switch (_a.label) {
|
|
68
|
-
case 0:
|
|
69
|
-
_a.trys.push([0, 2, , 3]);
|
|
70
|
-
return [4, fetch(uri)];
|
|
71
|
-
case 1: return [2, _a.sent()];
|
|
72
|
-
case 2:
|
|
73
|
-
error_1 = _a.sent();
|
|
74
|
-
throw new Error("\u30DE\u30C3\u30D7\u30C7\u30FC\u30BF \u300C".concat(uri, "\u300D\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\n \u901A\u4FE1\u74B0\u5883\u306E\u826F\u3044\u3068\u3053\u308D\u3067\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002\n \u30ED\u30FC\u30AB\u30EB\u30C6\u30B9\u30C8\u306E\u5834\u5408\u306F\u3001\u30D6\u30E9\u30A6\u30B6\u304C\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"));
|
|
75
|
-
case 3: return [2];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
BrowserMapDataClient.handleError = function (uri, response) {
|
|
81
|
-
var statusCodeMessage = "HTTP\u30B9\u30C6\u30FC\u30BF\u30B9\u30B3\u30FC\u30C9\u306F ".concat(response.status, " \u3067\u3059\u3002");
|
|
20
|
+
static handleError(uri, response) {
|
|
21
|
+
const statusCodeMessage = `HTTPステータスコードは ${response.status} です。`;
|
|
82
22
|
switch (response.status) {
|
|
83
23
|
case 200:
|
|
84
24
|
case 304:
|
|
85
25
|
return;
|
|
86
26
|
case 403:
|
|
87
|
-
throw new Error(
|
|
27
|
+
throw new Error(`マップデータ「${uri}」を読み取る権限がないようです。
|
|
28
|
+
管理者の方へ: マップデータのパーミッションを確認してください。
|
|
29
|
+
${statusCodeMessage}`);
|
|
88
30
|
case 404:
|
|
89
|
-
throw new Error(
|
|
31
|
+
throw new Error(`マップデータ「${uri}」が見つかりませんでした。
|
|
32
|
+
${statusCodeMessage}`);
|
|
90
33
|
default:
|
|
91
|
-
throw new Error(
|
|
34
|
+
throw new Error(`マップデータ「${uri}」の読み込みに失敗しました。
|
|
35
|
+
${statusCodeMessage}`);
|
|
92
36
|
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
response = _a.sent();
|
|
102
|
-
BrowserMapDataClient.handleError(this.uri, response);
|
|
103
|
-
return [4, response.arrayBuffer()];
|
|
104
|
-
case 2:
|
|
105
|
-
buffer = _a.sent();
|
|
106
|
-
return [2, buffer];
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
return BrowserMapDataClient;
|
|
112
|
-
}(BaseMapDataClient_1.BaseMapDataClient));
|
|
37
|
+
}
|
|
38
|
+
async request() {
|
|
39
|
+
const response = await BrowserMapDataClient.fetch(this.uri);
|
|
40
|
+
BrowserMapDataClient.handleError(this.uri, response);
|
|
41
|
+
const buffer = await response.arrayBuffer();
|
|
42
|
+
return buffer;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
113
45
|
exports.BrowserMapDataClient = BrowserMapDataClient;
|
|
@@ -1,85 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
54
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
55
4
|
};
|
|
56
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
6
|
exports.NodeLocalMapDataClient = void 0;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
_this.fileName = fileName;
|
|
65
|
-
return _this;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const BaseMapDataClient_1 = require("./BaseMapDataClient");
|
|
9
|
+
class NodeLocalMapDataClient extends BaseMapDataClient_1.BaseMapDataClient {
|
|
10
|
+
constructor(fileName) {
|
|
11
|
+
super();
|
|
12
|
+
this.fileName = fileName;
|
|
66
13
|
}
|
|
67
|
-
|
|
68
|
-
return
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
reject(error);
|
|
75
|
-
}
|
|
76
|
-
resolve(data.buffer);
|
|
77
|
-
});
|
|
78
|
-
})];
|
|
14
|
+
async request() {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
fs_1.default.readFile(this.fileName, (error, data) => {
|
|
17
|
+
if (error) {
|
|
18
|
+
reject(error);
|
|
19
|
+
}
|
|
20
|
+
resolve(data.buffer);
|
|
79
21
|
});
|
|
80
22
|
});
|
|
81
|
-
}
|
|
23
|
+
}
|
|
82
24
|
;
|
|
83
|
-
|
|
84
|
-
}(BaseMapDataClient_1.BaseMapDataClient));
|
|
25
|
+
}
|
|
85
26
|
exports.NodeLocalMapDataClient = NodeLocalMapDataClient;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NodeLocalMapDataClient = exports.BrowserMapDataClient = exports.BaseMapDataClient = void 0;
|
|
4
|
-
|
|
4
|
+
const BaseMapDataClient_1 = require("./BaseMapDataClient");
|
|
5
5
|
Object.defineProperty(exports, "BaseMapDataClient", { enumerable: true, get: function () { return BaseMapDataClient_1.BaseMapDataClient; } });
|
|
6
|
-
|
|
6
|
+
const BrowserMapDataClient_1 = require("./BrowserMapDataClient");
|
|
7
7
|
Object.defineProperty(exports, "BrowserMapDataClient", { enumerable: true, get: function () { return BrowserMapDataClient_1.BrowserMapDataClient; } });
|
|
8
|
-
|
|
8
|
+
const NodeLocalMapDataClient_1 = require("./NodeLocalMapDataClient");
|
|
9
9
|
Object.defineProperty(exports, "NodeLocalMapDataClient", { enumerable: true, get: function () { return NodeLocalMapDataClient_1.NodeLocalMapDataClient; } });
|