@celljs/faas-adapter 3.8.0 → 3.9.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.
Files changed (50) hide show
  1. package/esm/node/credentials-provider.d.ts +5 -0
  2. package/esm/node/credentials-provider.js +27 -0
  3. package/esm/node/credentials-provider.js.map +1 -0
  4. package/esm/node/dev-event-application-entry.d.ts +1 -0
  5. package/esm/node/dev-event-application-entry.js +17 -0
  6. package/esm/node/dev-event-application-entry.js.map +1 -0
  7. package/esm/node/event/event-listener.d.ts +4 -0
  8. package/esm/node/event/event-listener.js +18 -0
  9. package/esm/node/event/event-listener.js.map +1 -0
  10. package/esm/node/event/event-protocol.d.ts +4 -0
  11. package/esm/node/event/event-protocol.js +2 -0
  12. package/esm/node/event/event-protocol.js.map +1 -0
  13. package/esm/node/event/index.d.ts +2 -0
  14. package/esm/node/event/index.js +3 -0
  15. package/esm/node/event/index.js.map +1 -0
  16. package/esm/node/factory/cron-job-factory.d.ts +8 -0
  17. package/esm/node/factory/cron-job-factory.js +35 -0
  18. package/esm/node/factory/cron-job-factory.js.map +1 -0
  19. package/esm/node/factory/index.d.ts +1 -0
  20. package/esm/node/factory/index.js +2 -0
  21. package/esm/node/factory/index.js.map +1 -0
  22. package/esm/node/index.d.ts +6 -0
  23. package/esm/node/index.js +7 -0
  24. package/esm/node/index.js.map +1 -0
  25. package/esm/node/module.d.ts +3 -0
  26. package/esm/node/module.js +4 -0
  27. package/esm/node/module.js.map +1 -0
  28. package/esm/node/regin-provider.d.ts +4 -0
  29. package/esm/node/regin-provider.js +23 -0
  30. package/esm/node/regin-provider.js.map +1 -0
  31. package/esm/node/timer/clock.d.ts +7 -0
  32. package/esm/node/timer/clock.js +25 -0
  33. package/esm/node/timer/clock.js.map +1 -0
  34. package/esm/node/timer/cron-job.d.ts +12 -0
  35. package/esm/node/timer/cron-job.js +35 -0
  36. package/esm/node/timer/cron-job.js.map +1 -0
  37. package/esm/node/timer/events.d.ts +15 -0
  38. package/esm/node/timer/events.js +90 -0
  39. package/esm/node/timer/events.js.map +1 -0
  40. package/esm/node/timer/index.d.ts +3 -0
  41. package/esm/node/timer/index.js +4 -0
  42. package/esm/node/timer/index.js.map +1 -0
  43. package/esm/node/timer/timer-protocol.d.ts +6 -0
  44. package/esm/node/timer/timer-protocol.js +2 -0
  45. package/esm/node/timer/timer-protocol.js.map +1 -0
  46. package/esm/node/utils.d.ts +3 -0
  47. package/esm/node/utils.js +9 -0
  48. package/esm/node/utils.js.map +1 -0
  49. package/esm/package.json +3 -0
  50. package/package.json +51 -9
