relution-sdk
Version:
Relution Software Development Kit for TypeScript and JavaScript
62 lines • 5.96 kB
JavaScript
/*
* @file core/domain.ts
* Relution SDK
*
* Created by Thomas Beckmann on 28.04.2016
* Copyright 2016 M-Way Solutions GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @module core
*/
/** */
;
/**
* turns the object deeply immutable.
*
* @param self to freeze.
* @return {T} self for convenience.
*
* @internal for library use only.
*/
function freeze(self) {
var anything = self;
if (anything.aclEntries) {
anything.aclEntries = Object.freeze(anything.aclEntries);
}
if (anything.createdDate) {
anything.createdDate = Object.freeze(new Date(+anything.createdDate));
}
if (anything.modifiedDate) {
anything.modifiedDate = Object.freeze(new Date(+anything.modifiedDate));
}
return Object.freeze(anything);
}
exports.freeze = freeze;
/**
* extracts the uuid of a Referenceable.
*
* @param referenceable or string uuid.
* @return {string} uuid of referenceable.
*/
function uuidOf(referenceable) {
if (_.isString(referenceable)) {
return referenceable;
}
else if (referenceable) {
return referenceable.uuid;
}
}
exports.uuidOf = uuidOf;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSDs7R0FFRztBQUNILE1BQU07O0FBOEJOOzs7Ozs7O0dBT0c7QUFDSCxnQkFBMEIsSUFBTztJQUMvQixJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUM7SUFDekIsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDeEIsUUFBUSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekIsUUFBUSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBWmUsY0FBTSxTQVlyQixDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxnQkFBdUIsYUFBcUM7SUFDMUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztBQUNILENBQUM7QUFOZSxjQUFNLFNBTXJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQGZpbGUgY29yZS9kb21haW4udHNcbiAqIFJlbHV0aW9uIFNES1xuICpcbiAqIENyZWF0ZWQgYnkgVGhvbWFzIEJlY2ttYW5uIG9uIDI4LjA0LjIwMTZcbiAqIENvcHlyaWdodCAyMDE2IE0tV2F5IFNvbHV0aW9ucyBHbWJIXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQG1vZHVsZSBjb3JlXG4gKi9cbi8qKiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZWFibGUge1xuICB1dWlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJlIHtcbiAgYWNsRW50cmllczogc3RyaW5nW107XG4gIGVmZmVjdGl2ZVBlcm1pc3Npb25zPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc1ZlcnNpb24ge1xuICB2ZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzQnVuZGxlIHtcbiAgYnVuZGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0FwcGxpY2F0aW9uIHtcbiAgYXBwbGljYXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzTW9kaWZpZWQge1xuICBjcmVhdGVkVXNlcj86IHN0cmluZztcbiAgY3JlYXRlZERhdGU/OiBEYXRlO1xuICBtb2RpZmllZFVzZXI/OiBzdHJpbmc7XG4gIG1vZGlmaWVkRGF0ZT86IERhdGU7XG59XG5cbi8qKlxuICogdHVybnMgdGhlIG9iamVjdCBkZWVwbHkgaW1tdXRhYmxlLlxuICpcbiAqIEBwYXJhbSBzZWxmIHRvIGZyZWV6ZS5cbiAqIEByZXR1cm4ge1R9IHNlbGYgZm9yIGNvbnZlbmllbmNlLlxuICpcbiAqIEBpbnRlcm5hbCBmb3IgbGlicmFyeSB1c2Ugb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyZWV6ZTxUPihzZWxmOiBUKTogVCB7XG4gIGxldCBhbnl0aGluZzogYW55ID0gc2VsZjtcbiAgaWYgKGFueXRoaW5nLmFjbEVudHJpZXMpIHtcbiAgICBhbnl0aGluZy5hY2xFbnRyaWVzID0gT2JqZWN0LmZyZWV6ZShhbnl0aGluZy5hY2xFbnRyaWVzKTtcbiAgfVxuICBpZiAoYW55dGhpbmcuY3JlYXRlZERhdGUpIHtcbiAgICBhbnl0aGluZy5jcmVhdGVkRGF0ZSA9IE9iamVjdC5mcmVlemUobmV3IERhdGUoK2FueXRoaW5nLmNyZWF0ZWREYXRlKSk7XG4gIH1cbiAgaWYgKGFueXRoaW5nLm1vZGlmaWVkRGF0ZSkge1xuICAgIGFueXRoaW5nLm1vZGlmaWVkRGF0ZSA9IE9iamVjdC5mcmVlemUobmV3IERhdGUoK2FueXRoaW5nLm1vZGlmaWVkRGF0ZSkpO1xuICB9XG4gIHJldHVybiBPYmplY3QuZnJlZXplKGFueXRoaW5nKTtcbn1cblxuLyoqXG4gKiBleHRyYWN0cyB0aGUgdXVpZCBvZiBhIFJlZmVyZW5jZWFibGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZWFibGUgb3Igc3RyaW5nIHV1aWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHV1aWQgb2YgcmVmZXJlbmNlYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV1aWRPZihyZWZlcmVuY2VhYmxlOiBSZWZlcmVuY2VhYmxlIHwgc3RyaW5nKSB7XG4gIGlmIChfLmlzU3RyaW5nKHJlZmVyZW5jZWFibGUpKSB7XG4gICAgcmV0dXJuIHJlZmVyZW5jZWFibGU7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlYWJsZSkge1xuICAgIHJldHVybiByZWZlcmVuY2VhYmxlLnV1aWQ7XG4gIH1cbn1cbiJdfQ==