pg-mvc-service 2.0.69 → 2.0.70

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.
@@ -43,6 +43,10 @@ class ResponseType extends ReqResType_1.default {
43
43
  case 'array?':
44
44
  data[key] = this.getArray([key]);
45
45
  break;
46
+ case 'map':
47
+ case 'map?':
48
+ data[key] = this.getMap([key]);
49
+ break;
46
50
  default:
47
51
  data[key] = this.getValue([key]);
48
52
  break;
@@ -81,6 +85,10 @@ class ResponseType extends ReqResType_1.default {
81
85
  case 'array?':
82
86
  resData[key] = this.getArray([...keys, key]);
83
87
  break;
88
+ case 'map':
89
+ case 'map?':
90
+ resData[key] = this.getMap([...keys, key]);
91
+ break;
84
92
  default:
85
93
  resData[key] = this.getValue([...keys, key]);
86
94
  break;
@@ -114,6 +122,10 @@ class ResponseType extends ReqResType_1.default {
114
122
  case 'array?':
115
123
  resData.push(this.getArray([...keys, i]));
116
124
  break;
125
+ case 'map':
126
+ case 'map?':
127
+ resData.push(this.getMap([...keys, i]));
128
+ break;
117
129
  default:
118
130
  resData.push(this.getValue([...keys, i]));
119
131
  break;
@@ -122,6 +134,47 @@ class ResponseType extends ReqResType_1.default {
122
134
  return resData;
123
135
  }
124
136
  /**
137
+ * Retrieve array type data
138
+ * 配列型のデータを取得
139
+ * @param {Array.<string|number>} keys - Path to the property, プロパティへのパス
140
+ * @returns {Array<any> | undefined} Retrieved array data, 取得された配列データ
141
+ */
142
+ getMap(keys) {
143
+ const data = this.getData(keys);
144
+ if (data === undefined || Array.isArray(data) === false) {
145
+ return undefined;
146
+ }
147
+ const mapProperty = this.getProperty(keys);
148
+ if (mapProperty.type !== 'map' && mapProperty.type !== 'map?') {
149
+ throw new Error(`getMapメソッドでMap型以外が入力された場合はエラー\n keys: ${keys.join(',')}`);
150
+ }
151
+ const mapData = {};
152
+ for (const [key, value] of data) {
153
+ switch (mapProperty.mapType) {
154
+ case 'number':
155
+ case 'number?':
156
+ if (this.isNumber(value) === false) {
157
+ continue;
158
+ }
159
+ mapData[key] = Number(value);
160
+ break;
161
+ case 'string':
162
+ case 'string?':
163
+ switch (typeof value) {
164
+ case 'number':
165
+ mapData[key] = value.toString();
166
+ break;
167
+ case 'string':
168
+ mapData[key] = value;
169
+ break;
170
+ default:
171
+ continue;
172
+ }
173
+ }
174
+ }
175
+ return mapData;
176
+ }
177
+ /**
125
178
  * Retrieve data based on the provided keys
126
179
  * 指定されたキーに基づいてデータを取得
127
180
  * @param {Array.<string|number>} keys - Path to the data, データへのパス
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pg-mvc-service",
3
- "version": "2.0.69",
3
+ "version": "2.0.70",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/n-daira/npm-pack_mvc-service#readme",
6
6
  "bugs": {
@@ -40,6 +40,10 @@ export class ResponseType extends ReqResType {
40
40
  case 'array?':
41
41
  data[key] = this.getArray([key]);
42
42
  break;
43
+ case 'map':
44
+ case 'map?':
45
+ data[key] = this.getMap([key]);
46
+ break;
43
47
  default:
44
48
  data[key] = this.getValue([key]);
45
49
  break;
@@ -85,6 +89,10 @@ export class ResponseType extends ReqResType {
85
89
  case 'array?':
86
90
  resData[key] = this.getArray([...keys, key]);
87
91
  break;
92
+ case 'map':
93
+ case 'map?':
94
+ resData[key] = this.getMap([...keys, key]);
95
+ break;
88
96
  default:
89
97
  resData[key] = this.getValue([...keys, key]);
90
98
  break;
@@ -123,6 +131,10 @@ export class ResponseType extends ReqResType {
123
131
  case 'array?':
124
132
  resData.push(this.getArray([...keys, i]));
125
133
  break;
134
+ case 'map':
135
+ case 'map?':
136
+ resData.push(this.getMap([...keys, i]));
137
+ break;
126
138
  default:
127
139
  resData.push(this.getValue([...keys, i]));
128
140
  break;
@@ -132,6 +144,52 @@ export class ResponseType extends ReqResType {
132
144
  return resData;
133
145
  }
134
146
 
147
+ /**
148
+ * Retrieve array type data
149
+ * 配列型のデータを取得
150
+ * @param {Array.<string|number>} keys - Path to the property, プロパティへのパス
151
+ * @returns {Array<any> | undefined} Retrieved array data, 取得された配列データ
152
+ */
153
+ private getMap(keys: Array<string | number>) {
154
+
155
+ const data = this.getData(keys);
156
+ if (data === undefined || Array.isArray(data) === false) {
157
+ return undefined;
158
+ }
159
+
160
+ const mapProperty = this.getProperty(keys);
161
+ if (mapProperty.type !== 'map' && mapProperty.type !== 'map?') {
162
+ throw new Error(`getMapメソッドでMap型以外が入力された場合はエラー\n keys: ${keys.join(',')}`);
163
+ }
164
+
165
+ const mapData: {[key: string]: string | number} = {};
166
+ for (const [key, value] of data) {
167
+ switch (mapProperty.mapType) {
168
+ case 'number':
169
+ case 'number?':
170
+ if (this.isNumber(value) === false) {
171
+ continue;
172
+ }
173
+ mapData[key] = Number(value);
174
+ break;
175
+ case 'string':
176
+ case 'string?':
177
+ switch (typeof value) {
178
+ case 'number':
179
+ mapData[key] = value.toString();
180
+ break;
181
+ case 'string':
182
+ mapData[key] = value;
183
+ break;
184
+ default:
185
+ continue;
186
+ }
187
+ }
188
+ }
189
+
190
+ return mapData;
191
+ }
192
+
135
193
  /**
136
194
  * Retrieve data based on the provided keys
137
195
  * 指定されたキーに基づいてデータを取得