the-best-sort 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,22 +1,22 @@
1
- interface ISortable {
1
+ export interface ISortable {
2
2
  getValue(): number;
3
3
  toString(): string;
4
4
  }
5
- interface IObserver<T> {
5
+ export interface IObserver<T> {
6
6
  update(event: SortingEvent<T>): void;
7
7
  }
8
- interface ISubject<T> {
8
+ export interface ISubject<T> {
9
9
  attach(observer: IObserver<T>): void;
10
10
  detach(observer: IObserver<T>): void;
11
11
  notify(event: SortingEvent<T>): void;
12
12
  }
13
- declare enum EventType {
13
+ export declare enum EventType {
14
14
  STARTED = "STARTED",
15
15
  ELEMENT_SORTED = "ELEMENT_SORTED",
16
16
  COMPLETED = "COMPLETED",
17
17
  ERROR = "ERROR"
18
18
  }
19
- interface SortingEvent<T> {
19
+ export interface SortingEvent<T> {
20
20
  type: EventType;
21
21
  element?: T;
22
22
  index?: number;
@@ -24,34 +24,34 @@ interface SortingEvent<T> {
24
24
  delay?: number;
25
25
  metadata?: Record<string, any>;
26
26
  }
27
- interface ISortingStrategy<T extends ISortable> {
27
+ export interface ISortingStrategy<T extends ISortable> {
28
28
  sort(array: T[], context: SortingContext<T>): Promise<T[]>;
29
29
  getName(): string;
30
30
  getDescription(): string;
31
31
  }
32
- interface ISortingStrategyFactory<T extends ISortable> {
32
+ export interface ISortingStrategyFactory<T extends ISortable> {
33
33
  createStrategy(type: StrategyType): ISortingStrategy<T>;
34
34
  registerStrategy(type: StrategyType, strategy: ISortingStrategy<T>): void;
35
35
  listAvailableStrategies(): string[];
36
36
  }
37
- declare enum StrategyType {
37
+ export declare enum StrategyType {
38
38
  DEFAULT = "DEFAULT"
39
39
  }
40
- interface SortingConfig {
40
+ export interface SortingConfig {
41
41
  baseDelayMs: number;
42
42
  enableLogging: boolean;
43
43
  logPrefix: string;
44
44
  showTimestamps: boolean;
45
45
  colorize: boolean;
46
46
  }
47
- declare class SortableNumber implements ISortable {
47
+ export declare class SortableNumber implements ISortable {
48
48
  private readonly value;
49
49
  constructor(value: number);
50
50
  getValue(): number;
51
51
  toString(): string;
52
52
  toDetailedString(): string;
53
53
  }
54
- declare class ConfigurationManager {
54
+ export declare class ConfigurationManager {
55
55
  private static instance;
56
56
  private config;
57
57
  private constructor();
@@ -60,10 +60,7 @@ declare class ConfigurationManager {
60
60
  updateConfig(partial: Partial<SortingConfig>): void;
61
61
  resetToDefaults(): void;
62
62
  }
63
- declare function Measure(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
64
- declare function Log(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
65
- declare function ValidateArray(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
66
- declare class SortingContext<T extends ISortable> implements ISubject<T> {
63
+ export declare class SortingContext<T extends ISortable> implements ISubject<T> {
67
64
  private strategyName;
68
65
  private observers;
69
66
  private eventHistory;
@@ -80,11 +77,11 @@ declare class SortingContext<T extends ISortable> implements ISubject<T> {
80
77
  getElementCount(): number;
81
78
  getStrategyName(): string;
82
79
  }
83
- declare class ConsoleLoggingObserver<T extends ISortable> implements IObserver<T> {
80
+ export declare class ConsoleLoggingObserver<T extends ISortable> implements IObserver<T> {
84
81
  private config;
85
82
  update(event: SortingEvent<T>): void;
86
83
  }
87
- declare class StatisticsObserver<T extends ISortable> implements IObserver<T> {
84
+ export declare class StatisticsObserver<T extends ISortable> implements IObserver<T> {
88
85
  private startTime;
89
86
  private endTime;
90
87
  private sortedElements;
@@ -95,14 +92,14 @@ declare class StatisticsObserver<T extends ISortable> implements IObserver<T> {
95
92
  printStatistics(): void;
96
93
  reset(): void;
97
94
  }
98
- interface SortingStatistics {
95
+ export interface SortingStatistics {
99
96
  duration: number;
100
97
  sortedElements: number;
101
98
  totalDelay: number;
102
99
  averageDelay: number;
103
100
  eventCounts: Map<EventType, number>;
104
101
  }
105
- declare class HistoryObserver<T extends ISortable> implements IObserver<T> {
102
+ export declare class HistoryObserver<T extends ISortable> implements IObserver<T> {
106
103
  private history;
107
104
  update(event: SortingEvent<T>): void;
108
105
  getHistory(): Array<{
@@ -112,18 +109,18 @@ declare class HistoryObserver<T extends ISortable> implements IObserver<T> {
112
109
  printHistory(): void;
113
110
  clear(): void;
114
111
  }
115
- declare abstract class AbstractSortingStrategy<T extends ISortable> implements ISortingStrategy<T> {
112
+ export declare abstract class AbstractSortingStrategy<T extends ISortable> implements ISortingStrategy<T> {
116
113
  abstract sort(array: T[], context: SortingContext<T>): Promise<T[]>;
117
114
  abstract getName(): string;
118
115
  abstract getDescription(): string;
119
116
  protected getConfig(): Readonly<SortingConfig>;
120
117
  }
121
- declare class DefaultStrategy<T extends ISortable> extends AbstractSortingStrategy<T> {
118
+ export declare class DefaultStrategy<T extends ISortable> extends AbstractSortingStrategy<T> {
122
119
  sort(array: T[], context: SortingContext<T>): Promise<T[]>;
123
120
  getName(): string;
124
121
  getDescription(): string;
125
122
  }
126
- declare class ConcreteSortingStrategyFactory<T extends ISortable> implements ISortingStrategyFactory<T> {
123
+ export declare class ConcreteSortingStrategyFactory<T extends ISortable> implements ISortingStrategyFactory<T> {
127
124
  private strategies;
128
125
  constructor();
129
126
  createStrategy(type: StrategyType): ISortingStrategy<T>;
@@ -131,7 +128,7 @@ declare class ConcreteSortingStrategyFactory<T extends ISortable> implements ISo
131
128
  listAvailableStrategies(): string[];
132
129
  hasStrategy(type: StrategyType): boolean;
133
130
  }
134
- declare class SorterBuilder<T extends ISortable> {
131
+ export declare class SorterBuilder<T extends ISortable> {
135
132
  private array?;
136
133
  private strategy?;
137
134
  private observers;
@@ -145,7 +142,7 @@ declare class SorterBuilder<T extends ISortable> {
145
142
  build(): ArraySorter<T>;
146
143
  reset(): this;
147
144
  }
148
- declare class ArraySorter<T extends ISortable> {
145
+ export declare class ArraySorter<T extends ISortable> {
149
146
  private array;
150
147
  private strategy;
151
148
  private context;
@@ -156,23 +153,23 @@ declare class ArraySorter<T extends ISortable> {
156
153
  getContext(): SortingContext<T>;
157
154
  getEventHistory(): SortingEvent<T>[];
158
155
  }
159
- interface ICommand {
156
+ export interface ICommand {
160
157
  execute(): Promise<any>;
161
158
  getDescription(): string;
162
159
  }
163
- declare class ExecuteSortingCommand<T extends ISortable> implements ICommand {
160
+ export declare class ExecuteSortingCommand<T extends ISortable> implements ICommand {
164
161
  private sorter;
165
162
  constructor(sorter: ArraySorter<T>);
166
163
  execute(): Promise<T[]>;
167
164
  getDescription(): string;
168
165
  }
169
- declare class UpdateConfigCommand implements ICommand {
166
+ export declare class UpdateConfigCommand implements ICommand {
170
167
  private config;
171
168
  constructor(config: Partial<SortingConfig>);
172
169
  execute(): Promise<void>;
173
170
  getDescription(): string;
174
171
  }
175
- declare class CommandInvoker {
172
+ export declare class CommandInvoker {
176
173
  private commandQueue;
177
174
  private executedCommands;
178
175
  enqueueCommand(command: ICommand): void;
@@ -182,18 +179,18 @@ declare class CommandInvoker {
182
179
  clearQueue(): void;
183
180
  getExecutedCommands(): ICommand[];
184
181
  }
185
- declare abstract class AbstractSortingRunner<T extends ISortable> {
182
+ export declare abstract class AbstractSortingRunner<T extends ISortable> {
186
183
  run(array: T[], strategyType: StrategyType): Promise<T[]>;
187
184
  protected abstract beforeRun(): void;
188
185
  protected abstract afterRun(): void;
189
186
  protected buildSorter(builder: SorterBuilder<T>, array: T[], strategy: ISortingStrategy<T>): ArraySorter<T>;
190
187
  protected executeSorting(sorter: ArraySorter<T>): Promise<T[]>;
191
188
  }
192
- declare class LoggingSortingRunner<T extends ISortable> extends AbstractSortingRunner<T> {
189
+ export declare class LoggingSortingRunner<T extends ISortable> extends AbstractSortingRunner<T> {
193
190
  protected beforeRun(): void;
194
191
  protected afterRun(): void;
195
192
  }
196
- declare function demonstrateSorting(): Promise<void>;
197
- declare function demonstrateWithTemplateMethod(): Promise<void>;
198
- declare function demonstrateWithCustomConfig(): Promise<void>;
193
+ export declare function demonstrateSorting(): Promise<void>;
194
+ export declare function demonstrateWithTemplateMethod(): Promise<void>;
195
+ export declare function demonstrateWithCustomConfig(): Promise<void>;
199
196
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,17 +8,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LoggingSortingRunner = exports.AbstractSortingRunner = exports.CommandInvoker = exports.UpdateConfigCommand = exports.ExecuteSortingCommand = exports.ArraySorter = exports.SorterBuilder = exports.ConcreteSortingStrategyFactory = exports.DefaultStrategy = exports.AbstractSortingStrategy = exports.HistoryObserver = exports.StatisticsObserver = exports.ConsoleLoggingObserver = exports.SortingContext = exports.ConfigurationManager = exports.SortableNumber = exports.StrategyType = exports.EventType = void 0;
13
+ exports.demonstrateSorting = demonstrateSorting;
14
+ exports.demonstrateWithTemplateMethod = demonstrateWithTemplateMethod;
15
+ exports.demonstrateWithCustomConfig = demonstrateWithCustomConfig;
11
16
  var EventType;
12
17
  (function (EventType) {
13
18
  EventType["STARTED"] = "STARTED";
14
19
  EventType["ELEMENT_SORTED"] = "ELEMENT_SORTED";
15
20
  EventType["COMPLETED"] = "COMPLETED";
16
21
  EventType["ERROR"] = "ERROR";
17
- })(EventType || (EventType = {}));
22
+ })(EventType || (exports.EventType = EventType = {}));
18
23
  var StrategyType;
19
24
  (function (StrategyType) {
20
25
  StrategyType["DEFAULT"] = "DEFAULT";
21
- })(StrategyType || (StrategyType = {}));
26
+ })(StrategyType || (exports.StrategyType = StrategyType = {}));
22
27
  class SortableNumber {
23
28
  constructor(value) {
24
29
  this.value = value;
@@ -33,6 +38,7 @@ class SortableNumber {
33
38
  return `SortableNumber(${this.value})`;
34
39
  }
35
40
  }
41
+ exports.SortableNumber = SortableNumber;
36
42
  class ConfigurationManager {
37
43
  constructor() {
38
44
  this.config = {
@@ -65,6 +71,7 @@ class ConfigurationManager {
65
71
  };
66
72
  }
67
73
  }
74
+ exports.ConfigurationManager = ConfigurationManager;
68
75
  function Measure(target, propertyKey, descriptor) {
69
76
  const originalMethod = descriptor.value;
70
77
  descriptor.value = function (...args) {
@@ -174,6 +181,7 @@ class SortingContext {
174
181
  return this.strategyName;
175
182
  }
176
183
  }
184
+ exports.SortingContext = SortingContext;
177
185
  class ConsoleLoggingObserver {
178
186
  constructor() {
179
187
  this.config = ConfigurationManager.getInstance().getConfig();
@@ -201,6 +209,7 @@ class ConsoleLoggingObserver {
201
209
  }
202
210
  }
203
211
  }
212
+ exports.ConsoleLoggingObserver = ConsoleLoggingObserver;
204
213
  class StatisticsObserver {
205
214
  constructor() {
206
215
  this.startTime = 0;
@@ -256,6 +265,7 @@ class StatisticsObserver {
256
265
  this.events.clear();
257
266
  }
258
267
  }
268
+ exports.StatisticsObserver = StatisticsObserver;
259
269
  class HistoryObserver {
260
270
  constructor() {
261
271
  this.history = [];
@@ -279,11 +289,13 @@ class HistoryObserver {
279
289
  this.history = [];
280
290
  }
281
291
  }
292
+ exports.HistoryObserver = HistoryObserver;
282
293
  class AbstractSortingStrategy {
283
294
  getConfig() {
284
295
  return ConfigurationManager.getInstance().getConfig();
285
296
  }
286
297
  }
298
+ exports.AbstractSortingStrategy = AbstractSortingStrategy;
287
299
  class DefaultStrategy extends AbstractSortingStrategy {
288
300
  sort(array, context) {
289
301
  return new Promise((resolve, reject) => {
@@ -319,6 +331,7 @@ class DefaultStrategy extends AbstractSortingStrategy {
319
331
  return 'Sorts array using blazing fast algorithm. Elements are added to result array in order of completion.';
320
332
  }
321
333
  }
334
+ exports.DefaultStrategy = DefaultStrategy;
322
335
  __decorate([
323
336
  Log,
324
337
  ValidateArray,
@@ -349,6 +362,7 @@ class ConcreteSortingStrategyFactory {
349
362
  return this.strategies.has(type);
350
363
  }
351
364
  }
365
+ exports.ConcreteSortingStrategyFactory = ConcreteSortingStrategyFactory;
352
366
  class SorterBuilder {
353
367
  constructor() {
354
368
  this.observers = [];
@@ -400,6 +414,7 @@ class SorterBuilder {
400
414
  return this;
401
415
  }
402
416
  }
417
+ exports.SorterBuilder = SorterBuilder;
403
418
  class ArraySorter {
404
419
  constructor(array, strategy) {
405
420
  this.array = array;
@@ -432,6 +447,7 @@ class ArraySorter {
432
447
  return this.context.getEventHistory();
433
448
  }
434
449
  }
450
+ exports.ArraySorter = ArraySorter;
435
451
  __decorate([
436
452
  Measure,
437
453
  __metadata("design:type", Function),
@@ -449,6 +465,7 @@ class ExecuteSortingCommand {
449
465
  return 'Execute array sorting';
450
466
  }
451
467
  }
468
+ exports.ExecuteSortingCommand = ExecuteSortingCommand;
452
469
  class UpdateConfigCommand {
453
470
  constructor(config) {
454
471
  this.config = config;
@@ -461,6 +478,7 @@ class UpdateConfigCommand {
461
478
  return 'Update sorting configuration';
462
479
  }
463
480
  }
481
+ exports.UpdateConfigCommand = UpdateConfigCommand;
464
482
  class CommandInvoker {
465
483
  constructor() {
466
484
  this.commandQueue = [];
@@ -496,6 +514,7 @@ class CommandInvoker {
496
514
  return [...this.executedCommands];
497
515
  }
498
516
  }
517
+ exports.CommandInvoker = CommandInvoker;
499
518
  class AbstractSortingRunner {
500
519
  async run(array, strategyType) {
501
520
  this.beforeRun();
@@ -517,6 +536,7 @@ class AbstractSortingRunner {
517
536
  return await sorter.execute();
518
537
  }
519
538
  }
539
+ exports.AbstractSortingRunner = AbstractSortingRunner;
520
540
  class LoggingSortingRunner extends AbstractSortingRunner {
521
541
  beforeRun() {
522
542
  console.log('\nšŸš€ Starting sorting process...');
@@ -525,6 +545,7 @@ class LoggingSortingRunner extends AbstractSortingRunner {
525
545
  console.log('\nāœ… Sorting process completed.');
526
546
  }
527
547
  }
548
+ exports.LoggingSortingRunner = LoggingSortingRunner;
528
549
  async function demonstrateSorting() {
529
550
  ConfigurationManager.getInstance().updateConfig({
530
551
  enableLogging: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "the-best-sort",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Sorting framework basid on best design patterns with the most powerful sort strategies in TypeScript",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",