nav tabs on admin dashboard
This commit is contained in:
63
node_modules/ajv-keywords/keywords/transform.js
generated
vendored
63
node_modules/ajv-keywords/keywords/transform.js
generated
vendored
@@ -1,17 +1,39 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function defFunc (ajv) {
|
||||
var transform = {
|
||||
trimLeft: function (value) {
|
||||
return value.replace(/^[\s]+/, '');
|
||||
},
|
||||
trimRight: function (value) {
|
||||
return value.replace(/[\s]+$/, '');
|
||||
},
|
||||
trim: function (value) {
|
||||
return value.trim();
|
||||
},
|
||||
toLowerCase: function (value) {
|
||||
return value.toLowerCase();
|
||||
},
|
||||
toUpperCase: function (value) {
|
||||
return value.toUpperCase();
|
||||
},
|
||||
toEnumCase: function (value, cfg) {
|
||||
return cfg.hash[makeHashTableKey(value)] || value;
|
||||
}
|
||||
};
|
||||
|
||||
defFunc.definition = {
|
||||
type: 'string',
|
||||
errors: false,
|
||||
modifying: true,
|
||||
valid: true,
|
||||
compile: function (schema, parentSchema) {
|
||||
|
||||
// build hash table to enum values
|
||||
var hashtable = {};
|
||||
var cfg;
|
||||
|
||||
if (schema.indexOf('toEnumCase') !== -1) {
|
||||
// build hash table to enum values
|
||||
cfg = {hash: {}};
|
||||
|
||||
// requires `enum` in schema
|
||||
if (!parentSchema.enum)
|
||||
throw new Error('Missing enum. To use `transform:["toEnumCase"]`, `enum:[...]` is required.');
|
||||
@@ -20,42 +42,21 @@ module.exports = function defFunc (ajv) {
|
||||
if (typeof v !== 'string') continue;
|
||||
var k = makeHashTableKey(v);
|
||||
// requires all `enum` values have unique keys
|
||||
if (hashtable[k])
|
||||
if (cfg.hash[k])
|
||||
throw new Error('Invalid enum uniqueness. To use `transform:["toEnumCase"]`, all values must be unique when case insensitive.');
|
||||
hashtable[k] = v;
|
||||
cfg.hash[k] = v;
|
||||
}
|
||||
}
|
||||
|
||||
var transform = {
|
||||
trimLeft: function (value) {
|
||||
return value.replace(/^[\s]+/, '');
|
||||
},
|
||||
trimRight: function (value) {
|
||||
return value.replace(/[\s]+$/, '');
|
||||
},
|
||||
trim: function (value) {
|
||||
return value.trim();
|
||||
},
|
||||
toLowerCase: function (value) {
|
||||
return value.toLowerCase();
|
||||
},
|
||||
toUpperCase: function (value) {
|
||||
return value.toUpperCase();
|
||||
},
|
||||
toEnumCase: function (value) {
|
||||
return hashtable[makeHashTableKey(value)] || value;
|
||||
}
|
||||
};
|
||||
|
||||
return function (value, objectKey, object, key) {
|
||||
return function (data, dataPath, object, key) {
|
||||
// skip if value only
|
||||
if (!object) return;
|
||||
|
||||
// apply transform in order provided
|
||||
for (var j = 0, l = schema.length; j < l; j++) {
|
||||
if (typeof object[key] !== 'string') continue;
|
||||
object[key] = transform[schema[j]](object[key]);
|
||||
}
|
||||
for (var j = 0, l = schema.length; j < l; j++)
|
||||
data = transform[schema[j]](data, cfg);
|
||||
|
||||
object[key] = data;
|
||||
};
|
||||
},
|
||||
metaSchema: {
|
||||
|
||||
Reference in New Issue
Block a user