Skip to content

MIT LicenseTypeScriptnpm

The foundation package of the ziegel Enterprise TypeScript Framework. Provides core functionality and utilities powering all other ziegel packages.

Foundation: This package is the backbone of the ziegel ecosystem, delivering essential building blocks for enterprise-grade TypeScript applications.

🚀 Overview

@breadstone/ziegel-core provides:

  • Linq: Powerful LINQ-style querying for arrays and iterables
  • Generic Collections: Queue, Stack, Dictionary, LinkedList, Bag, Heap, Set, KeyValuePair
  • Exception System: Structured exception hierarchy for robust applications
  • Extensions: Extension methods for Array, String, Number, Date
  • Color System: Color manipulation and conversion in various color spaces
  • Type Utilities: Advanced TypeScript types and guards
  • Security & Crypto: Hash algorithms and crypto providers
  • Time Management: DateTime, TimeSpan, DateRange
  • Reactive Patterns: Disposables, Events, Observables

📦 Installation

bash
npm install @breadstone/ziegel-core
# or
yarn add @breadstone/ziegel-core

🧩 Features & Examples

Linq

typescript
import { linq } from '@breadstone/ziegel-core';

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sum = linq(numbers)
  .where((x) => x % 2 === 0)
  .select((x) => x * 2)
  .sum();

Available operations:

  • Filtering: where, distinct, except, intersect, union
  • Projection: select, selectMany, map, flatMap
  • Aggregation: aggregate, sum, average, min, max, count
  • Ordering: orderBy, orderByDescending, thenBy, reverse
  • Partitioning: take, skip, takeWhile, skipWhile, first, last, single
  • Set Operations: concat, merge, repeat, defaultIfEmpty
  • Grouping: groupBy, join, groupJoin
  • Resolution: toArray, toMap, asArray, joinStrings

Collections

typescript
import { Queue, Stack, Dictionary, LinkedList } from '@breadstone/ziegel-core';
const queue = new Queue<string>();
queue.enqueue('first');
queue.enqueue('second');
const item = queue.dequeue(); // 'first'

const stack = new Stack<number>();
stack.push(1);
stack.push(2);
const top = stack.pop(); // 2

const dict = new Dictionary<string, number>();
dict.add('one', 1);
const value = dict.get('one');

Extensions

typescript
import '@breadstone/ziegel-core/Extensions';
[1, 2, 3].shuffle();
'Hello World'.capitalize();
(3.14159).round(2);
new Date().addDays(7);

Color System

typescript
import { Color, Colors } from '@breadstone/ziegel-core';
const red = Color.fromRgb(255, 0, 0);
const lighter = red.lighten(0.2);
const complement = red.complement();

Exception System

typescript
import { ArgumentNullException, NotImplementedException } from '@breadstone/ziegel-core';
throw new ArgumentNullException('param');
throw new NotImplementedException();

📚 Package import points

typescript
import {
  // Collections
  Bag,
  Heap,
  IIndexer,
  INumberIndexer,
  IStringIndexer,
  KeyValuePair,
  LinkedList,
  Queue,
  Set,
  Stack,

  // Decorators
  Delay,
  Memoize,

  // Diagnostics
  Stopwatch,

  // Events
  EventArgs,
  IEventArgs,
  ValueEventArgs,
  Event,
  EventInvoker,
  IEventCallback,

  // Exceptions
  ArgumentException,
  ArgumentFormatException,
  ArgumentNullException,
  ArgumentOutOfRangeException,
  ArgumentTypeException,
  DuplicateKeyException,
  Exception,
  IndexOutOfRangeException,
  InvalidOperationException,
  KeyNotFoundException,
  NotFoundException,
  NotImplementedException,
  NotSupportedException,
  NullReferenceException,
  OverflowException,

  // Extensions
  AnyExtensions,
  ArrayExtensions,
  ColorExtensions,
  DateExtensions,
  FunctionConstructorExtensions,
  FunctionExtensions,
  MapExtensions,
  NumberConstructorExtensions,
  NumberExtensions,
  ObjectExtensions,
  StringConstructorExtensions,
  StringExtensions,

  // Formatting
  FormatException,
  Formats,
  IFormat,
  IFormatProvider,
  IFormattable,
  IStandardFormatter,

  // Core Interfaces
  IConstructable,
  IDisposable,
  IEquatable,
  IObservable,
  IObserver,
  IStringable,
  ISupport,

  // LINQ2
  linq, // and all LINQ operations

  // Measurement
  Range,
  IRange,
  NumberRange,
  RangeLike,
  isRangeLike,

  // Media & Colors
  Color,
  Colors,
  CMYK,
  isCMYK,
  HSB,
  isHSB,
  HSL,
  isHSL,
  ICMYK,
  IHSB,
  IHSL,
  IRGB,
  IYUV,
  RGB,
  isRGB,
  YUV,
  isYUV,

  // Objects
  Console,
  Defaults,
  Enum,
  Guid,
  Lazy,
  Random,
  Version,

  // Reactive
  AnonymousDisposable,
  CompositeDisposable,
  Disposable,
  ICancelable,

  // Resources
  registerResource,
  SR,

  // RxJS Extensions
  fromDisposable,
  ObservableLike,
  isObservableLike,

  // Security
  HashAlgorithm,
  MD5,
  MD5CryptoServiceProvider,
  SHA1,
  SHA1CryptoServiceProvider,

  // Text
  RegexPatterns,
  StringBuilder,
  StringFormatter,

  // Threading
  Deferred,

  // Time
  DateRange,
  DateTime,
  DateTimeKind,
  DateTimeRange,
  DAY_OF_WEEK,
  DayOfWeek,
  DAY_OF_WEEK_NAMES,
  DayOfWeekName,
  ITimeSpan,
  Month,
  TimeSpan,
  TimeSpanRange,

  // Timers
  Interval,

  // Types
  Action,
  Action1,
  Action2,
  Action3,
  Action4,
  Action5,
  Action6,
  Action7,
  Action8,
  Class,
  isClass,
  Constructor,
  isConstructor,
  DeepPartial,
  DeepRequired,
  Diff,
  Func,
  Func1,
  Func2,
  Func3,
  Func4,
  Func5,
  Func6,
  Func7,
  Func8,
  Indexable,
  JsonArray,
  JsonObject,
  JsonPrimitive,
  JsonValue,
  MatchingKeys,
  MemberLaves,
  MemberPaths,
  Merge,
  NonEmptyArray,
  isNonEmptyArray,
  Nullable,
  isNotNullable,
  isNullable,
  otherwiseNullable,
  Omit,
  NonOptional,
  NonUndefined,
  Optional,
  Undefinable,
  isNotOptional,
  isNotUndefined,
  isOptional,
  isUndefined,
  optionalOtherwise,
  Overwrite,
  Predicate,
  Prototypeable,
  isPrototypeable,
  ReturnValueConstraint,
  ReturnValueErrorConstraint,
  Unwrap,
  WithRequired,

  // Utilities & Validation
  Guard,
  panic,
  TypeGuard,
  using,
  PasswordScore,
  PasswordStrengthValidator,
} from '@breadstone/ziegel-core';

📚 API Documentation

For details, see the generated API docs or the source code.

License

MIT

Issues

Please report bugs and feature requests in the issue tracker.


Part of the ziegel Enterprise TypeScript Framework

Released under the MIT License.