UNPKG

angular-odata

Version:

Client side OData typescript library for Angular

70 lines 8.17 kB
import { Strings } from '../utils'; import { ODataAnnotatable } from './annotation'; export class ODataSchemaElement extends ODataAnnotatable { name; schema; constructor(config, schema) { super(config); this.schema = schema; this.name = config.name; } get api() { return this.schema.api; } /** * Create a nicer looking title. * Titleize is meant for creating pretty output. * @param term The term of the annotation to find. * @returns The titleized string. */ titleize(term) { return (term && this.annotatedValue(term)) ?? Strings.titleCase(this.name); } /** * Returns a full type of the structured type including the namespace/alias. * @param alias Use the alias of the namespace instead of the namespace. * @returns The string representation of the type. */ type({ alias = false } = {}) { return `${alias ? this.schema.alias : this.schema.namespace}.${this.name}`; } /** * Returns a boolean indicating if the structured type is of the given type. * @param type String representation of the type * @returns True if the callable is type of the given type */ isTypeOf(element) { const names = [`${this.schema.namespace}.${this.name}`]; if (this.schema.alias) names.push(`${this.schema.alias}.${this.name}`); return names.includes(element.type()); } /** * Returns a boolean indicating if the structured type is a subtype of the given type. * @param type String representation of the type * @returns True if the callable is type of the given type */ isSubtypeOf(element) { if (this.isTypeOf(element)) return true; return false; } /** * Returns a boolean indicating if the structured type is a supertype of the given type. * @param type String representation of the type * @returns True if the callable is type of the given type */ isSupertypeOf(element) { if (this.isTypeOf(element)) return true; return false; } } export class ODataParserSchemaElement extends ODataSchemaElement { parser; constructor(config, schema, parser) { super(config, schema); this.parser = parser; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBQ3RELElBQUksQ0FBUztJQUNiLE1BQU0sQ0FBYztJQUVwQixZQUNFLE1BQTBELEVBQzFELE1BQW1CO1FBRW5CLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsSUFBc0I7UUFDN0IsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxLQUEwQixFQUFFO1FBQzlDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBMkI7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUEyQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUEyQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBR1gsU0FBUSxrQkFBa0I7SUFDMUIsTUFBTSxDQUFJO0lBQ1YsWUFDRSxNQUEwRCxFQUMxRCxNQUFtQixFQUNuQixNQUFTO1FBRVQsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9uQ29uZmlnLCBQYXJzZXIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgT0RhdGFBbm5vdGF0YWJsZSB9IGZyb20gJy4vYW5ub3RhdGlvbic7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhU2NoZW1hRWxlbWVudCBleHRlbmRzIE9EYXRhQW5ub3RhdGFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNjaGVtYTogT0RhdGFTY2hlbWE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29uZmlnOiB7IGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdOyBuYW1lOiBzdHJpbmcgfSxcbiAgICBzY2hlbWE6IE9EYXRhU2NoZW1hLFxuICApIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMuc2NoZW1hID0gc2NoZW1hO1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lO1xuICB9XG5cbiAgZ2V0IGFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWEuYXBpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5pY2VyIGxvb2tpbmcgdGl0bGUuXG4gICAqIFRpdGxlaXplIGlzIG1lYW50IGZvciBjcmVhdGluZyBwcmV0dHkgb3V0cHV0LlxuICAgKiBAcGFyYW0gdGVybSBUaGUgdGVybSBvZiB0aGUgYW5ub3RhdGlvbiB0byBmaW5kLlxuICAgKiBAcmV0dXJucyBUaGUgdGl0bGVpemVkIHN0cmluZy5cbiAgICovXG4gIHRpdGxlaXplKHRlcm0/OiBzdHJpbmcgfCBSZWdFeHApOiBzdHJpbmcge1xuICAgIHJldHVybiAodGVybSAmJiB0aGlzLmFubm90YXRlZFZhbHVlKHRlcm0pKSA/PyBTdHJpbmdzLnRpdGxlQ2FzZSh0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBmdWxsIHR5cGUgb2YgdGhlIHN0cnVjdHVyZWQgdHlwZSBpbmNsdWRpbmcgdGhlIG5hbWVzcGFjZS9hbGlhcy5cbiAgICogQHBhcmFtIGFsaWFzIFVzZSB0aGUgYWxpYXMgb2YgdGhlIG5hbWVzcGFjZSBpbnN0ZWFkIG9mIHRoZSBuYW1lc3BhY2UuXG4gICAqIEByZXR1cm5zIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGUuXG4gICAqL1xuICB0eXBlKHsgYWxpYXMgPSBmYWxzZSB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICByZXR1cm4gYCR7YWxpYXMgPyB0aGlzLnNjaGVtYS5hbGlhcyA6IHRoaXMuc2NoZW1hLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1R5cGVPZihlbGVtZW50OiBPRGF0YVNjaGVtYUVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBuYW1lcyA9IFtgJHt0aGlzLnNjaGVtYS5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLnNjaGVtYS5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLnNjaGVtYS5hbGlhc30uJHt0aGlzLm5hbWV9YCk7XG4gICAgcmV0dXJuIG5hbWVzLmluY2x1ZGVzKGVsZW1lbnQudHlwZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgYSBzdWJ0eXBlIG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGVcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY2FsbGFibGUgaXMgdHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgaXNTdWJ0eXBlT2YoZWxlbWVudDogT0RhdGFTY2hlbWFFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNUeXBlT2YoZWxlbWVudCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgYSBzdXBlcnR5cGUgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1N1cGVydHlwZU9mKGVsZW1lbnQ6IE9EYXRhU2NoZW1hRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVHlwZU9mKGVsZW1lbnQpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhUGFyc2VyU2NoZW1hRWxlbWVudDxcbiAgRSxcbiAgUCBleHRlbmRzIFBhcnNlcjxFPixcbj4gZXh0ZW5kcyBPRGF0YVNjaGVtYUVsZW1lbnQge1xuICBwYXJzZXI6IFA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZzogeyBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTsgbmFtZTogc3RyaW5nIH0sXG4gICAgc2NoZW1hOiBPRGF0YVNjaGVtYSxcbiAgICBwYXJzZXI6IFAsXG4gICkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgfVxufVxuIl19