alp-node 4.1.3 → 4.1.4

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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.1.4](https://github.com/christophehurpeau/alp/compare/alp-node@4.1.3...alp-node@4.1.4) (2022-10-13)
7
+
8
+ **Note:** Version bump only for package alp-node
9
+
10
+
11
+
12
+
13
+
6
14
  ## [4.1.3](https://github.com/christophehurpeau/alp/compare/alp-node@4.1.2...alp-node@4.1.3) (2022-03-05)
7
15
 
8
16
  **Note:** Version bump only for package alp-node
@@ -0,0 +1,41 @@
1
+ import Alp from 'alp-node';
2
+ import { addConfig, appLogger } from 'nightingale-app-console';
3
+ import type { Logger } from 'nightingale-logger';
4
+ import webProcessor from 'nightingale-web-processor';
5
+ import './server/hello';
6
+
7
+ declare module 'alp-types' {
8
+ interface Context {
9
+ logger: Logger;
10
+ }
11
+ }
12
+
13
+ const app = new Alp();
14
+
15
+ addConfig(
16
+ {
17
+ processors: [webProcessor],
18
+ },
19
+ true,
20
+ );
21
+
22
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
23
+ app.start(() => {
24
+ // init
25
+ // call here any init app
26
+
27
+ // middlewares
28
+ app.servePublic();
29
+ app.use((ctx, next) => {
30
+ ctx.logger = appLogger.context({ request: ctx.req });
31
+ return next();
32
+ });
33
+ app.use((ctx, next) => {
34
+ ctx.logger.info('Request');
35
+ return next();
36
+ });
37
+ app.catchErrors();
38
+ app.use((ctx) => {
39
+ ctx.body = { ok: true };
40
+ });
41
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"AlpNodeApp-node14.mjs","sources":["../src/AlpNodeApp.ts"],"sourcesContent":["import type { IncomingMessage, Server, ServerResponse } from 'http';\nimport path from 'path';\nimport { deprecate } from 'util';\nimport _listen from 'alp-listen';\nimport type { Config } from 'alp-node-config';\nimport _config from 'alp-node-config';\nimport errors from 'alp-node-errors';\nimport language from 'alp-node-language';\nimport params from 'alp-params';\nimport translate from 'alp-translate';\nimport type {\n NodeApplication,\n NodeConfig,\n Context as AlpContext,\n ContextState,\n ContextSanitizedState,\n ContextRequest,\n} from 'alp-types';\nimport Koa from 'koa';\nimport type { ParameterizedContext, DefaultState, BaseRequest } from 'koa';\nimport compress from 'koa-compress';\nimport serve from 'koa-static';\nimport { Logger } from 'nightingale-logger';\n\nconst logger = new Logger('alp');\n\nexport interface AlpNodeAppOptions {\n appDirname: string;\n packageDirname: string;\n config: Config & NodeConfig;\n certPath?: string;\n publicPath?: string;\n}\n\ndeclare module 'koa' {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface DefaultState extends ContextState {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface DefaultContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface BaseContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface BaseRequest extends ContextRequest {}\n}\n\nexport class AlpNodeApp extends Koa<ContextState> implements NodeApplication {\n dirname: string;\n\n certPath: string;\n\n publicPath: string;\n\n config: NodeConfig & Config;\n\n declare request: BaseRequest & ContextRequest;\n\n _server?: Server;\n\n /**\n * @param {Object} [options]\n * @param {string} [options.certPath] directory of the ssl certificates\n * @param {string} [options.publicPath] directory of public files\n */\n constructor({\n appDirname,\n packageDirname,\n config,\n certPath,\n publicPath,\n }: AlpNodeAppOptions) {\n super();\n\n this.dirname = path.normalize(appDirname);\n\n Object.defineProperty(this, 'packageDirname', {\n get: deprecate(() => packageDirname, 'packageDirname'),\n configurable: false,\n enumerable: false,\n });\n\n this.certPath = certPath || `${packageDirname}/config/cert`;\n this.publicPath = publicPath || `${packageDirname}/public/`;\n\n this.config = _config(this, config);\n this.context.config = this.config;\n\n params(this);\n language(this);\n translate('locales')(this);\n\n this.use(compress());\n }\n\n existsConfigSync(name: string): ReturnType<Config['existsConfigSync']> {\n return this.config.existsConfigSync(name);\n }\n\n loadConfigSync(name: string): ReturnType<Config['loadConfigSync']> {\n return this.config.loadConfigSync(name);\n }\n\n createContext<StateT = DefaultState>(\n req: IncomingMessage,\n res: ServerResponse,\n ): ParameterizedContext<StateT> {\n const ctx = super.createContext<StateT>(req, res);\n ctx.sanitizedState = {} as ContextSanitizedState;\n return ctx;\n }\n\n servePublic(): void {\n this.use(serve(this.publicPath)); // static files\n }\n\n catchErrors(): void {\n this.use(errors);\n }\n\n listen(): Server {\n throw new Error('Use start instead');\n }\n\n /**\n * Close server and emit close event\n */\n close(): void {\n if (this._server) {\n this._server.close();\n this.emit('close');\n }\n }\n\n async start(fn: () => Promise<void> | void): Promise<Server> {\n await fn();\n try {\n const server = await _listen(this.config, this.callback(), this.certPath);\n this._server = server;\n logger.success('started');\n if (process.send) process.send('ready');\n return server;\n } catch (err: unknown) {\n logger.error('start fail', { err });\n throw err;\n }\n }\n}\n\nexport type { Context } from 'koa';\n"],"names":["logger","Logger","AlpNodeApp","Koa","constructor","appDirname","packageDirname","config","certPath","publicPath","dirname","path","normalize","Object","defineProperty","get","deprecate","configurable","enumerable","_config","context","params","language","translate","use","compress","existsConfigSync","name","loadConfigSync","createContext","req","res","ctx","sanitizedState","servePublic","serve","catchErrors","errors","listen","Error","close","_server","emit","start","fn","server","_listen","callback","success","process","send","err","error"],"mappings":";;;;;;;;;;;;;AAwBA,MAAMA,MAAM,GAAG,IAAIC,MAAJ,CAAW,KAAX,CAAf;AAqBO,MAAMC,UAAN,SAAyBC,GAAzB,CAAsE;AAa3E;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAAC;AACVC,IAAAA,UADU;AAEVC,IAAAA,cAFU;AAGVC,IAAAA,MAHU;AAIVC,IAAAA,QAJU;AAKVC,IAAAA;AALU,GAAD,EAMW;AACpB;AAEA,SAAKC,OAAL,GAAeC,IAAI,CAACC,SAAL,CAAeP,UAAf,CAAf;AAEAQ,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,gBAA5B,EAA8C;AAC5CC,MAAAA,GAAG,EAAEC,SAAS,CAAC,MAAMV,cAAP,EAAuB,gBAAvB,CAD8B;AAE5CW,MAAAA,YAAY,EAAE,KAF8B;AAG5CC,MAAAA,UAAU,EAAE;AAHgC,KAA9C;AAMA,SAAKV,QAAL,GAAgBA,QAAQ,IAAK,GAAEF,cAAe,cAA9C;AACA,SAAKG,UAAL,GAAkBA,UAAU,IAAK,GAAEH,cAAe,UAAlD;AAEA,SAAKC,MAAL,GAAcY,OAAO,CAAC,IAAD,EAAOZ,MAAP,CAArB;AACA,SAAKa,OAAL,CAAab,MAAb,GAAsB,KAAKA,MAA3B;AAEAc,IAAAA,MAAM,CAAC,IAAD,CAAN;AACAC,IAAAA,QAAQ,CAAC,IAAD,CAAR;AACAC,IAAAA,SAAS,CAAC,SAAD,CAAT,CAAqB,IAArB;AAEA,SAAKC,GAAL,CAASC,QAAQ,EAAjB;AACD;;AAEDC,EAAAA,gBAAgB,CAACC,IAAD,EAAuD;AACrE,WAAO,KAAKpB,MAAL,CAAYmB,gBAAZ,CAA6BC,IAA7B,CAAP;AACD;;AAEDC,EAAAA,cAAc,CAACD,IAAD,EAAqD;AACjE,WAAO,KAAKpB,MAAL,CAAYqB,cAAZ,CAA2BD,IAA3B,CAAP;AACD;;AAEDE,EAAAA,aAAa,CACXC,GADW,EAEXC,GAFW,EAGmB;AAC9B,UAAMC,GAAG,GAAG,MAAMH,aAAN,CAA4BC,GAA5B,EAAiCC,GAAjC,CAAZ;AACAC,IAAAA,GAAG,CAACC,cAAJ,GAAqB,EAArB;AACA,WAAOD,GAAP;AACD;;AAEDE,EAAAA,WAAW,GAAS;AAClB,SAAKV,GAAL,CAASW,KAAK,CAAC,KAAK1B,UAAN,CAAd,EADkB;AAEnB;;AAED2B,EAAAA,WAAW,GAAS;AAClB,SAAKZ,GAAL,CAASa,MAAT;AACD;;AAEDC,EAAAA,MAAM,GAAW;AACf,UAAM,IAAIC,KAAJ,CAAU,mBAAV,CAAN;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,KAAK,GAAS;AACZ,QAAI,KAAKC,OAAT,EAAkB;AAChB,WAAKA,OAAL,CAAaD,KAAb;;AACA,WAAKE,IAAL,CAAU,OAAV;AACD;AACF;;AAEU,QAALC,KAAK,CAACC,EAAD,EAAkD;AAC3D,UAAMA,EAAE,EAAR;;AACA,QAAI;AACF,YAAMC,MAAM,GAAG,MAAMC,OAAO,CAAC,KAAKvC,MAAN,EAAc,KAAKwC,QAAL,EAAd,EAA+B,KAAKvC,QAApC,CAA5B;AACA,WAAKiC,OAAL,GAAeI,MAAf;AACA7C,MAAAA,MAAM,CAACgD,OAAP,CAAe,SAAf;AACA,UAAIC,OAAO,CAACC,IAAZ,EAAkBD,OAAO,CAACC,IAAR,CAAa,OAAb;AAClB,aAAOL,MAAP;AACD,KAND,CAME,OAAOM,GAAP,EAAqB;AACrBnD,MAAAA,MAAM,CAACoD,KAAP,CAAa,YAAb,EAA2B;AAAED,QAAAA;AAAF,OAA3B;AACA,YAAMA,GAAN;AACD;AACF;;AAnG0E;;;;"}
1
+ {"version":3,"file":"AlpNodeApp-node14.mjs","sources":["../src/AlpNodeApp.ts"],"sourcesContent":["import type { IncomingMessage, Server, ServerResponse } from 'http';\nimport path from 'path';\nimport { deprecate } from 'util';\nimport _listen from 'alp-listen';\nimport type { Config } from 'alp-node-config';\nimport _config from 'alp-node-config';\nimport errors from 'alp-node-errors';\nimport language from 'alp-node-language';\nimport params from 'alp-params';\nimport translate from 'alp-translate';\nimport type {\n NodeApplication,\n NodeConfig,\n Context as AlpContext,\n ContextState,\n ContextSanitizedState,\n ContextRequest,\n} from 'alp-types';\nimport Koa from 'koa';\nimport type { ParameterizedContext, DefaultState, BaseRequest } from 'koa';\nimport compress from 'koa-compress';\nimport serve from 'koa-static';\nimport { Logger } from 'nightingale-logger';\n\nconst logger = new Logger('alp');\n\nexport interface AlpNodeAppOptions {\n appDirname: string;\n packageDirname: string;\n config: Config & NodeConfig;\n certPath?: string;\n publicPath?: string;\n}\n\ndeclare module 'koa' {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface DefaultState extends ContextState {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface DefaultContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface BaseContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface BaseRequest extends ContextRequest {}\n}\n\nexport class AlpNodeApp extends Koa<ContextState> implements NodeApplication {\n dirname: string;\n\n certPath: string;\n\n publicPath: string;\n\n config: NodeConfig & Config;\n\n declare request: BaseRequest & ContextRequest;\n\n _server?: Server;\n\n /**\n * @param {Object} [options]\n * @param {string} [options.certPath] directory of the ssl certificates\n * @param {string} [options.publicPath] directory of public files\n */\n constructor({\n appDirname,\n packageDirname,\n config,\n certPath,\n publicPath,\n }: AlpNodeAppOptions) {\n super();\n\n this.dirname = path.normalize(appDirname);\n\n Object.defineProperty(this, 'packageDirname', {\n get: deprecate(() => packageDirname, 'packageDirname'),\n configurable: false,\n enumerable: false,\n });\n\n this.certPath = certPath || `${packageDirname}/config/cert`;\n this.publicPath = publicPath || `${packageDirname}/public/`;\n\n this.config = _config(this, config);\n this.context.config = this.config;\n\n params(this);\n language(this);\n translate('locales')(this);\n\n this.use(compress());\n }\n\n existsConfigSync(name: string): ReturnType<Config['existsConfigSync']> {\n return this.config.existsConfigSync(name);\n }\n\n loadConfigSync(name: string): ReturnType<Config['loadConfigSync']> {\n return this.config.loadConfigSync(name);\n }\n\n createContext<StateT = DefaultState>(\n req: IncomingMessage,\n res: ServerResponse,\n ): ParameterizedContext<StateT> {\n const ctx = super.createContext<StateT>(req, res);\n ctx.sanitizedState = {} as ContextSanitizedState;\n return ctx;\n }\n\n servePublic(): void {\n this.use(serve(this.publicPath)); // static files\n }\n\n catchErrors(): void {\n this.use(errors);\n }\n\n listen(): Server {\n throw new Error('Use start instead');\n }\n\n /**\n * Close server and emit close event\n */\n close(): void {\n if (this._server) {\n this._server.close();\n this.emit('close');\n }\n }\n\n async start(fn: () => Promise<void> | void): Promise<Server> {\n await fn();\n try {\n const server = await _listen(this.config, this.callback(), this.certPath);\n this._server = server;\n logger.success('started');\n if (process.send) process.send('ready');\n return server;\n } catch (err: unknown) {\n logger.error('start fail', { err });\n throw err;\n }\n }\n}\n\nexport type { Context } from 'koa';\n"],"names":["logger","Logger","AlpNodeApp","Koa","constructor","appDirname","packageDirname","config","certPath","publicPath","dirname","path","normalize","Object","defineProperty","get","deprecate","configurable","enumerable","_config","context","params","language","translate","use","compress","existsConfigSync","name","loadConfigSync","createContext","req","res","ctx","sanitizedState","servePublic","serve","catchErrors","errors","listen","Error","close","_server","emit","start","fn","server","_listen","callback","success","process","send","err","error"],"mappings":";;;;;;;;;;;;;AAwBA,MAAMA,MAAM,GAAG,IAAIC,MAAJ,CAAW,KAAX,CAAf;AAqBO,MAAMC,UAAN,SAAyBC,GAAzB,CAAsE;;AAc7E;AACA;AACA;AACA;EACEC,WAAW,CAAC;IACVC,UADU;IAEVC,cAFU;IAGVC,MAHU;IAIVC,QAJU;IAKVC;GALS,EAMW;IACpB;IAEA,KAAKC,OAAL,GAAeC,IAAI,CAACC,SAAL,CAAeP,UAAf,CAAf;IAEAQ,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,gBAA5B,EAA8C;MAC5CC,GAAG,EAAEC,SAAS,CAAC,MAAMV,cAAP,EAAuB,gBAAvB,CAD8B;MAE5CW,YAAY,EAAE,KAF8B;MAG5CC,UAAU,EAAE;KAHd;IAMA,KAAKV,QAAL,GAAgBA,QAAQ,IAAK,GAAEF,cAAe,cAA9C;IACA,KAAKG,UAAL,GAAkBA,UAAU,IAAK,GAAEH,cAAe,UAAlD;IAEA,KAAKC,MAAL,GAAcY,OAAO,CAAC,IAAD,EAAOZ,MAAP,CAArB;IACA,KAAKa,OAAL,CAAab,MAAb,GAAsB,KAAKA,MAA3B;IAEAc,MAAM,CAAC,IAAD,CAAN;IACAC,QAAQ,CAAC,IAAD,CAAR;IACAC,SAAS,CAAC,SAAD,CAAT,CAAqB,IAArB;IAEA,KAAKC,GAAL,CAASC,QAAQ,EAAjB;;;EAGFC,gBAAgB,CAACC,IAAD,EAAuD;IACrE,OAAO,KAAKpB,MAAL,CAAYmB,gBAAZ,CAA6BC,IAA7B,CAAP;;;EAGFC,cAAc,CAACD,IAAD,EAAqD;IACjE,OAAO,KAAKpB,MAAL,CAAYqB,cAAZ,CAA2BD,IAA3B,CAAP;;;EAGFE,aAAa,CACXC,GADW,EAEXC,GAFW,EAGmB;IAC9B,MAAMC,GAAG,GAAG,MAAMH,aAAN,CAA4BC,GAA5B,EAAiCC,GAAjC,CAAZ;IACAC,GAAG,CAACC,cAAJ,GAAqB,EAArB;IACA,OAAOD,GAAP;;;EAGFE,WAAW,GAAS;IAClB,KAAKV,GAAL,CAASW,KAAK,CAAC,KAAK1B,UAAN,CAAd,EADkB;;;EAIpB2B,WAAW,GAAS;IAClB,KAAKZ,GAAL,CAASa,MAAT;;;EAGFC,MAAM,GAAW;IACf,MAAM,IAAIC,KAAJ,CAAU,mBAAV,CAAN;;;AAIJ;AACA;;;EACEC,KAAK,GAAS;IACZ,IAAI,KAAKC,OAAT,EAAkB;MAChB,KAAKA,OAAL,CAAaD,KAAb;;MACA,KAAKE,IAAL,CAAU,OAAV;;;;EAIO,MAALC,KAAK,CAACC,EAAD,EAAkD;IAC3D,MAAMA,EAAE,EAAR;;IACA,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMC,OAAO,CAAC,KAAKvC,MAAN,EAAc,KAAKwC,QAAL,EAAd,EAA+B,KAAKvC,QAApC,CAA5B;MACA,KAAKiC,OAAL,GAAeI,MAAf;MACA7C,MAAM,CAACgD,OAAP,CAAe,SAAf;MACA,IAAIC,OAAO,CAACC,IAAZ,EAAkBD,OAAO,CAACC,IAAR,CAAa,OAAb;MAClB,OAAOL,MAAP;KALF,CAME,OAAOM,GAAP,EAAqB;MACrBnD,MAAM,CAACoD,KAAP,CAAa,YAAb,EAA2B;QAAED;OAA7B;MACA,MAAMA,GAAN;;;;AAjGuE;;;;"}
@@ -102,8 +102,7 @@ class AlpNodeApp extends Koa {
102
102
 
103
103
  }
104
104
 
105
- const logger = new Logger('alp'); // see alp-dev
106
-
105
+ const logger = new Logger('alp');
107
106
  const appDirname = path.resolve('build');
108
107
  const packagePath = path.resolve('package.json');
109
108
 
@@ -1 +1 @@
1
- {"version":3,"file":"index-node14.mjs","sources":["../src/AlpNodeApp.ts","../src/index.ts"],"sourcesContent":["import type { IncomingMessage, Server, ServerResponse } from 'http';\nimport path from 'path';\nimport { deprecate } from 'util';\nimport _listen from 'alp-listen';\nimport type { Config } from 'alp-node-config';\nimport _config from 'alp-node-config';\nimport errors from 'alp-node-errors';\nimport language from 'alp-node-language';\nimport params from 'alp-params';\nimport translate from 'alp-translate';\nimport type {\n NodeApplication,\n NodeConfig,\n Context as AlpContext,\n ContextState,\n ContextSanitizedState,\n ContextRequest,\n} from 'alp-types';\nimport Koa from 'koa';\nimport type { ParameterizedContext, DefaultState, BaseRequest } from 'koa';\nimport compress from 'koa-compress';\nimport serve from 'koa-static';\nimport { Logger } from 'nightingale-logger';\n\nconst logger = new Logger('alp');\n\nexport interface AlpNodeAppOptions {\n appDirname: string;\n packageDirname: string;\n config: Config & NodeConfig;\n certPath?: string;\n publicPath?: string;\n}\n\ndeclare module 'koa' {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface DefaultState extends ContextState {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface DefaultContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface BaseContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface BaseRequest extends ContextRequest {}\n}\n\nexport class AlpNodeApp extends Koa<ContextState> implements NodeApplication {\n dirname: string;\n\n certPath: string;\n\n publicPath: string;\n\n config: NodeConfig & Config;\n\n declare request: BaseRequest & ContextRequest;\n\n _server?: Server;\n\n /**\n * @param {Object} [options]\n * @param {string} [options.certPath] directory of the ssl certificates\n * @param {string} [options.publicPath] directory of public files\n */\n constructor({\n appDirname,\n packageDirname,\n config,\n certPath,\n publicPath,\n }: AlpNodeAppOptions) {\n super();\n\n this.dirname = path.normalize(appDirname);\n\n Object.defineProperty(this, 'packageDirname', {\n get: deprecate(() => packageDirname, 'packageDirname'),\n configurable: false,\n enumerable: false,\n });\n\n this.certPath = certPath || `${packageDirname}/config/cert`;\n this.publicPath = publicPath || `${packageDirname}/public/`;\n\n this.config = _config(this, config);\n this.context.config = this.config;\n\n params(this);\n language(this);\n translate('locales')(this);\n\n this.use(compress());\n }\n\n existsConfigSync(name: string): ReturnType<Config['existsConfigSync']> {\n return this.config.existsConfigSync(name);\n }\n\n loadConfigSync(name: string): ReturnType<Config['loadConfigSync']> {\n return this.config.loadConfigSync(name);\n }\n\n createContext<StateT = DefaultState>(\n req: IncomingMessage,\n res: ServerResponse,\n ): ParameterizedContext<StateT> {\n const ctx = super.createContext<StateT>(req, res);\n ctx.sanitizedState = {} as ContextSanitizedState;\n return ctx;\n }\n\n servePublic(): void {\n this.use(serve(this.publicPath)); // static files\n }\n\n catchErrors(): void {\n this.use(errors);\n }\n\n listen(): Server {\n throw new Error('Use start instead');\n }\n\n /**\n * Close server and emit close event\n */\n close(): void {\n if (this._server) {\n this._server.close();\n this.emit('close');\n }\n }\n\n async start(fn: () => Promise<void> | void): Promise<Server> {\n await fn();\n try {\n const server = await _listen(this.config, this.callback(), this.certPath);\n this._server = server;\n logger.success('started');\n if (process.send) process.send('ready');\n return server;\n } catch (err: unknown) {\n logger.error('start fail', { err });\n throw err;\n }\n }\n}\n\nexport type { Context } from 'koa';\n","import { existsSync, readFileSync } from 'fs';\nimport path from 'path';\nimport { Config } from 'alp-node-config';\nimport { Logger } from 'nightingale-logger';\nimport type { AlpNodeAppOptions } from './AlpNodeApp';\nimport { AlpNodeApp } from './AlpNodeApp';\n\nexport { default as fetch } from 'node-fetch';\n\nexport type { Context } from './AlpNodeApp';\nexport { Config } from 'alp-node-config';\n\nconst logger = new Logger('alp');\n\n// see alp-dev\nexport const appDirname = path.resolve('build');\n\nconst packagePath = path.resolve('package.json');\nif (!packagePath) {\n throw new Error(`Could not find package.json: \"${String(packagePath)}\"`);\n}\nexport const packageDirname = path.dirname(packagePath);\n\nlogger.debug('init', { appDirname, packageDirname });\n\nexport const packageConfig: Record<string, unknown> = JSON.parse(\n readFileSync(packagePath, 'utf-8'),\n) as Record<string, unknown>;\n\nconst buildedConfigPath = `${appDirname}/build/config/`;\nconst configPath = existsSync(buildedConfigPath)\n ? buildedConfigPath\n : `${appDirname}/config/`;\n\nexport const config = new Config(configPath).loadSync({ packageConfig });\n\nexport type AppOptions = Omit<\n AlpNodeAppOptions,\n 'appDirname' | 'packageDirname' | 'config'\n>;\n\nexport default class App extends AlpNodeApp {\n constructor(options?: AppOptions) {\n super({\n ...options,\n appDirname,\n packageDirname,\n config,\n });\n }\n}\n"],"names":["logger","Logger","AlpNodeApp","Koa","constructor","appDirname","packageDirname","config","certPath","publicPath","dirname","path","normalize","Object","defineProperty","get","deprecate","configurable","enumerable","_config","context","params","language","translate","use","compress","existsConfigSync","name","loadConfigSync","createContext","req","res","ctx","sanitizedState","servePublic","serve","catchErrors","errors","listen","Error","close","_server","emit","start","fn","server","_listen","callback","success","process","send","err","error","resolve","packagePath","String","debug","packageConfig","JSON","parse","readFileSync","buildedConfigPath","configPath","existsSync","Config","loadSync","App","options"],"mappings":"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"}
1
+ {"version":3,"file":"index-node14.mjs","sources":["../src/AlpNodeApp.ts","../src/index.ts"],"sourcesContent":["import type { IncomingMessage, Server, ServerResponse } from 'http';\nimport path from 'path';\nimport { deprecate } from 'util';\nimport _listen from 'alp-listen';\nimport type { Config } from 'alp-node-config';\nimport _config from 'alp-node-config';\nimport errors from 'alp-node-errors';\nimport language from 'alp-node-language';\nimport params from 'alp-params';\nimport translate from 'alp-translate';\nimport type {\n NodeApplication,\n NodeConfig,\n Context as AlpContext,\n ContextState,\n ContextSanitizedState,\n ContextRequest,\n} from 'alp-types';\nimport Koa from 'koa';\nimport type { ParameterizedContext, DefaultState, BaseRequest } from 'koa';\nimport compress from 'koa-compress';\nimport serve from 'koa-static';\nimport { Logger } from 'nightingale-logger';\n\nconst logger = new Logger('alp');\n\nexport interface AlpNodeAppOptions {\n appDirname: string;\n packageDirname: string;\n config: Config & NodeConfig;\n certPath?: string;\n publicPath?: string;\n}\n\ndeclare module 'koa' {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface DefaultState extends ContextState {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface DefaultContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface BaseContext extends AlpContext {}\n // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-shadow\n interface BaseRequest extends ContextRequest {}\n}\n\nexport class AlpNodeApp extends Koa<ContextState> implements NodeApplication {\n dirname: string;\n\n certPath: string;\n\n publicPath: string;\n\n config: NodeConfig & Config;\n\n declare request: BaseRequest & ContextRequest;\n\n _server?: Server;\n\n /**\n * @param {Object} [options]\n * @param {string} [options.certPath] directory of the ssl certificates\n * @param {string} [options.publicPath] directory of public files\n */\n constructor({\n appDirname,\n packageDirname,\n config,\n certPath,\n publicPath,\n }: AlpNodeAppOptions) {\n super();\n\n this.dirname = path.normalize(appDirname);\n\n Object.defineProperty(this, 'packageDirname', {\n get: deprecate(() => packageDirname, 'packageDirname'),\n configurable: false,\n enumerable: false,\n });\n\n this.certPath = certPath || `${packageDirname}/config/cert`;\n this.publicPath = publicPath || `${packageDirname}/public/`;\n\n this.config = _config(this, config);\n this.context.config = this.config;\n\n params(this);\n language(this);\n translate('locales')(this);\n\n this.use(compress());\n }\n\n existsConfigSync(name: string): ReturnType<Config['existsConfigSync']> {\n return this.config.existsConfigSync(name);\n }\n\n loadConfigSync(name: string): ReturnType<Config['loadConfigSync']> {\n return this.config.loadConfigSync(name);\n }\n\n createContext<StateT = DefaultState>(\n req: IncomingMessage,\n res: ServerResponse,\n ): ParameterizedContext<StateT> {\n const ctx = super.createContext<StateT>(req, res);\n ctx.sanitizedState = {} as ContextSanitizedState;\n return ctx;\n }\n\n servePublic(): void {\n this.use(serve(this.publicPath)); // static files\n }\n\n catchErrors(): void {\n this.use(errors);\n }\n\n listen(): Server {\n throw new Error('Use start instead');\n }\n\n /**\n * Close server and emit close event\n */\n close(): void {\n if (this._server) {\n this._server.close();\n this.emit('close');\n }\n }\n\n async start(fn: () => Promise<void> | void): Promise<Server> {\n await fn();\n try {\n const server = await _listen(this.config, this.callback(), this.certPath);\n this._server = server;\n logger.success('started');\n if (process.send) process.send('ready');\n return server;\n } catch (err: unknown) {\n logger.error('start fail', { err });\n throw err;\n }\n }\n}\n\nexport type { Context } from 'koa';\n","import { existsSync, readFileSync } from 'fs';\nimport path from 'path';\nimport { Config } from 'alp-node-config';\nimport { Logger } from 'nightingale-logger';\nimport type { AlpNodeAppOptions } from './AlpNodeApp';\nimport { AlpNodeApp } from './AlpNodeApp';\n\nexport { default as fetch } from 'node-fetch';\n\nexport type { Context } from './AlpNodeApp';\nexport { Config } from 'alp-node-config';\n\nconst logger = new Logger('alp');\n\nexport const appDirname = path.resolve('build');\n\nconst packagePath = path.resolve('package.json');\nif (!packagePath) {\n throw new Error(`Could not find package.json: \"${String(packagePath)}\"`);\n}\nexport const packageDirname = path.dirname(packagePath);\n\nlogger.debug('init', { appDirname, packageDirname });\n\nexport const packageConfig: Record<string, unknown> = JSON.parse(\n readFileSync(packagePath, 'utf-8'),\n) as Record<string, unknown>;\n\nconst buildedConfigPath = `${appDirname}/build/config/`;\nconst configPath = existsSync(buildedConfigPath)\n ? buildedConfigPath\n : `${appDirname}/config/`;\n\nexport const config = new Config(configPath).loadSync({ packageConfig });\n\nexport type AppOptions = Omit<\n AlpNodeAppOptions,\n 'appDirname' | 'packageDirname' | 'config'\n>;\n\nexport default class App extends AlpNodeApp {\n constructor(options?: AppOptions) {\n super({\n ...options,\n appDirname,\n packageDirname,\n config,\n });\n }\n}\n"],"names":["logger","Logger","AlpNodeApp","Koa","constructor","appDirname","packageDirname","config","certPath","publicPath","dirname","path","normalize","Object","defineProperty","get","deprecate","configurable","enumerable","_config","context","params","language","translate","use","compress","existsConfigSync","name","loadConfigSync","createContext","req","res","ctx","sanitizedState","servePublic","serve","catchErrors","errors","listen","Error","close","_server","emit","start","fn","server","_listen","callback","success","process","send","err","error","resolve","packagePath","String","debug","packageConfig","JSON","parse","readFileSync","buildedConfigPath","configPath","existsSync","Config","loadSync","App","options"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAE9C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKzC,eAAO,MAAM,UAAU,QAAwB,CAAC;AAMhD,eAAO,MAAM,cAAc,QAA4B,CAAC;AAIxD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAEtB,CAAC;AAO7B,eAAO,MAAM,MAAM,yCAAqD,CAAC;AAEzE,oBAAY,UAAU,GAAG,IAAI,CAC3B,iBAAiB,EACjB,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAC3C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,UAAU;gBAC7B,OAAO,CAAC,EAAE,UAAU;CAQjC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAE9C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,eAAO,MAAM,UAAU,QAAwB,CAAC;AAMhD,eAAO,MAAM,cAAc,QAA4B,CAAC;AAIxD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAEtB,CAAC;AAO7B,eAAO,MAAM,MAAM,yCAAqD,CAAC;AAEzE,oBAAY,UAAU,GAAG,IAAI,CAC3B,iBAAiB,EACjB,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAC3C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,UAAU;gBAC7B,OAAO,CAAC,EAAE,UAAU;CAQjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alp-node",
3
- "version": "4.1.3",
3
+ "version": "4.1.4",
4
4
  "description": "framework based on koa 2",
5
5
  "keywords": [
6
6
  "springbokjs",
@@ -94,12 +94,12 @@
94
94
  "@types/koa": "^2.13.1",
95
95
  "@types/node": ">=14.0.0",
96
96
  "@types/node-fetch": "^3.0.3",
97
- "alp-listen": "5.0.4",
98
- "alp-node-config": "7.0.4",
99
- "alp-node-errors": "6.0.4",
100
- "alp-node-language": "5.1.4",
101
- "alp-params": "4.2.3",
102
- "alp-translate": "6.0.5",
97
+ "alp-listen": "5.0.5",
98
+ "alp-node-config": "7.0.5",
99
+ "alp-node-errors": "6.0.5",
100
+ "alp-node-language": "5.1.5",
101
+ "alp-params": "4.2.4",
102
+ "alp-translate": "6.0.6",
103
103
  "alp-types": "3.1.0",
104
104
  "koa": "^2.13.1",
105
105
  "koa-compress": "^5.0.0",
@@ -115,5 +115,5 @@
115
115
  "pob-babel": "32.2.0",
116
116
  "typescript": "4.6.2"
117
117
  },
118
- "gitHead": "b6ce6531ed3bd7f594c7e3068c730864776824a0"
118
+ "gitHead": "81644a1b75145fc792fadce0c04096aea046994b"
119
119
  }
package/src/index.ts CHANGED
@@ -12,7 +12,6 @@ export { Config } from 'alp-node-config';
12
12
 
13
13
  const logger = new Logger('alp');
14
14
 
15
- // see alp-dev
16
15
  export const appDirname = path.resolve('build');
17
16
 
18
17
  const packagePath = path.resolve('package.json');