@@ -0,0 +1,5 @@
1
+ import { DefaultCredentialsProvider } from '@celljs/cloud/lib/node';
2
+ import { Credentials } from '@celljs/cloud';
3
+ export declare class FaaSCredentialsProvider extends DefaultCredentialsProvider {
4
+ provide(): Promise<Credentials | undefined>;
5
+ }
@@ -0,0 +1,27 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { DefaultCredentialsProvider } from '@celljs/cloud/lib/node';
8
+ import { Component } from '@celljs/core';
9
+ import { CredentialsProvider } from '@celljs/cloud';
10
+ let FaaSCredentialsProvider = class FaaSCredentialsProvider extends DefaultCredentialsProvider {
11
+ async provide() {
12
+ const credentials = await super.provide();
13
+ if (credentials) {
14
+ return credentials;
15
+ }
16
+ return {
17
+ accessKeyId: process.env.CELL_ACCESS_KEY_ID,
18
+ accessKeySecret: process.env.CELL_ACCESS_KEY_SECRET,
19
+ token: process.env.CELL_TOKEN
20
+ };
21
+ }
22
+ };
23
+ FaaSCredentialsProvider = __decorate([
24
+ Component({ id: CredentialsProvider, rebind: true })
25
+ ], FaaSCredentialsProvider);
26
+ export { FaaSCredentialsProvider };
27
+ //# sourceMappingURL=credentials-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials-provider.js","sourceRoot":"","sources":["../../src/node/credentials-provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAe,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG1D,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,0BAA0B;IAE1D,KAAK,CAAC,OAAO;QAClB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,OAAO;YACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB;YAC5C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAuB;YACpD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;SAChC,CAAC;IACN,CAAC;CAEJ,CAAA;AAdY,uBAAuB;IADnC,SAAS,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACxC,uBAAuB,CAcnC"}
@@ -0,0 +1 @@
1
+ export declare function handler(event: string, context: any): Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { container } from '@celljs/core/lib/common/container/dynamic-container';
2
+ import { Application } from '@celljs/core/lib/common/application/application-protocol';
3
+ import { ContainerProvider } from '@celljs/core/lib/common/container/container-provider';
4
+ import { FaaSEventListener } from './event/event-protocol.js';
5
+ let listeners;
6
+ async function start() {
7
+ const c = await container;
8
+ ContainerProvider.set(c);
9
+ await c.get(Application).start();
10
+ listeners = c.getAll(FaaSEventListener);
11
+ }
12
+ const startPromise = start();
13
+ export async function handler(event, context) {
14
+ await startPromise;
15
+ await Promise.all(listeners.map(l => l.onTrigger(event)));
16
+ }
17
+ //# sourceMappingURL=dev-event-application-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-event-application-entry.js","sourceRoot":"","sources":["../../src/node/dev-event-application-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qDAAqD,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,0DAA0D,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,IAAI,SAAyC,CAAC;AAE9C,KAAK,UAAU,KAAK;IAChB,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC;IAC1B,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,CAAC,GAAG,CAAc,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9C,SAAS,GAAG,CAAC,CAAC,MAAM,CAA+B,iBAAiB,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,YAAY,GAAG,KAAK,EAAE,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAa,EAAE,OAAY;IACrD,MAAM,YAAY,CAAC;IACnB,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FaaSEventListener } from './event-protocol.js';
2
+ export declare class NoOpEventListener implements FaaSEventListener<{}, void> {
3
+ onTrigger(event: {}): Promise<void>;
4
+ }
@@ -0,0 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@celljs/core';
8
+ import { FaaSEventListener } from './event-protocol.js';
9
+ let NoOpEventListener = class NoOpEventListener {
10
+ async onTrigger(event) {
11
+ // NoOp
12
+ }
13
+ };
14
+ NoOpEventListener = __decorate([
15
+ Component(FaaSEventListener)
16
+ ], NoOpEventListener);
17
+ export { NoOpEventListener };
18
+ //# sourceMappingURL=event-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-listener.js","sourceRoot":"","sources":["../../../src/node/event/event-listener.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG9C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,KAAK,CAAC,SAAS,CAAC,KAAS;QACrB,OAAO;IACX,CAAC;CAEJ,CAAA;AALY,iBAAiB;IAD7B,SAAS,CAAC,iBAAiB,CAAC;GAChB,iBAAiB,CAK7B"}
@@ -0,0 +1,4 @@
1
+ export declare const FaaSEventListener: unique symbol;
2
+ export interface FaaSEventListener<T, R> {
3
+ onTrigger(event: T): Promise<R>;
4
+ }
@@ -0,0 +1,2 @@
1
+ export const FaaSEventListener = Symbol('FaaSEventListener');
2
+ //# sourceMappingURL=event-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-protocol.js","sourceRoot":"","sources":["../../../src/node/event/event-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './event-listener.js';
2
+ export * from './event-protocol.js';
@@ -0,0 +1,3 @@
1
+ export * from './event-listener.js';
2
+ export * from './event-protocol.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CronJob } from 'cron';
2
+ import { CronJobOptions, DefaultCronJobFactory } from '@celljs/schedule';
3
+ import { Clock } from '../timer/index.js';
4
+ export declare class FaaSCronJobFactory extends DefaultCronJobFactory {
5
+ protected readonly clock: Clock;
6
+ protected readonly mode: string[];
7
+ create(options: CronJobOptions): CronJob;
8
+ }
@@ -0,0 +1,35 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Autowired, Component, Value } from '@celljs/core';
11
+ import { CronJobFactory, DefaultCronJobFactory } from '@celljs/schedule';
12
+ import { Clock, FaaSCronJob } from '../timer/index.js';
13
+ let FaaSCronJobFactory = class FaaSCronJobFactory extends DefaultCronJobFactory {
14
+ create(options) {
15
+ if (this.mode.includes('remote')) {
16
+ return new FaaSCronJob(this.clock, { ...this.defaultCronJobOptions, ...options });
17
+ }
18
+ else {
19
+ return super.create(options);
20
+ }
21
+ }
22
+ };
23
+ __decorate([
24
+ Autowired(Clock),
25
+ __metadata("design:type", Object)
26
+ ], FaaSCronJobFactory.prototype, "clock", void 0);
27
+ __decorate([
28
+ Value('mode'),
29
+ __metadata("design:type", Array)
30
+ ], FaaSCronJobFactory.prototype, "mode", void 0);
31
+ FaaSCronJobFactory = __decorate([
32
+ Component({ id: CronJobFactory, rebind: true })
33
+ ], FaaSCronJobFactory);
34
+ export { FaaSCronJobFactory };
35
+ //# sourceMappingURL=cron-job-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-job-factory.js","sourceRoot":"","sources":["../../../src/node/factory/cron-job-factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAkB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,qBAAqB;IAQhD,MAAM,CAAC,OAAuB;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;CAEJ,CAAA;AAbsB;IADlB,SAAS,CAAC,KAAK,CAAC;;iDACe;AAGb;IADlB,KAAK,CAAC,MAAM,CAAC;;gDACoB;AANzB,kBAAkB;IAD9B,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,kBAAkB,CAgB9B"}
@@ -0,0 +1 @@
1
+ export * from './cron-job-factory.js';
@@ -0,0 +1,2 @@
1
+ export * from './cron-job-factory.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './credentials-provider.js';
2
+ export * from './regin-provider.js';
3
+ export * from './timer/index.js';
4
+ export * from './event/index.js';
5
+ export * from './factory/index.js';
6
+ export * from './utils.js';
@@ -0,0 +1,7 @@
1
+ export * from './credentials-provider.js';
2
+ export * from './regin-provider.js';
3
+ export * from './timer/index.js';
4
+ export * from './event/index.js';
5
+ export * from './factory/index.js';
6
+ export * from './utils.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import './index.js';
2
+ declare const _default: import("inversify").interfaces.ContainerModule;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { autoBind } from '@celljs/core';
2
+ import './index.js';
3
+ export default autoBind();
4
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/node/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,SAAS,CAAC;AAEjB,eAAe,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DefaultRegionProvider } from '@celljs/cloud/lib/node';
2
+ export declare class FaaSRegionProvider extends DefaultRegionProvider {
3
+ provide(): Promise<string | undefined>;
4
+ }
@@ -0,0 +1,23 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { DefaultRegionProvider } from '@celljs/cloud/lib/node';
8
+ import { Component } from '@celljs/core';
9
+ import { RegionProvider } from '@celljs/cloud';
10
+ let FaaSRegionProvider = class FaaSRegionProvider extends DefaultRegionProvider {
11
+ async provide() {
12
+ const region = await super.provide();
13
+ if (region) {
14
+ return region;
15
+ }
16
+ return process.env.CELL_REGION;
17
+ }
18
+ };
19
+ FaaSRegionProvider = __decorate([
20
+ Component({ id: RegionProvider, rebind: true })
21
+ ], FaaSRegionProvider);
22
+ export { FaaSRegionProvider };
23
+ //# sourceMappingURL=regin-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regin-provider.js","sourceRoot":"","sources":["../../src/node/regin-provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGxC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,qBAAqB;IAEhD,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACnC,CAAC;CACJ,CAAA;AATY,kBAAkB;IAD9B,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,kBAAkB,CAS9B"}
@@ -0,0 +1,7 @@
1
+ import { Emitter, Event } from './events.js';
2
+ import { Clock } from './timer-protocol.js';
3
+ export declare class ClockImpl implements Clock {
4
+ protected onTickEmitter: Emitter<void>;
5
+ get onTick(): Event<void>;
6
+ tick(): Promise<void>;
7
+ }
@@ -0,0 +1,25 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@celljs/core';
8
+ import { Emitter } from './events.js';
9
+ import { Clock } from './timer-protocol.js';
10
+ let ClockImpl = class ClockImpl {
11
+ constructor() {
12
+ this.onTickEmitter = new Emitter();
13
+ }
14
+ get onTick() {
15
+ return this.onTickEmitter.event;
16
+ }
17
+ async tick() {
18
+ await this.onTickEmitter.fire();
19
+ }
20
+ };
21
+ ClockImpl = __decorate([
22
+ Component(Clock)
23
+ ], ClockImpl);
24
+ export { ClockImpl };
25
+ //# sourceMappingURL=clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../../src/node/timer/clock.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAS,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlC,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QACO,kBAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAUlD,CAAC;IARG,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;CAEJ,CAAA;AAXY,SAAS;IADrB,SAAS,CAAC,KAAK,CAAC;GACJ,SAAS,CAWrB"}
@@ -0,0 +1,12 @@
1
+ import { Disposable } from '@celljs/core';
2
+ import { CronJob } from 'cron';
3
+ import { CronJobOptions } from '@celljs/schedule';
4
+ import { Clock } from './timer-protocol.js';
5
+ export declare class FaaSCronJob extends CronJob {
6
+ protected readonly clock: Clock;
7
+ protected tickDisposable?: Disposable;
8
+ constructor(clock: Clock, options: CronJobOptions);
9
+ protected fireOnTickAsync(): Promise<void>;
10
+ start(): void;
11
+ stop(): void;
12
+ }
@@ -0,0 +1,35 @@
1
+ import { CronJob } from 'cron';
2
+ export class FaaSCronJob extends CronJob {
3
+ constructor(clock, options) {
4
+ super(options);
5
+ this.clock = clock;
6
+ }
7
+ async fireOnTickAsync() {
8
+ const callbacks = this._callbacks;
9
+ const context = this.context;
10
+ const onComplete = this.onComplete;
11
+ await Promise.all(callbacks.map((callback) => callback.call(context, onComplete)));
12
+ }
13
+ start() {
14
+ if (this.running) {
15
+ return;
16
+ }
17
+ this.tickDisposable = this.clock.onTick(async () => {
18
+ const cronTime = this.cronTime;
19
+ const timeout = cronTime.getTimeout();
20
+ if (timeout <= 60 * 1000) {
21
+ await this.fireOnTickAsync();
22
+ }
23
+ });
24
+ }
25
+ stop() {
26
+ var _a;
27
+ (_a = this.tickDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
28
+ this.running = false;
29
+ const onComplete = this.onComplete;
30
+ if (typeof onComplete === 'function') {
31
+ onComplete();
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=cron-job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-job.js","sourceRoot":"","sources":["../../../src/node/timer/cron-job.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAY,MAAM,MAAM,CAAC;AAIzC,MAAM,OAAO,WAAY,SAAQ,OAAO;IAIpC,YAA+B,KAAY,EAAE,OAAuB;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;qBADY,KAAK;IAEpC,CAAC;IAES,KAAK,CAAC,eAAe;QAC3B,MAAM,SAAS,GAAI,IAAY,CAAC,UAAU,CAAC;QAC3C,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,CAAC;QACtC,MAAM,UAAU,GAAI,IAAY,CAAC,UAAU,CAAC;QAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEQ,KAAK;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAE/C,MAAM,QAAQ,GAAc,IAAY,CAAC,QAAQ,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,CAAC;QAEL,CAAC,CAAC,CAAC;IACP,CAAC;IAEQ,IAAI;;QACT,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,UAAU,GAAI,IAAY,CAAC,UAAU,CAAC;QAC5C,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;YACnC,UAAU,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;CAEJ"}
@@ -0,0 +1,15 @@
1
+ import { Disposable } from '@celljs/core';
2
+ export interface Event<T> {
3
+ (listener: (e: T) => any, disposables?: Disposable[]): Disposable;
4
+ }
5
+ export declare namespace Event {
6
+ const None: Event<any>;
7
+ }
8
+ export declare class Emitter<T> {
9
+ private static _noop;
10
+ private _event;
11
+ private callbacks;
12
+ get event(): Event<T>;
13
+ fire(event: T): Promise<void>;
14
+ dispose(): void;
15
+ }
@@ -0,0 +1,90 @@
1
+ export var Event;
2
+ (function (Event) {
3
+ const disposable = { dispose() { } };
4
+ Event.None = function () {
5
+ return disposable;
6
+ };
7
+ })(Event || (Event = {}));
8
+ class CallbackList {
9
+ add(callback, bucket) {
10
+ if (!this.callbacks) {
11
+ this.callbacks = [];
12
+ }
13
+ this.callbacks.push(callback);
14
+ if (Array.isArray(bucket)) {
15
+ bucket.push({ dispose: () => this.remove(callback) });
16
+ }
17
+ }
18
+ remove(callback) {
19
+ if (!this.callbacks) {
20
+ return;
21
+ }
22
+ for (let i = 0, len = this.callbacks.length; i < len; i++) {
23
+ if (this.callbacks[i] === callback) {
24
+ this.callbacks.splice(i, 1);
25
+ }
26
+ }
27
+ }
28
+ invoke(...args) {
29
+ if (!this.callbacks) {
30
+ return [];
31
+ }
32
+ const ret = [];
33
+ const callbacks = this.callbacks.slice(0);
34
+ for (let i = 0, len = callbacks.length; i < len; i++) {
35
+ try {
36
+ ret.push(callbacks[i].apply(this, args));
37
+ }
38
+ catch (e) {
39
+ console.error(e);
40
+ }
41
+ }
42
+ return ret;
43
+ }
44
+ isEmpty() {
45
+ return !this.callbacks || this.callbacks.length === 0;
46
+ }
47
+ dispose() {
48
+ this.callbacks = undefined;
49
+ }
50
+ }
51
+ export class Emitter {
52
+ get event() {
53
+ if (!this._event) {
54
+ this._event = (listener, disposables) => {
55
+ if (!this.callbacks) {
56
+ this.callbacks = new CallbackList();
57
+ }
58
+ this.callbacks.add(listener);
59
+ const result = {
60
+ dispose: () => {
61
+ if (!this.callbacks) {
62
+ // disposable is disposed after emitter is disposed.
63
+ return;
64
+ }
65
+ this.callbacks.remove(listener);
66
+ result.dispose = Emitter._noop;
67
+ }
68
+ };
69
+ if (Array.isArray(disposables)) {
70
+ disposables.push(result);
71
+ }
72
+ return result;
73
+ };
74
+ }
75
+ return this._event;
76
+ }
77
+ async fire(event) {
78
+ if (this.callbacks) {
79
+ await Promise.all(this.callbacks.invoke.call(this.callbacks, event));
80
+ }
81
+ }
82
+ dispose() {
83
+ if (this.callbacks) {
84
+ this.callbacks.dispose();
85
+ this.callbacks = undefined;
86
+ }
87
+ }
88
+ }
89
+ Emitter._noop = function () { };
90
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/node/timer/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './clock.js';
2
+ export * from './cron-job.js';
3
+ export * from './timer-protocol.js';
@@ -0,0 +1,4 @@
1
+ export * from './clock.js';
2
+ export * from './cron-job.js';
3
+ export * from './timer-protocol.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/timer/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Event } from './events.js';
2
+ export declare const Clock: unique symbol;
3
+ export interface Clock {
4
+ readonly onTick: Event<void>;
5
+ tick(): Promise<void>;
6
+ }
@@ -0,0 +1,2 @@
1
+ export const Clock = Symbol('Clock');
2
+ //# sourceMappingURL=timer-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer-protocol.js","sourceRoot":"","sources":["../../../src/node/timer/timer-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare namespace FaaSUtils {
2
+ function getCallbackWaitsForEmptyEventLoop(): boolean;
3
+ }
@@ -0,0 +1,9 @@
1
+ import { ConfigUtil } from '@celljs/core/lib/common/config/config-util';
2
+ export var FaaSUtils;
3
+ (function (FaaSUtils) {
4
+ function getCallbackWaitsForEmptyEventLoop() {
5
+ return ConfigUtil.get('cell.cloud.function.callbackWaitsForEmptyEventLoop', false);
6
+ }
7
+ FaaSUtils.getCallbackWaitsForEmptyEventLoop = getCallbackWaitsForEmptyEventLoop;
8
+ })(FaaSUtils || (FaaSUtils = {}));
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/node/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,MAAM,KAAW,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACtB,SAAgB,iCAAiC;QAC7C,OAAO,UAAU,CAAC,GAAG,CAAU,oDAAoD,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAFe,UAAA,iCAAiC,oCAEhD,CAAA;AACL,CAAC,EAJgB,SAAS,KAAT,SAAS,QAIzB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celljs/faas-adapter",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "cell-component"
@@ -18,27 +18,69 @@
18
18
  "typings": "lib/node/index.d.ts",
19
19
  "files": [
20
20
  "lib",
21
+ "esm",
21
22
  "src",
22
23
  "cell.yml",
23
24
  "cell-event.yml"
24
25
  ],
25
26
  "scripts": {
26
- "build": "tsc -b",
27
- "clean": "rm -rf lib *.tsbuildinfo",
27
+ "build": "tsc -b && bun ../../scripts/build-esm.ts",
28
+ "clean": "rm -rf lib esm *.tsbuildinfo",
28
29
  "test": "bun test --preload reflect-metadata ./lib",
29
30
  "watch": "tsc -b -w --preserveWatchOutput"
30
31
  },
31
32
  "dependencies": {
32
- "@celljs/cli-common": "3.8.0",
33
- "@celljs/cli-service": "3.8.0",
34
- "@celljs/cloud": "3.8.0",
35
- "@celljs/core": "3.8.0",
36
- "@celljs/schedule": "3.8.0",
37
- "@celljs/web": "3.8.0",
33
+ "@celljs/cli-common": "3.9.0",
34
+ "@celljs/cli-service": "3.9.0",
35
+ "@celljs/cloud": "3.9.0",
36
+ "@celljs/core": "3.9.0",
37
+ "@celljs/schedule": "3.9.0",
38
+ "@celljs/web": "3.9.0",
38
39
  "cron": "^1.8.2",
39
40
  "tslib": "^2.8.0"
40
41
  },
41
42
  "publishConfig": {
42
43
  "access": "public"
44
+ },
45
+ "exports": {
46
+ ".": {
47
+ "webpack": "./lib/node/index.js",
48
+ "import": "./esm/node/index.js",
49
+ "default": "./lib/node/index.js"
50
+ },
51
+ "./package.json": "./package.json",
52
+ "./lib/hooks/*.js": "./lib/hooks/*.js",
53
+ "./lib/hooks/*": "./lib/hooks/*.js",
54
+ "./lib/node": {
55
+ "webpack": "./lib/node/index.js",
56
+ "import": "./esm/node/index.js",
57
+ "default": "./lib/node/index.js"
58
+ },
59
+ "./lib/node/event": {
60
+ "webpack": "./lib/node/event/index.js",
61
+ "import": "./esm/node/event/index.js",
62
+ "default": "./lib/node/event/index.js"
63
+ },
64
+ "./lib/node/factory": {
65
+ "webpack": "./lib/node/factory/index.js",
66
+ "import": "./esm/node/factory/index.js",
67
+ "default": "./lib/node/factory/index.js"
68
+ },
69
+ "./lib/node/timer": {
70
+ "webpack": "./lib/node/timer/index.js",
71
+ "import": "./esm/node/timer/index.js",
72
+ "default": "./lib/node/timer/index.js"
73
+ },
74
+ "./lib/*.js": {
75
+ "webpack": "./lib/*.js",
76
+ "import": "./esm/*.js",
77
+ "default": "./lib/*.js"
78
+ },
79
+ "./lib/*": {
80
+ "webpack": "./lib/*.js",
81
+ "import": "./esm/*.js",
82
+ "default": "./lib/*.js"
83
+ },
84
+ "./*": "./*"
43
85
  }
44
86
  }