Everyone hates accident actions (like file removement). You will think twice while holding this action button!
A Pen by Sergey Berkin on CodePen.
| function compareBy<T>(predicate: (item: T) => any) { | |
| return function compareByObjectField(a: T, b: T) { | |
| return String(predicate(a)).localeCompare(String(predicate(b))); | |
| }; | |
| } |
| const EventEmitter = require('events'); | |
| const emitter = new EventEmitter(); | |
| emitter.once('newListener', type => { | |
| emitter.once(type, value => { | |
| emitter.emit(type, value + ' changed'); | |
| }); | |
| }); | |
| emitter.once('foo', console.log); |
| // This setup file allows to connect to local | |
| // firestore emualtor for testing purposes | |
| beforeAll(() => { | |
| jest.doMock('@google-cloud/firestore', () => { | |
| const firestore = require.requireActual('@google-cloud/firestore'); | |
| class Firestore extends firestore.Firestore { | |
| _decorateRequest(request) { | |
| const result = super._decorateRequest(request); | |
| result.gax.otherArgs.headers['Authorization'] = 'Bearer owner'; |
Everyone hates accident actions (like file removement). You will think twice while holding this action button!
A Pen by Sergey Berkin on CodePen.