mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
# add dist
This commit is contained in:
76
ng2-components/ng2-alfresco-documentslist/dist/node_modules/jsonpointer/jsonpointer.js
generated
vendored
Normal file
76
ng2-components/ng2-alfresco-documentslist/dist/node_modules/jsonpointer/jsonpointer.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
var untilde = function(str) {
|
||||
return str.replace(/~./g, function(m) {
|
||||
switch (m) {
|
||||
case "~0":
|
||||
return "~";
|
||||
case "~1":
|
||||
return "/";
|
||||
}
|
||||
throw new Error("Invalid tilde escape: " + m);
|
||||
});
|
||||
}
|
||||
|
||||
var traverse = function(obj, pointer, value) {
|
||||
// assert(isArray(pointer))
|
||||
var part = untilde(pointer.shift());
|
||||
if(!obj.hasOwnProperty(part)) {
|
||||
return null;
|
||||
}
|
||||
if(pointer.length !== 0) { // keep traversin!
|
||||
return traverse(obj[part], pointer, value);
|
||||
}
|
||||
// we're done
|
||||
if(typeof value === "undefined") {
|
||||
// just reading
|
||||
return obj[part];
|
||||
}
|
||||
// set new value, return old value
|
||||
var old_value = obj[part];
|
||||
if(value === null) {
|
||||
delete obj[part];
|
||||
} else {
|
||||
obj[part] = value;
|
||||
}
|
||||
return old_value;
|
||||
}
|
||||
|
||||
var validate_input = function(obj, pointer) {
|
||||
if(typeof obj !== "object") {
|
||||
throw new Error("Invalid input object.");
|
||||
}
|
||||
|
||||
if(pointer === "") {
|
||||
return [];
|
||||
}
|
||||
|
||||
if(!pointer) {
|
||||
throw new Error("Invalid JSON pointer.");
|
||||
}
|
||||
|
||||
pointer = pointer.split("/");
|
||||
var first = pointer.shift();
|
||||
if (first !== "") {
|
||||
throw new Error("Invalid JSON pointer.");
|
||||
}
|
||||
|
||||
return pointer;
|
||||
}
|
||||
|
||||
var get = function(obj, pointer) {
|
||||
pointer = validate_input(obj, pointer);
|
||||
if (pointer.length === 0) {
|
||||
return obj;
|
||||
}
|
||||
return traverse(obj, pointer);
|
||||
}
|
||||
|
||||
var set = function(obj, pointer, value) {
|
||||
pointer = validate_input(obj, pointer);
|
||||
if (pointer.length === 0) {
|
||||
throw new Error("Invalid JSON pointer for set.")
|
||||
}
|
||||
return traverse(obj, pointer, value);
|
||||
}
|
||||
|
||||
exports.get = get
|
||||
exports.set = set
|
Reference in New Issue
Block a user