@midwayjs/faas 3.0.1 → 3.0.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.default.js","sourceRoot":"","sources":["../src/config.default.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE;QACP,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC,IAAS,EAAE,EAAE;;YACzB,MAAM,SAAS,GACb,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAG,eAAe,CAAC,0CAAG,WAAW,CAAC,mCAC1C,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAG,eAAe,CAAC,0CAAG,YAAY,CAAC,mCAC3C,EAAE,CAAC;YACL,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,KAC5D,IAAI,CAAC,OACP,EAAE,CAAC;QACL,CAAC;KACF;CACF,CAAC","sourcesContent":["export const midwayLogger = {\n default: {\n disableFile: true,\n disableError: true,\n printFormat: (info: any) => {\n const requestId =\n info.ctx?.['originContext']?.['requestId'] ??\n info.ctx?.['originContext']?.['request_id'] ??\n '';\n return `${new Date().toISOString()} ${requestId} [${info.level}] ${\n info.message\n }`;\n },\n },\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAQ6B;AAC7B,2CAAkD;AAClD,yCAIwB;AACxB,kDAAkD;AAUlD,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAW5B,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAC3C,sBAAU,EACV,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;;YACpB,OAAO,CACL,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,0BAAmB,CAAC,0CAAG,GAAG,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CACrC,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAC3C,sBAAU,EACV,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;;YACpB,OAAO,CACL,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,0BAAmB,CAAC,0CAAG,QAAQ,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAC3B,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAC5C,gCAAoB,EACpB,OAAO,CAAC,EAAE;YACR,OAAO,IAAA,0BAAmB,EACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,EAC7B,OAAO,CAAC,eAAe,CACxB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAS,IAAG,CAAC;IAE3B,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SAC5B;IACH,CAAC;CACF,CAAA;AAhDC;IADC,IAAA,kBAAM,GAAE;8BACE,+BAAmB;oDAAC;AAG/B;IADC,IAAA,kBAAM,GAAE;8BACS,6BAAsB;2DAAC;AAGzC;IADC,IAAA,8BAAkB,GAAE;;6DACF;AAGnB;IADC,IAAA,gBAAI,GAAE;;;;6CA+BN;AAzCU,iBAAiB;IAR7B,IAAA,yBAAa,EAAC;QACb,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE;YACb;gBACE,OAAO,EAAE,aAAa;aACvB;SACF;KACF,CAAC;GACW,iBAAiB,CAkD7B;AAlDY,8CAAiB","sourcesContent":["import {\n ApplicationContext,\n Configuration,\n Init,\n Inject,\n LOGGER_KEY,\n PLUGIN_KEY,\n WEB_ROUTER_PARAM_KEY,\n} from '@midwayjs/decorator';\nimport { MidwayFaaSFramework } from './framework';\nimport {\n extractKoaLikeValue,\n MidwayDecoratorService,\n REQUEST_OBJ_CTX_KEY,\n} from '@midwayjs/core';\nimport * as DefaultConfig from './config.default';\n\n@Configuration({\n namespace: 'faas',\n importConfigs: [\n {\n default: DefaultConfig,\n },\n ],\n})\nexport class FaaSConfiguration {\n @Inject()\n framework: MidwayFaaSFramework;\n\n @Inject()\n decoratorService: MidwayDecoratorService;\n\n @ApplicationContext()\n applicationContext;\n\n @Init()\n async init() {\n this.decoratorService.registerPropertyHandler(\n PLUGIN_KEY,\n (key, meta, target) => {\n return (\n target?.[REQUEST_OBJ_CTX_KEY]?.[key] ||\n this.framework.getApplication()[key]\n );\n }\n );\n\n this.decoratorService.registerPropertyHandler(\n LOGGER_KEY,\n (key, meta, target) => {\n return (\n target?.[REQUEST_OBJ_CTX_KEY]?.['logger'] ||\n this.framework.getLogger()\n );\n }\n );\n this.decoratorService.registerParameterHandler(\n WEB_ROUTER_PARAM_KEY,\n options => {\n return extractKoaLikeValue(\n options.metadata.type,\n options.metadata.propertyData,\n options.originParamType\n )(options.originArgs[0], options.originArgs[1]);\n }\n );\n }\n\n async onReady(container) {}\n\n async onServerReady() {\n if (!this.framework.isEnable()) {\n await this.framework.run();\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FaaSContext,\n IFaaSConfigurationOptions,\n IMidwayFaaSApplication,\n} from './interface';\nimport {\n BaseFramework,\n ContextMiddlewareManager,\n FunctionMiddleware,\n IMidwayBootstrapOptions,\n MidwayEnvironmentService,\n MidwayFrameworkType,\n MidwayMiddlewareService,\n RouterInfo,\n ServerlessTriggerCollector,\n} from '@midwayjs/core';\nimport {\n Framework,\n Inject,\n WEB_RESPONSE_CONTENT_TYPE,\n WEB_RESPONSE_HEADER,\n WEB_RESPONSE_HTTP_CODE,\n WEB_RESPONSE_REDIRECT,\n} from '@midwayjs/decorator';\nimport SimpleLock from '@midwayjs/simple-lock';\nimport { createConsoleLogger, LoggerOptions, loggers } from '@midwayjs/logger';\n\nconst LOCK_KEY = '_faas_starter_start_key';\n\n@Framework()\nexport class MidwayFaaSFramework extends BaseFramework<\n IMidwayFaaSApplication,\n FaaSContext,\n IFaaSConfigurationOptions\n> {\n protected defaultHandlerMethod = 'handler';\n protected funMappingStore: Map<string, RouterInfo> = new Map();\n protected logger;\n private lock = new SimpleLock();\n public app: IMidwayFaaSApplication;\n private isReplaceLogger =\n process.env['MIDWAY_SERVERLESS_REPLACE_LOGGER'] === 'true';\n private developmentRun = false;\n\n @Inject()\n environmentService: MidwayEnvironmentService;\n\n @Inject()\n middlewareService: MidwayMiddlewareService<FaaSContext, any>;\n\n configure(options: IFaaSConfigurationOptions) {\n if (options) {\n this.developmentRun = true;\n this.configurationOptions = options;\n } else {\n return this.configService.getConfiguration('faas');\n }\n }\n\n isEnable(): boolean {\n return !this.developmentRun;\n }\n\n async applicationInitialize(options: IMidwayBootstrapOptions) {\n if (!this.logger) {\n this.logger = options.logger || loggers.getLogger('appLogger');\n }\n this.app =\n this.configurationOptions.applicationAdapter?.getApplication() ||\n ({} as IMidwayFaaSApplication);\n\n this.defineApplicationProperties({\n /**\n * return init context value such as aliyun fc\n */\n getInitializeContext: () => {\n return this.configurationOptions.initializeContext;\n },\n\n /**\n * @deprecated\n * @param middlewareId\n */\n generateMiddleware: async (middlewareId: any) => {\n return this.generateMiddleware(middlewareId);\n },\n\n getFunctionName: () => {\n return this.configurationOptions.applicationAdapter?.getFunctionName();\n },\n\n getFunctionServiceName: () => {\n return this.configurationOptions.applicationAdapter?.getFunctionServiceName();\n },\n });\n // hack use method\n (this.app as any).originUse = this.app.use;\n this.app.use = this.app.useMiddleware as any;\n }\n\n public async run() {\n return this.lock.sureOnce(async () => {\n // set app keys\n this.app['keys'] = this.configService.getConfiguration('keys') ?? '';\n\n // store all http function entry\n const collector = new ServerlessTriggerCollector();\n const functionList = await collector.getFunctionList();\n for (const funcInfo of functionList) {\n this.funMappingStore.set(funcInfo.funcHandlerName, funcInfo);\n }\n }, LOCK_KEY);\n }\n\n public getFrameworkType(): MidwayFrameworkType {\n return MidwayFrameworkType.FAAS;\n }\n\n public handleInvokeWrapper(handlerMapping: string) {\n const funOptions: RouterInfo = this.funMappingStore.get(handlerMapping);\n\n return async (...args) => {\n if (args.length === 0) {\n throw new Error('first parameter must be function context');\n }\n\n if (!funOptions) {\n throw new Error(`function handler = ${handlerMapping} not found`);\n }\n\n const context: FaaSContext = this.getContext(args.shift());\n const isHttpFunction = !!(context.headers && context.get);\n const globalMiddlewareFn = await this.applyMiddleware();\n const middlewareManager = new ContextMiddlewareManager();\n\n middlewareManager.insertLast(globalMiddlewareFn);\n middlewareManager.insertLast(async (ctx, next) => {\n const fn = await this.middlewareService.compose(\n [\n ...funOptions.controllerMiddleware,\n ...funOptions.middleware,\n async (ctx, next) => {\n if (isHttpFunction) {\n args = [ctx];\n }\n // invoke handler\n const result = await this.invokeHandler(\n funOptions,\n ctx,\n args,\n isHttpFunction\n );\n if (isHttpFunction && result !== undefined) {\n ctx.body = result;\n }\n return result;\n },\n ],\n this.app\n );\n return await fn(ctx as FaaSContext, next);\n });\n const composeMiddleware = await this.middlewareService.compose(\n middlewareManager,\n this.app\n );\n\n return await composeMiddleware(context);\n };\n }\n\n /**\n * @deprecated\n * @param middlewareId\n */\n public async generateMiddleware(\n middlewareId: string\n ): Promise<FunctionMiddleware<FaaSContext, any>> {\n const mwIns: any = await this.getApplicationContext().getAsync(\n middlewareId\n );\n return mwIns.resolve();\n }\n\n public getContext(context) {\n if (!context.env) {\n context.env = this.environmentService.getCurrentEnvironment();\n }\n\n if (this.isReplaceLogger || !context.logger) {\n context._serverlessLogger = this.createContextLogger(context);\n /**\n * 由于 fc 的 logger 有 bug,FC公有云环境我们会默认替换掉,其他平台后续视情况而定\n */\n Object.defineProperty(context, 'logger', {\n get() {\n return context._serverlessLogger;\n },\n });\n }\n this.app.createAnonymousContext(context);\n return context;\n }\n\n private async invokeHandler(\n routerInfo: RouterInfo,\n context,\n args,\n isHttpFunction: boolean\n ) {\n const funModule = await context.requestContext.getAsync(\n routerInfo.controllerId\n );\n const handlerName =\n this.getFunctionHandler(context, args, funModule, routerInfo.method) ||\n this.defaultHandlerMethod;\n if (funModule[handlerName]) {\n // invoke real method\n const result = await funModule[handlerName](...args);\n // implement response decorator\n const routerResponseData = routerInfo.responseMetadata;\n if (isHttpFunction) {\n for (const routerRes of routerResponseData) {\n switch (routerRes.type) {\n case WEB_RESPONSE_HTTP_CODE:\n context.status = routerRes.code;\n break;\n case WEB_RESPONSE_HEADER:\n for (const key in routerRes?.setHeaders || {}) {\n context.set(key, routerRes.setHeaders[key]);\n }\n break;\n case WEB_RESPONSE_CONTENT_TYPE:\n context.type = routerRes.contentType;\n break;\n case WEB_RESPONSE_REDIRECT:\n context.status = routerRes.code;\n context.redirect(routerRes.url);\n return;\n }\n }\n }\n return result;\n }\n }\n\n protected getFunctionHandler(ctx, args, target, method): string {\n if (method && typeof target[method] !== 'undefined') {\n return method;\n }\n const handlerMethod = this.defaultHandlerMethod;\n if (handlerMethod && typeof target[handlerMethod] !== 'undefined') {\n return handlerMethod;\n }\n throw new Error(\n `no handler setup on ${target.name}#${\n method || this.defaultHandlerMethod\n }`\n );\n }\n\n public createLogger(name: string, option: LoggerOptions = {}) {\n // 覆盖基类的创建日志对象,函数场景下的日志,即使自定义,也只启用控制台输出\n return createConsoleLogger(name, option);\n }\n\n public getFrameworkName() {\n return 'midway:faas';\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yCAA+D;AAAtD,sGAAA,mBAAmB,OAAa;AACzC,iDAAqE;AAA5D,8GAAA,iBAAiB,OAAiB;AAC3C,yCAAuB","sourcesContent":["export * from './interface';\nexport { MidwayFaaSFramework as Framework } from './framework';\nexport { FaaSConfiguration as Configuration } from './configuration';\nexport * from './util';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"","sourcesContent":["import { MidwayRequestContainer, IMidwayApplication, IConfigurationOptions, IMidwayContext, NextFunction as BaseNextFunction } from '@midwayjs/core';\nimport { FaaSHTTPContext } from '@midwayjs/faas-typings';\nimport { ILogger } from '@midwayjs/logger';\n\nexport interface FaaSContext extends IMidwayContext<FaaSHTTPContext> {\n logger: ILogger;\n env: string;\n requestContext: MidwayRequestContainer;\n originContext: any;\n}\n\nexport type FaaSMiddleware = ((context: FaaSContext, next: () => Promise<any>) => any) | string;\n\nexport type IMidwayFaaSApplication = IMidwayApplication<FaaSContext, {\n getInitializeContext();\n use(middleware: FaaSMiddleware);\n /**\n * @deprecated\n * @param middlewareId\n */\n generateMiddleware(middlewareId: any): Promise<FaaSMiddleware>;\n\n /**\n * Get function name in serverless environment\n */\n getFunctionName(): string;\n /**\n * Get function service name in serverless environment\n */\n getFunctionServiceName(): string;\n}>;\n\nexport interface Application extends IMidwayFaaSApplication {}\n\nexport interface Context extends FaaSContext {}\nexport type NextFunction = BaseNextFunction;\n\nexport interface IFaaSConfigurationOptions extends IConfigurationOptions {\n config?: object;\n initializeContext?: object;\n applicationAdapter?: {\n getApplication(): IMidwayFaaSApplication;\n getFunctionName(): string;\n getFunctionServiceName(): string;\n };\n}\n\nexport interface IWebMiddleware {\n resolve(): FaaSMiddleware;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAA,yCAGwB;AACxB,mCAA+D;AAExD,MAAM,+BAA+B,GAAG,KAAK,EAClD,YAC2B,EAC3B,EAAE;IACF,MAAM,kBAAkB,GAAG,MAAM,IAAA,yCAAkC,EAAC;QAClE,GAAG,YAAY;QACf,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,iBAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AAVW,QAAA,+BAA+B,mCAU1C","sourcesContent":["import {\n IMidwayBootstrapOptions,\n initializeGlobalApplicationContext,\n} from '@midwayjs/core';\nimport { Framework, IFaaSConfigurationOptions } from './index';\n\nexport const createModuleServerlessFramework = async (\n globalOption: Omit<IMidwayBootstrapOptions, 'applicationContext'> &\n IFaaSConfigurationOptions\n) => {\n const applicationContext = await initializeGlobalApplicationContext({\n ...globalOption,\n baseDir: '',\n appDir: '',\n });\n return applicationContext.get(Framework);\n};\n"]}
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@midwayjs/faas",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "main": "dist/index",
5
5
  "typings": "index.d.ts",
6
6
  "dependencies": {
7
- "@midwayjs/core": "^3.0.1",
7
+ "@midwayjs/core": "^3.0.2",
8
8
  "@midwayjs/faas-typings": "^3.0.0",
9
9
  "@midwayjs/logger": "^2.14.0",
10
10
  "@midwayjs/simple-lock": "^1.1.4"
11
11
  },
12
12
  "devDependencies": {
13
- "@midwayjs/decorator": "^3.0.0",
14
- "@midwayjs/mock": "^3.0.1",
15
- "@midwayjs/serverless-fc-starter": "^3.0.1",
16
- "@midwayjs/serverless-scf-starter": "^3.0.0",
13
+ "@midwayjs/decorator": "^3.0.2",
14
+ "@midwayjs/mock": "^3.0.2",
15
+ "@midwayjs/serverless-fc-starter": "^3.0.2",
16
+ "@midwayjs/serverless-scf-starter": "^3.0.2",
17
17
  "mm": "3.2.0"
18
18
  },
19
19
  "engines": {
@@ -22,7 +22,8 @@
22
22
  "files": [
23
23
  "dist/**/*.js",
24
24
  "dist/**/*.d.ts",
25
- "index.d.ts"
25
+ "index.d.ts",
26
+ "dist/**/*.js.map"
26
27
  ],
27
28
  "keywords": [
28
29
  "serverless",
@@ -45,5 +46,5 @@
45
46
  "url": "git@github.com:midwayjs/midway.git"
46
47
  },
47
48
  "license": "MIT",
48
- "gitHead": "f345b4ed0392e5c3b9e815438ef0a377ad6da076"
49
+ "gitHead": "ca77247d229978a736e79bb208579c014ed226fc"
49
50
  }