Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
jio_mebibou
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Alexandra Rogova
jio_mebibou
Commits
099545bf
Commit
099545bf
authored
Apr 11, 2014
by
Tristan Cavelier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jio.js updated
parent
6b4c1794
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
97 additions
and
25 deletions
+97
-25
jio.js
jio.js
+97
-25
No files found.
jio.js
View file @
099545bf
...
...
@@ -38,12 +38,15 @@ constants.http_status_text = {
"
0
"
:
"
Unknown
"
,
"
550
"
:
"
Internal JIO Error
"
,
"
551
"
:
"
Internal Storage Error
"
,
"
555
"
:
"
Cancelled
"
,
"
Unknown
"
:
"
Unknown
"
,
"
Internal JIO Error
"
:
"
Internal JIO Error
"
,
"
Internal Storage Error
"
:
"
Internal Storage Error
"
,
"
Cancelled
"
:
"
Cancelled
"
,
"
unknown
"
:
"
Unknown
"
,
"
internal_jio_error
"
:
"
Internal JIO Error
"
,
"
internal_storage_error
"
:
"
Internal Storage Error
"
,
"
cancelled
"
:
"
Cancelled
"
,
"
200
"
:
"
Ok
"
,
"
201
"
:
"
Created
"
,
...
...
@@ -150,12 +153,15 @@ constants.http_status = {
"
0
"
:
0
,
"
550
"
:
550
,
"
551
"
:
551
,
"
555
"
:
555
,
"
Unknown
"
:
0
,
"
Internal JIO Error
"
:
550
,
"
Internal Storage Error
"
:
551
,
"
Cancelled
"
:
555
,
"
unknown
"
:
0
,
"
internal_jio_error
"
:
550
,
"
internal_storage_error
"
:
551
,
"
cancelled
"
:
555
,
"
200
"
:
200
,
"
201
"
:
201
,
...
...
@@ -262,12 +268,15 @@ constants.http_action = {
"
0
"
:
"
error
"
,
"
550
"
:
"
error
"
,
"
551
"
:
"
error
"
,
"
555
"
:
"
error
"
,
"
Unknown
"
:
"
error
"
,
"
Internal JIO Error
"
:
"
error
"
,
"
Internal Storage Error
"
:
"
error
"
,
"
Cancelled
"
:
"
error
"
,
"
unknown
"
:
"
error
"
,
"
internal_jio_error
"
:
"
error
"
,
"
internal_storage_error
"
:
"
error
"
,
"
cancelled
"
:
"
error
"
,
"
200
"
:
"
success
"
,
"
201
"
:
"
success
"
,
...
...
@@ -717,8 +726,22 @@ function generateUuid() {
exports
.
util
.
generateUuid
=
generateUuid
;
/**
* JSON stringify a value. Dict keys are sorted in order to make a kind of
* deepEqual thanks to a simple strict equal string comparison.
* Concatenate a `string` `n` times.
*
* @param {String} string The string to concat
* @param {Number} n The number of time to concat
* @return {String} The concatenated string
*/
function
concatStringNTimes
(
string
,
n
)
{
/*jslint plusplus: true */
var
res
=
""
;
while
(
--
n
>=
0
)
{
res
+=
string
;
}
return
res
;
}
/**
* JSON stringify a value. Object keys are sorted in order to make a kind of
* deepEqual thanks to a simple string comparison.
*
* JSON.stringify({"a": "b", "c": "d"}) ===
* JSON.stringify({"c": "d", "a": "b"}) // false
...
...
@@ -729,43 +752,84 @@ exports.util.generateUuid = generateUuid;
* uniqueJSONStringify({"c": "d", "a": "b"}) // true
*
* @param {Any} value The value to stringify
* @param {Function} [replacer] A function to replace values during parse
* @param {Function,Array} [replacer] A function to replace values during parse
* @param {String,Number} [space] Causes the result to be pretty-printed
* @return {String} The unique JSON stringified value
*/
function
uniqueJSONStringify
(
value
,
replacer
)
{
function
subStringify
(
value
,
key
)
{
var
i
,
res
;
if
(
typeof
replacer
===
'
function
'
)
{
function
uniqueJSONStringify
(
value
,
replacer
,
space
)
{
var
indent
,
key_value_space
=
""
;
if
(
typeof
space
===
"
string
"
)
{
if
(
space
!==
""
)
{
indent
=
space
;
key_value_space
=
"
"
;
}
}
else
if
(
typeof
space
===
"
number
"
)
{
if
(
isFinite
(
space
)
&&
space
>
0
)
{
indent
=
concatStringNTimes
(
"
"
,
space
);
key_value_space
=
"
"
;
}
}
function
uniqueJSONStringifyRec
(
key
,
value
,
deep
)
{
var
i
,
l
,
res
,
my_space
;
if
(
value
&&
typeof
value
.
toJSON
===
"
function
"
)
{
value
=
value
.
toJSON
();
}
if
(
typeof
replacer
===
"
function
"
)
{
value
=
replacer
(
key
,
value
);
}
if
(
indent
)
{
my_space
=
concatStringNTimes
(
indent
,
deep
);
}
if
(
Array
.
isArray
(
value
))
{
res
=
[];
for
(
i
=
0
;
i
<
value
.
length
;
i
+=
1
)
{
res
[
res
.
length
]
=
subStringify
(
value
[
i
],
i
);
res
[
res
.
length
]
=
uniqueJSONStringifyRec
(
i
,
value
[
i
],
deep
+
1
);
if
(
res
[
res
.
length
-
1
]
===
undefined
)
{
res
[
res
.
length
-
1
]
=
'
null
'
;
res
[
res
.
length
-
1
]
=
"
null
"
;
}
}
return
'
[
'
+
res
.
join
(
'
,
'
)
+
'
]
'
;
}
if
(
typeof
value
===
'
object
'
&&
value
!==
null
&&
typeof
value
.
toJSON
!==
'
function
'
)
{
res
=
[];
for
(
i
in
value
)
{
if
(
value
.
hasOwnProperty
(
i
))
{
res
[
res
.
length
]
=
subStringify
(
value
[
i
],
i
);
if
(
res
[
res
.
length
-
1
]
!==
undefined
)
{
res
[
res
.
length
-
1
]
=
JSON
.
stringify
(
i
)
+
"
:
"
+
res
[
res
.
length
-
1
];
}
else
{
res
.
length
-=
1
;
}
}
if
(
res
.
length
===
0
)
{
return
"
[]
"
;
}
if
(
indent
)
{
return
"
[
\n
"
+
my_space
+
indent
+
res
.
join
(
"
,
\n
"
+
my_space
+
indent
)
+
"
\n
"
+
my_space
+
"
]
"
;
}
return
"
[
"
+
res
.
join
(
"
,
"
)
+
"
]
"
;
}
if
(
typeof
value
===
"
object
"
&&
value
!==
null
)
{
if
(
Array
.
isArray
(
replacer
))
{
res
=
replacer
.
reduce
(
function
(
p
,
c
)
{
p
.
push
(
c
);
return
p
;
},
[]);
}
else
{
res
=
Object
.
keys
(
value
);
}
res
.
sort
();
return
'
{
'
+
res
.
join
(
'
,
'
)
+
'
}
'
;
for
(
i
=
0
,
l
=
res
.
length
;
i
<
l
;
i
+=
1
)
{
key
=
res
[
i
];
res
[
i
]
=
uniqueJSONStringifyRec
(
key
,
value
[
key
],
deep
+
1
);
if
(
res
[
i
]
!==
undefined
)
{
res
[
i
]
=
JSON
.
stringify
(
key
)
+
"
:
"
+
key_value_space
+
res
[
i
];
}
else
{
res
.
splice
(
i
,
1
);
l
-=
1
;
i
-=
1
;
}
}
if
(
res
.
length
===
0
)
{
return
"
{}
"
;
}
if
(
indent
)
{
return
"
{
\n
"
+
my_space
+
indent
+
res
.
join
(
"
,
\n
"
+
my_space
+
indent
)
+
"
\n
"
+
my_space
+
"
}
"
;
}
return
"
{
"
+
res
.
join
(
"
,
"
)
+
"
}
"
;
}
return
JSON
.
stringify
(
value
);
}
return
subStringify
(
value
,
''
);
return
uniqueJSONStringifyRec
(
""
,
value
,
0
);
}
exports
.
util
.
uniqueJSONStringify
=
uniqueJSONStringify
;
...
...
@@ -2947,6 +3011,13 @@ function enableJobMaker(jio, shared, options) {
job
.
command
.
storage
=
function
()
{
return
shared
.
createRestApi
.
apply
(
null
,
arguments
);
};
job
.
command
.
setCanceller
=
function
(
canceller
)
{
job
.
cancellers
[
"
command:canceller
"
]
=
canceller
;
};
job
.
cancellers
=
job
.
cancellers
||
{};
job
.
cancellers
[
"
job:canceller
"
]
=
function
()
{
shared
.
emit
(
"
job:reject
"
,
job
,
[
"
cancelled
"
]);
};
}
function
createJobFromRest
(
param
)
{
...
...
@@ -3447,6 +3518,7 @@ function enableRestAPI(jio, shared) { // (jio, shared, options)
param
.
solver
.
reject
=
reject
;
param
.
solver
.
notify
=
notify
;
},
function
()
{
if
(
!
param
.
cancellers
)
{
return
;
}
var
k
;
for
(
k
in
param
.
cancellers
)
{
if
(
param
.
cancellers
.
hasOwnProperty
(
k
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment