Skip to content

Instantly share code, notes, and snippets.

View d4ins's full-sized avatar
🤌
Coding...

Andrii Drozdov d4ins

🤌
Coding...
  • OX
  • Dublin, Ireland
View GitHub Profile
@d4ins
d4ins / configureEvent.js
Created February 3, 2023 05:51
2 ways to implement Abstract Factory Pattern in JavaScript | Functional | configureEvent.js
function configureEvent(config) {
let createEvent;
switch (config.os) {
case 'ios':
createEvent = createAppleEvent;
break;
case 'chromeos':
createEvent = createGoogleEvent;
break;
@d4ins
d4ins / application.js
Created February 3, 2023 05:50
2 ways to implement Abstract Factory Pattern in JavaScript | Functional | application.js
function application(createEvent) {
createEvent({name: 'Abstract Factory Pattern', date: new Date(), participants: []});
}
@d4ins
d4ins / createOutlookEvent.js
Created February 3, 2023 05:49
2 ways to implement Abstract Factory Pattern in JavaScript | Functional | createOutlookEvent.js
function createOutlookEvent({name, date, participants}) {
MicrosoftAPI.createEvent({title: name, date, users: participants});
}
@d4ins
d4ins / createAppleEvent.js
Created February 3, 2023 05:48
2 ways to implement Abstract Factory Pattern in JavaScript | Functional | createAppleEvent.js
function createAppleEvent({name, date, participants}) {
AppleAPI.createEvent({name, date, participants});
}
@d4ins
d4ins / createGoogleEvent.js
Created February 3, 2023 05:47
2 ways to implement Abstract Factory Pattern in JavaScript | Functional | createGoogleEvent.js
function createGoogleEvent({name, date, participants}) {
GoogleAPI.createEvent({title: name, date, invitees: participants});
}
@d4ins
d4ins / types.ts
Created February 3, 2023 05:45
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | types.ts
export interface CreateEventArgs {
name: string;
date: Date;
participants: string[];
}
export interface Calendar {
createEvent: (options: CreateEventArgs) => void;
}
@d4ins
d4ins / GoogleCalendar.ts
Created February 3, 2023 05:44
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | GoogleCalendar.ts
class GoogleCalendar implements Calendar {
public createEvent({name, date, participants}: CreateEventArgs): void {
GoogleAPI.createEvent({title: name, date, invitees: participants});
}
}
@d4ins
d4ins / AppleCalendar.ts
Created February 3, 2023 05:43
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | AppleCalendar.ts
class AppleCalendar implements Calendar {
public createEvent({name, date, participants}: CreateEventArgs): void {
AppleAPI.createEvent({name, date, participants});
}
}
@d4ins
d4ins / OutlookCalendar.ts
Last active February 3, 2023 05:43
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | OutlookCalendar.ts
class OutlookCalendar implements Calendar {
public createEvent({name, date, participants}: CreateEventArgs): void {
MicrosoftAPI.createEvent({title: name, date, users: participants});
}
}
@d4ins
d4ins / Application.ts
Created February 3, 2023 05:39
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | Application.ts
class Application {
calendar: Calendar;
constructor(calendar: Calendar) {
this.calendar = calendar;
}
run(): void {
this.calendar.createEvent({name: 'Abstract Factory Pattern', date: new Date(), participants: []});
}