Project

General

Profile

« Previous | Next » 

Revision 2fa41a54

Added by koszko about 2 years ago

validate settings on import

View differences:

common/sanitize_JSON.js
31 31

  
32 32
function sanitize_unknown(schema, item)
33 33
{
34
    console.log(`sanitize_unknown ${JSON.stringify(schema)}`);
35 34
    let error_msg = undefined;
36 35
    let schema_options = [];
37 36
    let has_default = false;
......
89 88

  
90 89
function sanitize_unknown_no_alternatives(schema, item)
91 90
{
92
    console.log(`sanitize_unknown_no_alternatives ${JSON.stringify(schema)}`);
93 91
    for (const [schema_check, item_check, sanitizer, type_name] of checks) {
94
	console.log(`checking ${type_name}`);
95 92
	if (schema_check(schema)) {
96 93
	    if (item_check(item))
97 94
		return sanitizer(schema, item);
......
205 202

  
206 203
function sanitize_array(schema, array)
207 204
{
208
    console.log(`sanitize_array ${JSON.stringify(schema)}`);
209 205
    let min_length = 0;
210 206
    let max_length = Infinity;
211 207
    let repeat_length = 1;
......
231 227
    }
232 228
    if (["repeat", "repeatfull"].includes(schema[schema.length - 1])) {
233 229
	var repeat_directive = schema.pop();
234
	repeat = schema.splice(schema.length - repeat_length);
230
	var repeat = schema.splice(schema.length - repeat_length);
235 231
    } else if (schema.length !== array.length) {
236
	throw error_message(`does not not have exactly ${schema.length} items`);
232
	throw error_message(`does not have exactly ${schema.length} items`);
237 233
    }
238 234

  
239 235
    if (repeat_directive === "repeatfull" &&
240 236
	(array.length - schema.length) % repeat_length !== 0)
241
	throw error_message(`does not not contain a full number of item group repetitions`);
237
	throw error_message(`does not contain a full number of item group repetitions`);
242 238

  
243 239
    if (array.length < min_length)
244 240
	throw error_message(`has less than ${min_length} element${min_length === 1 ? "" : "s"}`);
......
246 242
    if (array.length > max_length)
247 243
	throw error_message(`has more than ${max_length} element${max_length === 1 ? "" : "s"}`);
248 244

  
249
    console.log(schema, repeat);
250

  
251 245
    for (const item of array) {
252 246
	if (i >= schema.length) {
253 247
	    i = 0;
......
268 262

  
269 263
function sanitize_regex(schema, string)
270 264
{
271
    console.log(`sanitize_regex ${schema}`);
272 265
    if (schema.test(string))
273 266
	return string;
274 267

  
......
279 272

  
280 273
function sanitize_string(schema, string)
281 274
{
282
    console.log(`sanitize_string ${JSON.stringify(schema)}`);
283 275
    const regex = string_spec_regex.exec(schema)[2];
284 276

  
285 277
    if (regex === undefined)
......
290 282

  
291 283
function sanitize_object(schema, object)
292 284
{
293
    console.log(`sanitize_object ${JSON.stringify(schema)}`);
294 285
    const result = {};
295 286

  
296 287
    for (let [key, entry_schema] of Object.entries(schema)) {
......
304 295

  
305 296
function sanitize_object_entry(result, key, entry_schema, object)
306 297
{
307
    console.log(`sanitize_object_entry ${JSON.stringify(entry_schema)}`);
308 298
    let optional = false;
309 299
    let has_default = false;
310 300
    let _default = undefined;
......
347 337

  
348 338
function take_literal(schema, item)
349 339
{
350
    console.log(`take_literal ${JSON.stringify(schema)}`);
351 340
    return item;
352 341
}
353 342

  
......
357 346
 */
358 347
function discard(schema, item)
359 348
{
360
    console.log(`discard ${JSON.stringify(schema)}`);
361 349
    return discard;
362 350
}
363 351

  

Also available in: Unified diff