Skip to content
Snippets Groups Projects
Verified Commit ac97ce5a authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

chore: commit save point

parent ccb2cba1
No related branches found
No related tags found
No related merge requests found
Showing
with 68 additions and 316 deletions
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {Base} from '../types/base.js'; import {Base} from '../types/base.js';
...@@ -22,7 +22,7 @@ import {Base} from '../types/base.js'; ...@@ -22,7 +22,7 @@ import {Base} from '../types/base.js';
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary The abstract constraint * @summary The abstract constraint
*/ */
class AbstractConstraint extends Base { export class AbstractConstraint extends Base {
/** /**
* *
...@@ -41,6 +41,3 @@ class AbstractConstraint extends Base { ...@@ -41,6 +41,3 @@ class AbstractConstraint extends Base {
return Promise.reject(value); return Promise.reject(value);
} }
} }
assignToNamespace('Monster.Constraints', AbstractConstraint);
export {Monster, AbstractConstraint}
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {AbstractConstraint} from "./abstract.js"; import {AbstractConstraint} from "./abstract.js";
/** /**
...@@ -18,7 +18,7 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -18,7 +18,7 @@ import {AbstractConstraint} from "./abstract.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary The abstract operator constraint * @summary The abstract operator constraint
*/ */
class AbstractOperator extends AbstractConstraint { export class AbstractOperator extends AbstractConstraint {
/** /**
* *
...@@ -41,5 +41,3 @@ class AbstractOperator extends AbstractConstraint { ...@@ -41,5 +41,3 @@ class AbstractOperator extends AbstractConstraint {
} }
assignToNamespace('Monster.Constraints', AbstractOperator);
export {Monster, AbstractOperator}
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {AbstractOperator} from "./abstractoperator.js"; import {AbstractOperator} from "./abstractoperator.js";
/** /**
...@@ -16,25 +16,16 @@ import {AbstractOperator} from "./abstractoperator.js"; ...@@ -16,25 +16,16 @@ import {AbstractOperator} from "./abstractoperator.js";
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/andoperator.js';
* new Monster.Constraint.AndOperator();
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/andoperator.js';
* new AndOperator(); * new AndOperator();
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js'; * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
* import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js'; * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
* import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/andoperator.js'; * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/andoperator.js';
* *
* new AndOperator( * new AndOperator(
* new Valid(), new Valid()).isValid() * new Valid(), new Valid()).isValid()
...@@ -53,7 +44,7 @@ import {AbstractOperator} from "./abstractoperator.js"; ...@@ -53,7 +44,7 @@ import {AbstractOperator} from "./abstractoperator.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A and operator constraint * @summary A and operator constraint
*/ */
class AndOperator extends AbstractOperator { export class AndOperator extends AbstractOperator {
/** /**
* this method return a promise containing the result of the check. * this method return a promise containing the result of the check.
...@@ -66,6 +57,3 @@ class AndOperator extends AbstractOperator { ...@@ -66,6 +57,3 @@ class AndOperator extends AbstractOperator {
} }
} }
assignToNamespace('Monster.Constraints', AndOperator);
export {Monster, AndOperator}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {AbstractConstraint} from "./abstract.js"; import {AbstractConstraint} from "./abstract.js";
/** /**
...@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js";
* *
* The invalid constraint allows an always invalid query to be performed. this constraint is mainly intended for testing. * The invalid constraint allows an always invalid query to be performed. this constraint is mainly intended for testing.
* *
* You can call the method via the monster namespace `new Monster.Constraint.Invalid()`.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
* new Monster.Constraint.Invalid();
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js';
* new Invalid(); * new Invalid();
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js'; * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
* *
* new Invalid().isValid() * new Invalid().isValid()
* .then(()=>console.log(true)) * .then(()=>console.log(true))
...@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A constraint that always invalid * @summary A constraint that always invalid
*/ */
class Invalid extends AbstractConstraint { export class Invalid extends AbstractConstraint {
/** /**
* this method return a rejected promise * this method return a rejected promise
...@@ -58,6 +47,3 @@ class Invalid extends AbstractConstraint { ...@@ -58,6 +47,3 @@ class Invalid extends AbstractConstraint {
} }
} }
assignToNamespace('Monster.Constraints', Invalid);
export {Monster, Invalid}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {isArray} from "../types/is.js"; import {isArray} from "../types/is.js";
import {AbstractConstraint} from "./abstract.js"; import {AbstractConstraint} from "./abstract.js";
...@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js";
* *
* The uniform API of the constraints allows chains to be formed. * The uniform API of the constraints allows chains to be formed.
* *
* You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isarray.js';
* new Monster.Constraint.IsArray()
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isarray.js';
* console.log(new IsArray()) * console.log(new IsArray())
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isarray.js'; * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isarray.js';
* *
* new IsArray() * new IsArray()
* .isValid([]) * .isValid([])
...@@ -49,7 +38,7 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -49,7 +38,7 @@ import {AbstractConstraint} from "./abstract.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A constraint to check if a value is an array * @summary A constraint to check if a value is an array
*/ */
class IsArray extends AbstractConstraint { export class IsArray extends AbstractConstraint {
/** /**
* this method return a promise containing the result of the check. * this method return a promise containing the result of the check.
...@@ -66,6 +55,3 @@ class IsArray extends AbstractConstraint { ...@@ -66,6 +55,3 @@ class IsArray extends AbstractConstraint {
} }
} }
assignToNamespace('Monster.Constraints', IsArray);
export {Monster, IsArray}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {isObject} from "../types/is.js"; import {isObject} from "../types/is.js";
import {AbstractConstraint} from "./abstract.js"; import {AbstractConstraint} from "./abstract.js";
...@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -12,27 +12,16 @@ import {AbstractConstraint} from "./abstract.js";
* *
* The uniform API of the constraints allows chains to be formed. * The uniform API of the constraints allows chains to be formed.
* *
* You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isobject.js';
* console.log(new Monster.Constraint.IsObject())
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isobject.js';
* console.log(new IsObject()) * console.log(new IsObject())
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/isobject.js'; * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/isobject.js';
* *
* new IsObject() * new IsObject()
* .isValid({}) * .isValid({})
...@@ -50,7 +39,7 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -50,7 +39,7 @@ import {AbstractConstraint} from "./abstract.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A constraint to check if a value is an object * @summary A constraint to check if a value is an object
*/ */
class IsObject extends AbstractConstraint { export class IsObject extends AbstractConstraint {
/** /**
* this method return a promise containing the result of the check. * this method return a promise containing the result of the check.
...@@ -67,6 +56,3 @@ class IsObject extends AbstractConstraint { ...@@ -67,6 +56,3 @@ class IsObject extends AbstractConstraint {
} }
} }
assignToNamespace('Monster.Constraints', IsObject);
export {Monster, IsObject}
'use strict';
/**
* Constraints are used to define conditions that must be met by the value of a variable so that the value can be transferred to the system.
*
* @namespace Constraints
* @memberOf Monster
* @author schukai GmbH
*/
/**
* @private
* @type {string}
*/
export const namespace = "Monster.Constraints";
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {AbstractOperator} from "./abstractoperator.js"; import {AbstractOperator} from "./abstractoperator.js";
/** /**
...@@ -15,25 +15,16 @@ import {AbstractOperator} from "./abstractoperator.js"; ...@@ -15,25 +15,16 @@ import {AbstractOperator} from "./abstractoperator.js";
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraint/oroperator.js';
* new Monster.Constraint.OrOperator();
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraint/oroperator.js';
* new OrOperator(); * new OrOperator();
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js'; * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
* import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/invalid.js'; * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/invalid.js';
* import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/oroperator.js'; * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/oroperator.js';
* *
* new OrOperator( * new OrOperator(
* new Valid(), new Invalid()).isValid() * new Valid(), new Invalid()).isValid()
...@@ -52,7 +43,7 @@ import {AbstractOperator} from "./abstractoperator.js"; ...@@ -52,7 +43,7 @@ import {AbstractOperator} from "./abstractoperator.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A or operator * @summary A or operator
*/ */
class OrOperator extends AbstractOperator { export class OrOperator extends AbstractOperator {
/** /**
* this method return a promise containing the result of the check. * this method return a promise containing the result of the check.
...@@ -92,6 +83,3 @@ class OrOperator extends AbstractOperator { ...@@ -92,6 +83,3 @@ class OrOperator extends AbstractOperator {
} }
assignToNamespace('Monster.Constraints', OrOperator);
export {Monster, OrOperator}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/** /**
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {AbstractConstraint} from "./abstract.js"; import {AbstractConstraint} from "./abstract.js";
/** /**
...@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -13,27 +13,16 @@ import {AbstractConstraint} from "./abstract.js";
* *
* The valid constraint allows an always valid query to be performed. this constraint is mainly intended for testing. * The valid constraint allows an always valid query to be performed. this constraint is mainly intended for testing.
* *
* You can call the method via the monster namespace `new Monster.Constraint.Valid()`.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
* new Monster.Constraint.Valid();
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js';
* new Valid(); * new Valid();
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/constraints/valid.js'; * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.js';
* *
* new Valid().isValid() * new Valid().isValid()
* .then(()=>console.log(true)) * .then(()=>console.log(true))
...@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js"; ...@@ -45,7 +34,7 @@ import {AbstractConstraint} from "./abstract.js";
* @memberOf Monster.Constraints * @memberOf Monster.Constraints
* @summary A constraint that always valid * @summary A constraint that always valid
*/ */
class Valid extends AbstractConstraint { export class Valid extends AbstractConstraint {
/** /**
* this method return a promise containing the result of the check. * this method return a promise containing the result of the check.
...@@ -58,6 +47,3 @@ class Valid extends AbstractConstraint { ...@@ -58,6 +47,3 @@ class Valid extends AbstractConstraint {
} }
} }
assignToNamespace('Monster.Constraints', Valid);
export {Monster, Valid}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {isFunction, isObject, isString} from "../types/is.js"; import {isFunction, isObject, isString} from "../types/is.js";
import {validateString} from "../types/validate.js"; import {validateString} from "../types/validate.js";
import {clone} from "../util/clone.js"; import {clone} from "../util/clone.js";
...@@ -23,20 +23,9 @@ export const PARENT = '^'; ...@@ -23,20 +23,9 @@ export const PARENT = '^';
* Either a simple definition `a.b.c` or a template `${a.b.c}` can be specified as the path. * Either a simple definition `a.b.c` or a template `${a.b.c}` can be specified as the path.
* Key and value can be either a definition or a template. The key does not have to be defined. * Key and value can be either a definition or a template. The key does not have to be defined.
* *
* You can call the method via the monster namespace `Monster.Data.buildMap()`.
*
* ```
* <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
* console.log(Monster.Data.buildMap())
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js'; * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
* console.log(buildMap()) * console.log(buildMap())
* </script> * </script>
* ``` * ```
...@@ -47,7 +36,7 @@ export const PARENT = '^'; ...@@ -47,7 +36,7 @@ export const PARENT = '^';
* *
* @example * @example
* *
* import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js'; * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
* // a typical data structure as reported by an api * // a typical data structure as reported by an api
* *
* let map; * let map;
...@@ -125,7 +114,7 @@ export const PARENT = '^'; ...@@ -125,7 +114,7 @@ export const PARENT = '^';
* @throws {TypeError} value is neither a string nor a function * @throws {TypeError} value is neither a string nor a function
* @throws {TypeError} the selector callback must return a map * @throws {TypeError} the selector callback must return a map
*/ */
function buildMap(subject, selector, valueTemplate, keyTemplate, filter) { export function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
return assembleParts(subject, selector, filter, function (v, k, m) { return assembleParts(subject, selector, filter, function (v, k, m) {
k = build(v, keyTemplate, k); k = build(v, keyTemplate, k);
v = build(v, valueTemplate); v = build(v, valueTemplate);
...@@ -143,7 +132,7 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) { ...@@ -143,7 +132,7 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
* @return {Map} * @return {Map}
* @throws {TypeError} selector is neither a string nor a function * @throws {TypeError} selector is neither a string nor a function
*/ */
function assembleParts(subject, selector, filter, callback) { export function assembleParts(subject, selector, filter, callback) {
const result = new Map(); const result = new Map();
...@@ -261,7 +250,7 @@ function buildFlatMap(subject, selector, key, parentMap) { ...@@ -261,7 +250,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
* Alternatively to a string selector a callback can be specified. this must return a map. * Alternatively to a string selector a callback can be specified. this must return a map.
* *
* @example * @example
* import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildmap.js'; * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildmap.js';
* *
* let obj = { * let obj = {
* "data": [ * "data": [
...@@ -427,7 +416,3 @@ function build(subject, definition, defaultValue) { ...@@ -427,7 +416,3 @@ function build(subject, definition, defaultValue) {
return definition; return definition;
} }
assignToNamespace('Monster.Data', buildMap);
export {Monster, buildMap, assembleParts}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {isArray, isObject} from "../types/is.js"; import {isArray, isObject} from "../types/is.js";
import {Node} from "../types/node.js"; import {Node} from "../types/node.js";
import {NodeList} from "../types/nodelist.js"; import {NodeList} from "../types/nodelist.js";
...@@ -34,20 +34,9 @@ const rootSymbol = Symbol('root'); ...@@ -34,20 +34,9 @@ const rootSymbol = Symbol('root');
/** /**
* With the help of the function `buildTree()`, nodes can be easily created from data objects. * With the help of the function `buildTree()`, nodes can be easily created from data objects.
* *
* You can call the method via the monster namespace `Monster.Data.buildTree()`.
*
* ```
* <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/buildtree.js';
* Monster.Data.buildTree()
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {buildTree} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/buildtree.js'; * import {buildTree} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/buildtree.js';
* buildTree() * buildTree()
* </script> * </script>
* ``` * ```
...@@ -64,7 +53,7 @@ const rootSymbol = Symbol('root'); ...@@ -64,7 +53,7 @@ const rootSymbol = Symbol('root');
* @throws {Error} the object has no value for the specified id * @throws {Error} the object has no value for the specified id
* @since 1.26.0 * @since 1.26.0
*/ */
function buildTree(subject, selector, idKey, parentIDKey, options) { export function buildTree(subject, selector, idKey, parentIDKey, options) {
const nodes = new Map; const nodes = new Map;
...@@ -123,7 +112,3 @@ function buildTree(subject, selector, idKey, parentIDKey, options) { ...@@ -123,7 +112,3 @@ function buildTree(subject, selector, idKey, parentIDKey, options) {
return list; return list;
} }
assignToNamespace('Monster.Data', buildTree);
export {Monster, buildTree}
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
*/ */
import {internalSymbol} from "../constants.js"; import {internalSymbol} from "../constants.js";
import {assignToNamespace, Monster} from '../namespace.js';
import {Base} from "../types/base.js"; import {Base} from "../types/base.js";
import {parseDataURL} from "../types/dataurl.js"; import {parseDataURL} from "../types/dataurl.js";
import {isString} from "../types/is.js"; import {isString} from "../types/is.js";
...@@ -27,27 +27,16 @@ const internalDataSymbol = Symbol('internalData'); ...@@ -27,27 +27,16 @@ const internalDataSymbol = Symbol('internalData');
* The datasource class is the basis for dealing with different data sources. * The datasource class is the basis for dealing with different data sources.
* It provides a unified interface for accessing data * It provides a unified interface for accessing data
* *
* You can create an object of this class using the monster namespace `Monster.Data.Datasource()`.
*
* ```
* <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
* Monster.Data.Datasource()
* </script>
* ```
*
* Alternatively you can import the class directly
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource.js'; * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource.js';
* new Datasource() * new Datasource()
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource.js' * import {Datasource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource.js'
* *
* class MyDatasource extends Datasource { * class MyDatasource extends Datasource {
* *
...@@ -60,7 +49,7 @@ const internalDataSymbol = Symbol('internalData'); ...@@ -60,7 +49,7 @@ const internalDataSymbol = Symbol('internalData');
* @memberOf Monster.Data * @memberOf Monster.Data
* @summary The datasource class encapsulates the access to data objects. * @summary The datasource class encapsulates the access to data objects.
*/ */
class Datasource extends Base { export class Datasource extends Base {
/** /**
* *
...@@ -240,7 +229,3 @@ function parseOptionsJSON(data) { ...@@ -240,7 +229,3 @@ function parseOptionsJSON(data) {
return {}; return {};
} }
assignToNamespace('Monster.Data', Datasource);
export {Monster, Datasource}
'use strict';
/**
* Namespace for datasources
*
* @namespace Monster.Data.Datasource
* @memberOf Monster.Data
* @author schukai GmbH
*/
/**
* @private
* @type {string}
*/
export const namespace = "Monster.Data.Datasource";
\ No newline at end of file
...@@ -13,27 +13,18 @@ import {Pipe} from "../pipe.js"; ...@@ -13,27 +13,18 @@ import {Pipe} from "../pipe.js";
import {WriteError} from "./restapi/writeerror.js"; import {WriteError} from "./restapi/writeerror.js";
/** /**
* You can create an object of this class using the monster namespace `Monster.Data.Datasource.RestAPI()`. * The RestAPI is a class that enables a REST API server.
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/restapi.js';
* Monster.Data.Datasource.RestAPI()
* </script>
* ```
*
* Alternatively you can import the class directly
*
* ```
* <script type="module">
* import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/restapi.js';
* new RestAPI() * new RestAPI()
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/restapi.js'; * import {RestAPI} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/restapi.js';
* *
* const ds = new RestAPI({ * const ds = new RestAPI({
* url: 'https://httpbin.org/get' * url: 'https://httpbin.org/get'
...@@ -50,7 +41,7 @@ import {WriteError} from "./restapi/writeerror.js"; ...@@ -50,7 +41,7 @@ import {WriteError} from "./restapi/writeerror.js";
* @memberOf Monster.Data.Datasource * @memberOf Monster.Data.Datasource
* @summary The LocalStorage class encapsulates the access to data objects. * @summary The LocalStorage class encapsulates the access to data objects.
*/ */
class RestAPI extends Datasource { export class RestAPI extends Datasource {
/** /**
* *
...@@ -260,7 +251,3 @@ class RestAPI extends Datasource { ...@@ -260,7 +251,3 @@ class RestAPI extends Datasource {
* @memberOf Monster.Data * @memberOf Monster.Data
* @see Monster.Data.Datasource * @see Monster.Data.Datasource
*/ */
assignToNamespace('Monster.Data.Datasource', RestAPI);
export {Monster, RestAPI}
...@@ -15,7 +15,7 @@ import {assignToNamespace, Monster} from '../../../namespace.js'; ...@@ -15,7 +15,7 @@ import {assignToNamespace, Monster} from '../../../namespace.js';
* @memberOf Monster.Data.Datasource.RestAPI * @memberOf Monster.Data.Datasource.RestAPI
* @summary the error is thrown by the rest api in case of error * @summary the error is thrown by the rest api in case of error
*/ */
class WriteError extends Error { export class WriteError extends Error {
/** /**
* *
* @param {string} message * @param {string} message
...@@ -43,7 +43,3 @@ class WriteError extends Error { ...@@ -43,7 +43,3 @@ class WriteError extends Error {
return this[internalSymbol]['validation'] return this[internalSymbol]['validation']
} }
} }
assignToNamespace('Monster.Data.Datasource.RestAPI', WriteError);
export {Monster, WriteError}
\ No newline at end of file
...@@ -13,30 +13,21 @@ import {Datasource} from "../datasource.js"; ...@@ -13,30 +13,21 @@ import {Datasource} from "../datasource.js";
* @private * @private
* @type {symbol} * @type {symbol}
*/ */
const storageObjectSymbol = Symbol('storageObject'); export const storageObjectSymbol = Symbol('storageObject');
/** /**
* You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage()`. * The class represents a record.
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage.js';
* Monster.Data.Datasource.Storage()
* </script>
* ```
*
* Alternatively you can import the class directly
*
* ```
* <script type="module">
* import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage.js';
* new Storage() * new Storage()
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage.js'; * import {Storage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage.js';
* *
* new Datasource(); * new Datasource();
* *
...@@ -45,7 +36,7 @@ const storageObjectSymbol = Symbol('storageObject'); ...@@ -45,7 +36,7 @@ const storageObjectSymbol = Symbol('storageObject');
* @memberOf Monster.Data.Datasource * @memberOf Monster.Data.Datasource
* @summary The Storage class encapsulates the access to data objects over WebStorageAPI. * @summary The Storage class encapsulates the access to data objects over WebStorageAPI.
*/ */
class Storage extends Datasource { export class Storage extends Datasource {
/** /**
* *
...@@ -125,7 +116,3 @@ class Storage extends Datasource { ...@@ -125,7 +116,3 @@ class Storage extends Datasource {
} }
} }
assignToNamespace('Monster.Data.Datasource', Storage);
export {Monster, Storage, storageObjectSymbol}
...@@ -10,24 +10,12 @@ import {getGlobalObject} from "../../../types/global.js"; ...@@ -10,24 +10,12 @@ import {getGlobalObject} from "../../../types/global.js";
import {Datasource} from "../../datasource.js"; import {Datasource} from "../../datasource.js";
import {Storage, storageObjectSymbol} from "../storage.js"; import {Storage, storageObjectSymbol} from "../storage.js";
/** /**
* * The LocalStorage Datasource provides a data store in the browser localStorage.
*
* You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage.LocalStorage()`.
*
* ```
* <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js';
* Monster.Data.Datasource.Storage.LocalStorage()
* </script>
* ```
*
* Alternatively you can import the class directly
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {LocalStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage/localstorage.js'; * import {LocalStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage/localstorage.js';
* new LocalStorage() * new LocalStorage()
* </script> * </script>
* ``` * ```
...@@ -37,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js"; ...@@ -37,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js";
* @memberOf Monster.Data.Datasource.Storage * @memberOf Monster.Data.Datasource.Storage
* @summary The LocalStorage class encapsulates the access to data objects. * @summary The LocalStorage class encapsulates the access to data objects.
*/ */
class LocalStorage extends Storage { export class LocalStorage extends Storage {
/** /**
* @throws {Error} this method must be implemented by derived classes. * @throws {Error} this method must be implemented by derived classes.
...@@ -59,6 +47,3 @@ class LocalStorage extends Storage { ...@@ -59,6 +47,3 @@ class LocalStorage extends Storage {
} }
assignToNamespace('Monster.Data.Datasource.Storage', LocalStorage);
export {Monster, LocalStorage}
'use strict';
/**
* Namespace for storages
*
* @namespace Monster.Data.Datasource.Storage
* @memberOf Monster.Data.Datasource
* @author schukai GmbH
*/
/**
* @private
* @type {string}
*/
export const namespace = "Monster.Data.Datasource.Storage";
\ No newline at end of file
...@@ -11,20 +11,11 @@ import {Datasource} from "../../datasource.js"; ...@@ -11,20 +11,11 @@ import {Datasource} from "../../datasource.js";
import {Storage, storageObjectSymbol} from "../storage.js"; import {Storage, storageObjectSymbol} from "../storage.js";
/** /**
* You can create an object of this class using the monster namespace `Monster.Data.Datasource.Storage.SessionStorage()`. * The SessionStorage class provides a data source that uses the SessionStorage API on the client.
* *
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {SessionStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/datasource/storage/sessionstorage.js';
* Monster.Data.Datasource.Storage.SessionStorage()
* </script>
* ```
*
* Alternatively you can import the class directly
*
* ```
* <script type="module">
* import {SessionStorage} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/datasource/storage/sessionstorage.js';
* new SessionStorage() * new SessionStorage()
* </script> * </script>
* ``` * ```
...@@ -34,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js"; ...@@ -34,7 +25,7 @@ import {Storage, storageObjectSymbol} from "../storage.js";
* @memberOf Monster.Data.Datasource.Storage * @memberOf Monster.Data.Datasource.Storage
* @summary The LocalStorage class encapsulates the access to data objects. * @summary The LocalStorage class encapsulates the access to data objects.
*/ */
class SessionStorage extends Storage { export class SessionStorage extends Storage {
/** /**
* @throws {Error} this method must be implemented by derived classes. * @throws {Error} this method must be implemented by derived classes.
...@@ -56,6 +47,3 @@ class SessionStorage extends Storage { ...@@ -56,6 +47,3 @@ class SessionStorage extends Storage {
} }
} }
assignToNamespace('Monster.Data.Datasource.Storage', SessionStorage);
export {Monster, SessionStorage}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @author schukai GmbH * @author schukai GmbH
*/ */
import {assignToNamespace, Monster} from '../namespace.js';
import {isArray, isObject} from "../types/is.js"; import {isArray, isObject} from "../types/is.js";
import {typeOf} from "../types/typeof.js"; import {typeOf} from "../types/typeof.js";
...@@ -13,27 +13,16 @@ import {typeOf} from "../types/typeof.js"; ...@@ -13,27 +13,16 @@ import {typeOf} from "../types/typeof.js";
* *
* The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object. * The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object.
* *
* You can call the method via the monster namespace `Monster.Data.Diff()`.
*
* ``` * ```
* <script type="module"> * <script type="module">
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/monster.js'; * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/diff.js';
* Monster.Data.Diff(a, b)
* </script>
* ```
*
* Alternatively, you can also integrate this function individually.
*
* ```
* <script type="module">
* import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/diff.js';
* Diff(a, b) * Diff(a, b)
* </script> * </script>
* ``` * ```
* *
* @example * @example
* *
* import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.31.0/dist/modules/data/diff.js'; * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/data/diff.js';
* *
* // given are two objects x and y. * // given are two objects x and y.
* *
...@@ -80,7 +69,7 @@ import {typeOf} from "../types/typeof.js"; ...@@ -80,7 +69,7 @@ import {typeOf} from "../types/typeof.js";
* @copyright schukai GmbH * @copyright schukai GmbH
* @memberOf Monster.Data * @memberOf Monster.Data
*/ */
function diff(first, second) { export function diff(first, second) {
return doDiff(first, second) return doDiff(first, second)
} }
...@@ -244,6 +233,3 @@ function getOperator(a, b) { ...@@ -244,6 +233,3 @@ function getOperator(a, b) {
return operator; return operator;
} }
assignToNamespace('Monster.Data', diff);
export {Monster, diff}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment