@asenajs/asena 0.3.0 → 0.3.1
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/README.md +28 -32
- package/dist/lib/server/AsenaServer.js +2 -2
- package/dist/lib/server/AsenaServer.js.map +1 -1
- package/dist/lib/server/src/services/PrepareConfigService.js +1 -1
- package/dist/lib/server/src/services/PrepareConfigService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareMiddlewareService.js +4 -2
- package/dist/lib/server/src/services/PrepareMiddlewareService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js +15 -15
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Asena
|
|
2
2
|
|
|
3
|
-
Asena is a NestJS-like IoC web framework built on top of
|
|
3
|
+
Asena is a NestJS-like IoC web framework built on top of Bun. It combines the power of dependency injection
|
|
4
4
|
with the performance of Bun runtime and the flexibility of Adapter design system.
|
|
5
5
|
|
|
6
6
|
## Documentation
|
|
7
7
|
|
|
8
|
-
For detailed documentation, please visit [not ready yet](https://asena.sh). Documentation is still in progress, but updates are being made regularly.
|
|
8
|
+
For detailed documentation, please visit [not ready yet](https://asena.sh). Documentation is still in progress, but updates are being made regularly. You can check this project [AsenaExample](https://github.com/LibirSoft/AsenaExample). I am always updating it to latest usages.
|
|
9
9
|
|
|
10
10
|
## Key Features
|
|
11
11
|
|
|
@@ -19,12 +19,6 @@ For detailed documentation, please visit [not ready yet](https://asena.sh). Docu
|
|
|
19
19
|
- **TypeScript Support**: Full TypeScript support with strict mode
|
|
20
20
|
- **Modular Architecture**: Easy to extend and customize
|
|
21
21
|
|
|
22
|
-
## Installation
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
bun add @asenajs/asena
|
|
26
|
-
```
|
|
27
|
-
|
|
28
22
|
## Quick Start
|
|
29
23
|
|
|
30
24
|
The easiest way to create a new Asena project is using the CLI:
|
|
@@ -36,6 +30,7 @@ asena create
|
|
|
36
30
|
```
|
|
37
31
|
|
|
38
32
|
This will create a new project with the following structure:
|
|
33
|
+
|
|
39
34
|
```
|
|
40
35
|
├── src/
|
|
41
36
|
│ ├── controllers/
|
|
@@ -47,6 +42,8 @@ This will create a new project with the following structure:
|
|
|
47
42
|
├── .eslintignore
|
|
48
43
|
└── .prettierrc.js
|
|
49
44
|
```
|
|
45
|
+
## Alternative start
|
|
46
|
+
|
|
50
47
|
|
|
51
48
|
Alternatively, you can create a project manually:
|
|
52
49
|
|
|
@@ -89,24 +86,26 @@ For decorators working properly, you need to add some settings to your tsconfig.
|
|
|
89
86
|
}
|
|
90
87
|
}
|
|
91
88
|
```
|
|
92
|
-
|
|
93
|
-
Then, install
|
|
94
|
-
|
|
89
|
+
After that you need to make sure to edit your tsConfig.json it should look like this
|
|
90
|
+
Then, install these packages:
|
|
91
|
+
* `@asenajs/asena`: Base package
|
|
92
|
+
* `@asenajs/hono-adapter`: For web-server. Asena currently only support hono adapter.
|
|
93
|
+
* `@asenajs/asena-logger`: For better logs
|
|
95
94
|
```bash
|
|
96
|
-
bun
|
|
95
|
+
bun install @asenajs/asena @asenajs/hono-adapter @asenajs/asena-logger
|
|
97
96
|
```
|
|
98
97
|
|
|
99
|
-
|
|
98
|
+
* `@asenajs/asena-cli`: This package provides a CLI for creating and managing Asena projects.
|
|
100
99
|
|
|
101
100
|
```bash
|
|
102
|
-
bun
|
|
101
|
+
bun install -D @asenajs/asena-cli
|
|
103
102
|
```
|
|
104
|
-
|
|
105
|
-
Then, create a new asena-config.ts file using the CLI:
|
|
103
|
+
After installation, you need to create asena-config.ts file you can create it with asena-cli
|
|
106
104
|
|
|
107
105
|
```bash
|
|
108
106
|
asena init
|
|
109
107
|
```
|
|
108
|
+
this will create you asena-config file.
|
|
110
109
|
|
|
111
110
|
`Note`: Built options directly copy of bun options, you can check bun documentation for more
|
|
112
111
|
options. [Bun Documentation](https://bun.sh/docs/bundler#reference)
|
|
@@ -115,15 +114,14 @@ Create index.ts file under your src folder:
|
|
|
115
114
|
|
|
116
115
|
```typescript
|
|
117
116
|
// src/index.ts
|
|
118
|
-
import {
|
|
119
|
-
import {
|
|
120
|
-
import {
|
|
121
|
-
|
|
122
|
-
const [
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
.start(true);
|
|
117
|
+
import {AsenaServer} from '@asenajs/asena';
|
|
118
|
+
import {createHonoAdapter} from '@asenajs/hono-adapter';
|
|
119
|
+
import {logger} from './logger/logger';
|
|
120
|
+
|
|
121
|
+
const [honoAdapter,asenaLogger] = createHonoAdapter(logger);
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
await new AsenaServer(honoAdapter, asenaLogger).port(3000).start();
|
|
127
125
|
```
|
|
128
126
|
|
|
129
127
|
To run asena you need at least one controller. Create a new controller:
|
|
@@ -136,10 +134,10 @@ import { Get } from '@asenajs/asena/web';
|
|
|
136
134
|
|
|
137
135
|
@Controller('/hello')
|
|
138
136
|
export class TestController {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
137
|
+
@Get('/world')
|
|
138
|
+
public async getHello(context: Context) {
|
|
139
|
+
return context.send('Hello World');
|
|
140
|
+
}
|
|
143
141
|
}
|
|
144
142
|
```
|
|
145
143
|
|
|
@@ -160,8 +158,7 @@ bun index.asena.js
|
|
|
160
158
|
## CLI Commands
|
|
161
159
|
|
|
162
160
|
For more information about CLI commands and usage, please visit:
|
|
163
|
-
[Asena CLI Documentation](https://
|
|
164
|
-
|
|
161
|
+
[Asena CLI Documentation](https://asena.sh/docs/cli/overview.html)
|
|
165
162
|
|
|
166
163
|
## Project Structure
|
|
167
164
|
|
|
@@ -172,7 +169,6 @@ lib/
|
|
|
172
169
|
├── ioc/ # Dependency injection container
|
|
173
170
|
├── utils/ # Utility functions
|
|
174
171
|
├── test/ # Test utilities
|
|
175
|
-
└── logger/ # Logging system
|
|
176
172
|
```
|
|
177
173
|
|
|
178
174
|
## Core Concepts
|
|
@@ -37,7 +37,7 @@ export class AsenaServer {
|
|
|
37
37
|
async initialize() {
|
|
38
38
|
const config = await readConfigFile();
|
|
39
39
|
if (!config) {
|
|
40
|
-
this._logger.warn('
|
|
40
|
+
this._logger.warn('asena-config file not found');
|
|
41
41
|
}
|
|
42
42
|
this._ioc = new IocEngine(config);
|
|
43
43
|
await this._ioc.searchAndRegister(this._components);
|
|
@@ -172,7 +172,7 @@ export class AsenaServer {
|
|
|
172
172
|
await this._adapter.use(middleware);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
const name =
|
|
175
|
+
const name = getOwnTypedMetadata(ComponentConstants.NameKey, configInstance.constructor);
|
|
176
176
|
this._logger.info(`Config ${yellow(name)} applied`);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;AAUvE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAqB,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AAEjG,MAAM,OAAO,WAAW;IAEd,KAAK,CAAS;IAEd,WAAW,GAAY,EAAE,CAAC;IAE1B,WAAW,GAA0B,EAAE,CAAC;IAExC,IAAI,CAAY;IAEhB,OAAO,CAAe;IAEb,QAAQ,CAAI;IAErB,iBAAiB,CAA2B;IAE5C,oBAAoB,CAAuB;IAE3C,uBAAuB,CAA0B;IAEjD,uBAAuB,CAA0B;IAEjD,+BAA+B,CAAkC;IAEzE,YAAmB,OAAU,EAAE,MAAoB;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;;;;;6BAMO,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export class PrepareConfigService extends PrepareService {
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const name = getTypedMetadata(ComponentConstants.NameKey, config[0].constructor);
|
|
28
|
-
this.logger.info(`
|
|
28
|
+
this.logger.info(`AsenaConfig service found ${yellow(name)}`);
|
|
29
29
|
return configInstance;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrepareConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAqB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAEtD,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAc,aAAa,CAAC,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"PrepareConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAqB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAEtD,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAc,aAAa,CAAC,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9D,OAAO,cAAc,CAAC;IACxB,CAAC;CAEF"}
|
|
@@ -14,13 +14,15 @@ export class PrepareMiddlewareService extends PrepareService {
|
|
|
14
14
|
const preparedMiddlewares = [];
|
|
15
15
|
for (const middleware of middlewares) {
|
|
16
16
|
const name = getTypedMetadata(ComponentConstants.NameKey, middleware);
|
|
17
|
-
const override = getTypedMetadata(ComponentConstants.OverrideKey, middleware);
|
|
18
|
-
const isOverride = override ? override.includes('handle') : false;
|
|
19
17
|
const instances = await this.container.resolve(name);
|
|
20
18
|
if (!instances)
|
|
21
19
|
continue;
|
|
22
20
|
const normalizedInstances = Array.isArray(instances) ? instances : [instances];
|
|
21
|
+
let override;
|
|
22
|
+
let isOverride;
|
|
23
23
|
for (const instance of normalizedInstances) {
|
|
24
|
+
override = getTypedMetadata(ComponentConstants.OverrideKey, instance);
|
|
25
|
+
isOverride = override ? override.includes('handle') : false;
|
|
24
26
|
preparedMiddlewares.push({
|
|
25
27
|
handle: instance.handle.bind(instance),
|
|
26
28
|
override: isOverride,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrepareMiddlewareService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareMiddlewareService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAE1D,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,WAA8B;QACjD,MAAM,mBAAmB,GAAqB,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PrepareMiddlewareService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareMiddlewareService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAE1D,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,WAA8B;QACjD,MAAM,mBAAmB,GAAqB,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAE9E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAyB,IAAI,CAAC,CAAC;YAE7E,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/E,IAAI,QAAkB,CAAC;YACvB,IAAI,UAAmB,CAAC;YAExB,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,QAAQ,GAAG,gBAAgB,CAAW,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAEhF,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE5D,mBAAmB,CAAC,IAAI,CAAC;oBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtC,QAAQ,EAAE,UAAU;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CAEF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PrepareService } from '../PrepareService';
|
|
2
|
-
import { getTypedMetadata } from '../../../utils/typedMetadata';
|
|
2
|
+
import { getOwnTypedMetadata, getTypedMetadata } from '../../../utils/typedMetadata';
|
|
3
3
|
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
4
|
export class PrepareStaticServeConfigService extends PrepareService {
|
|
5
5
|
constructor(container, logger) {
|
|
@@ -9,16 +9,16 @@ export class PrepareStaticServeConfigService extends PrepareService {
|
|
|
9
9
|
if (!staticServeClass) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
const name =
|
|
13
|
-
const root =
|
|
14
|
-
const
|
|
15
|
-
if (!
|
|
12
|
+
const name = getOwnTypedMetadata(ComponentConstants.NameKey, staticServeClass);
|
|
13
|
+
const root = getOwnTypedMetadata(ComponentConstants.StaticServeRootKey, staticServeClass);
|
|
14
|
+
const staticServeServiceInstance = await this.container.resolve(name);
|
|
15
|
+
if (!staticServeServiceInstance) {
|
|
16
16
|
throw new Error(`Static Serve service ${name} not found.`);
|
|
17
17
|
}
|
|
18
|
-
if (Array.isArray(
|
|
18
|
+
if (Array.isArray(staticServeServiceInstance)) {
|
|
19
19
|
throw new Error('Static serve service cannot be array');
|
|
20
20
|
}
|
|
21
|
-
const overrides = getTypedMetadata(ComponentConstants.OverrideKey,
|
|
21
|
+
const overrides = getTypedMetadata(ComponentConstants.OverrideKey, staticServeServiceInstance);
|
|
22
22
|
const baseStaticServeParams = {
|
|
23
23
|
extra: undefined,
|
|
24
24
|
root,
|
|
@@ -26,21 +26,21 @@ export class PrepareStaticServeConfigService extends PrepareService {
|
|
|
26
26
|
onFound: undefined,
|
|
27
27
|
onNotFound: undefined,
|
|
28
28
|
};
|
|
29
|
-
if (
|
|
30
|
-
baseStaticServeParams.extra =
|
|
29
|
+
if (staticServeServiceInstance.extra) {
|
|
30
|
+
baseStaticServeParams.extra = staticServeServiceInstance.extra;
|
|
31
31
|
}
|
|
32
|
-
if (
|
|
33
|
-
baseStaticServeParams.rewriteRequestPath =
|
|
32
|
+
if (staticServeServiceInstance.rewriteRequestPath) {
|
|
33
|
+
baseStaticServeParams.rewriteRequestPath = staticServeServiceInstance.rewriteRequestPath;
|
|
34
34
|
}
|
|
35
|
-
if (
|
|
35
|
+
if (staticServeServiceInstance.onFound) {
|
|
36
36
|
baseStaticServeParams.onFound = {
|
|
37
|
-
handler:
|
|
37
|
+
handler: staticServeServiceInstance.onFound.bind(staticServeServiceInstance),
|
|
38
38
|
override: overrides?.includes('onFound'),
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
if (
|
|
41
|
+
if (staticServeServiceInstance.onNotFound) {
|
|
42
42
|
baseStaticServeParams.onNotFound = {
|
|
43
|
-
handler:
|
|
43
|
+
handler: staticServeServiceInstance.onNotFound.bind(staticServeServiceInstance),
|
|
44
44
|
override: overrides?.includes('onNotFound'),
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrepareStaticServeConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareStaticServeConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"PrepareStaticServeConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareStaticServeConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,MAAM,OAAO,+BAAgC,SAAQ,cAAc;IAEjE,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,gBAAkC;QACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,mBAAmB,CAAS,kBAAkB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAElG,MAAM,0BAA0B,GAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAA+B,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAa,gBAAgB,CAAW,kBAAkB,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QAEnH,MAAM,qBAAqB,GAA0B;YACnD,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,kBAAkB,EAAE,SAAS;YAC7B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,IAAI,0BAA0B,CAAC,KAAK,EAAE,CAAC;YACrC,qBAAqB,CAAC,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC;QACjE,CAAC;QAED,IAAI,0BAA0B,CAAC,kBAAkB,EAAE,CAAC;YAClD,qBAAqB,CAAC,kBAAkB,GAAG,0BAA0B,CAAC,kBAAkB,CAAC;QAC3F,CAAC;QAED,IAAI,0BAA0B,CAAC,OAAO,EAAE,CAAC;YACvC,qBAAqB,CAAC,OAAO,GAAG;gBAC9B,OAAO,EAAE,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC;gBAC5E,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,0BAA0B,CAAC,UAAU,EAAE,CAAC;YAC1C,qBAAqB,CAAC,UAAU,GAAG;gBACjC,OAAO,EAAE,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC;gBAC/E,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;aAC5C,CAAC;QACJ,CAAC;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;CAEF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asenajs/asena",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"author": "LibirSoft",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -97,7 +97,8 @@
|
|
|
97
97
|
"scripts": {
|
|
98
98
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
99
99
|
"build": "bun run clean && tsc",
|
|
100
|
-
"clean": "rm -rf dist"
|
|
100
|
+
"clean": "rm -rf dist",
|
|
101
|
+
"pre-release": "bun update && bun run build"
|
|
101
102
|
},
|
|
102
103
|
"types": "dist/index.d.ts"
|
|
103
104
|
}
|