vona-module-a-static 5.0.28 → 5.1.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.
- package/LICENSE +0 -0
- package/dist/.metadata/index.d.ts +1 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +1 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/event.resolvePath.d.ts +2 -1
- package/dist/bean/event.resolvePath.d.ts.map +1 -0
- package/dist/bean/middlewareSystem.static.d.ts +1 -0
- package/dist/bean/middlewareSystem.static.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -0
- package/dist/lib/beanAssetBase.d.ts +1 -0
- package/dist/lib/beanAssetBase.d.ts.map +1 -0
- package/dist/lib/beanStaticBase.d.ts +1 -0
- package/dist/lib/beanStaticBase.d.ts.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/static.d.ts +1 -0
- package/dist/types/static.d.ts.map +1 -0
- package/package.json +32 -27
- package/src/.metadata/index.ts +93 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/event.resolvePath.ts +14 -0
- package/src/bean/middlewareSystem.static.ts +179 -0
- package/src/index.ts +3 -0
- package/src/lib/beanAssetBase.ts +7 -0
- package/src/lib/beanStaticBase.ts +12 -0
- package/src/lib/index.ts +2 -0
- package/src/types/index.ts +1 -0
- package/src/types/static.ts +7 -0
package/LICENSE
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,8BAA8B;AAC9B,cAAc,oCAAoC,CAAC;AACnD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,sBAAsB,CAAC;AAC9B,OAAO,QAAQ,sBAAsB,CAAC;IAElC,UAAiB,uBAAuB;QACtC,iBAAiB,EAAE,8BAA8B,CAAC;KACnD;CAGJ;AACD,OAAO,QAAQ,sBAAsB,CAAC;IAE9B,UAAiB,sBAAsB;KAGtC;IAEC,UAAiB,sBAAsB;QACrC,IAAI,aAAa,IAAI,kCAAkC,CAAC;QACxD,IAAI,UAAU,IAAI,iBAAiB,CAAC;QACpC,IAAI,aAAa,IAAI,8BAA8B,CAAC;KACrD;CACV;AACD,4BAA4B;AAC5B,mBAAmB;AACnB,cAAc,8BAA8B,CAAC;AAE7C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,sBAAsB,CAAC;IAE9B,UAAiB,gBAAgB;KAGhC;IAEC,UAAiB,gBAAgB;QAC/B,IAAI,aAAa,IAAI,4BAA4B,CAAC;QAClD,IAAI,UAAU,IAAI,sBAAsB,CAAC;KAE1C;CACV;AACD,iBAAiB;AACjB,mBAAmB;AACnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,gBAAgB,CAAC;CACjC;AACD,iBAAiB;AACjB,mBAAmB;AACnB,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,YAAY;QAC3B,sBAAsB,EAAE,OAAO,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;KACvF;CACF;AACD,iBAAiB;AACjB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,kBAAmB,SAAQ,aAAa;CAAG;AAExD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;CACnB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,UAAU,EAAE,kBAAkB,CAAC;KAChC;IAED,UAAiB,mBAAmB;QAClC,MAAM,EAAE,kBAAkB,CAAC;KAC5B;CAOF;AACD,iBAAiB"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IMiddlewareSystemOptionsStatic } from './middlewareSystem.static.ts';
|
|
2
1
|
import { BeanEventBase } from 'vona-module-a-event';
|
|
2
|
+
import type { IMiddlewareSystemOptionsStatic } from './middlewareSystem.static.ts';
|
|
3
3
|
export interface TypeEventResolvePathData {
|
|
4
4
|
dir: string;
|
|
5
5
|
filename: string;
|
|
@@ -8,3 +8,4 @@ export interface TypeEventResolvePathData {
|
|
|
8
8
|
export type TypeEventResolvePathResult = string | true | undefined;
|
|
9
9
|
export declare class EventResolvePath extends BeanEventBase<TypeEventResolvePathData, TypeEventResolvePathResult> {
|
|
10
10
|
}
|
|
11
|
+
//# sourceMappingURL=event.resolvePath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.resolvePath.d.ts","sourceRoot":"","sources":["../../src/bean/event.resolvePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAS,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,8BAA8B,CAAC;CACzC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEnE,qBACa,gBAAiB,SAAQ,aAAa,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;CAAG"}
|
|
@@ -25,3 +25,4 @@ export declare class MiddlewareSystemStatic extends BeanBase implements IMiddlew
|
|
|
25
25
|
}
|
|
26
26
|
declare function getFullPath(ctx: VonaContext, dir: string, filename: string, options: IMiddlewareSystemOptionsStatic): Promise<string | true | undefined>;
|
|
27
27
|
export {};
|
|
28
|
+
//# sourceMappingURL=middlewareSystem.static.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewareSystem.static.d.ts","sourceRoot":"","sources":["../../src/bean/middlewareSystem.static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAQxG,OAAO,EAAE,QAAQ,EAAW,MAAM,MAAM,CAAC;AAOzC,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,8BAA+B,SAAQ,iCAAiC;IACvF,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;IAElC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,WAAW,CAAC;CACjC;AAED,qBAgBa,sBAAuB,SAAQ,QAAS,YAAW,wBAAwB;IACtF,OAAO,CAAC,SAAS,CAAM;IAEjB,OAAO,CAAC,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,IAAI;IAIjE,YAAY,CAAC,OAAO,EAAE,8BAA8B;IAQpD,kBAAkB,CAAC,OAAO,EAAE,8BAA8B;CAyD3D;AAED,iBAAe,WAAW,CACxB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAUpC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BeanInfo, BeanBase, compose, BeanScopeBase, SymbolModuleBelong } from 'vona';
|
|
2
2
|
import { __decorate } from 'tslib';
|
|
3
|
-
import assert from 'node:assert';
|
|
4
|
-
import { existsSync, mkdirSync } from 'node:fs';
|
|
5
|
-
import path from 'node:path';
|
|
6
3
|
import staticCache from '@cabloy/koa-static-cache';
|
|
7
4
|
import { isObject, isString } from '@cabloy/utils';
|
|
8
5
|
import range from 'koa-range';
|
|
6
|
+
import assert from 'node:assert';
|
|
7
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
9
|
import { MiddlewareSystem } from 'vona-module-a-aspect';
|
|
10
10
|
import { LRU } from 'ylru';
|
|
11
11
|
import { Event, BeanEventBase } from 'vona-module-a-event';
|
|
@@ -175,3 +175,4 @@ class BeanStaticBase extends BeanBase {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
export { BeanAssetBase, BeanStaticBase, EventResolvePath, MiddlewareSystemStatic, ScopeModuleAStatic, SymbolStaticGetFullPathInner };
|
|
178
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/.metadata/this.ts","../src/types/static.ts","../src/bean/middlewareSystem.static.ts","../src/bean/event.resolvePath.ts","../src/.metadata/index.ts","../src/lib/beanAssetBase.ts","../src/lib/beanStaticBase.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["__ThisModule__","SymbolStaticGetFullPathInner","Symbol","MiddlewareSystemStatic","BeanBase","constructor","args","_composer","execute","options","next","_getComposer","ctx","middlewares","_createMiddlewares","compose","Object","assign","maxAge","app","meta","isProd","buffer","dir","config","server","publicDir","prefix","dirs","concat","prefixs","rangeMiddleware","isMatch","some","p","path","startsWith","range","dirObj","assert","isObject","isString","newOptions","dynamic","files","LRU","maxFiles","push","existsSync","mkdirSync","recursive","staticCache","__decorate","MiddlewareSystem","dependencies","apiStaticPrefix","preload","alias","getFullPath","__z_BeanInfo","module","filename","process","env","META_MODE","_getFullPathInner","scopeSelf","scope","event","resolvePath","emit","filePrefix","normalize","replace","indexOf","slice","length","parts","split","sep","wordFirst","shift","fullPath","join","Error","moduleRelativeName","modules","util","getAssetPathPhysical","EventResolvePath","BeanEventBase","Event","ScopeModuleAStatic","BeanScopeBase","Scope","BeanAssetBase","get","scene","assetPath","SymbolModuleBelong","BeanStaticBase","combineStaticPath","getURL","path2","getAbsoluteUrl"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beanAssetBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanAssetBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,MAAM,CAAC;AAEpD,qBAAa,aAAa,CAAC,aAAa,CAAE,SAAQ,QAAQ;IACxD,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM;CAG/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beanStaticBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanStaticBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,MAAM,CAAC;AAEpD,qBAAa,cAAc,CAAC,iBAAiB,CAAE,SAAQ,QAAQ;IAC7D,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM;IAIpC,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM;CAIxC"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
package/dist/types/static.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../src/types/static.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AAEnF,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAiB,eAAe;QAC9B,MAAM,EAAE,KAAK,CAAC;KACf;CACF"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-static",
|
|
3
|
-
"
|
|
4
|
-
"version": "5.0.28",
|
|
5
|
-
"title": "a-static",
|
|
6
|
-
"vonaModule": {
|
|
7
|
-
"dependencies": {},
|
|
8
|
-
"metas": {
|
|
9
|
-
"static": {
|
|
10
|
-
"scopeResource": true,
|
|
11
|
-
"boilerplate": "static/boilerplate"
|
|
12
|
-
},
|
|
13
|
-
"asset": {
|
|
14
|
-
"scopeResource": true,
|
|
15
|
-
"boilerplate": "asset/boilerplate"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
},
|
|
3
|
+
"version": "5.1.2",
|
|
19
4
|
"description": "",
|
|
20
|
-
"author": "",
|
|
21
5
|
"keywords": [
|
|
22
6
|
"Vona Module"
|
|
23
7
|
],
|
|
8
|
+
"author": "",
|
|
9
|
+
"files": [
|
|
10
|
+
"assets",
|
|
11
|
+
"cli",
|
|
12
|
+
"dist",
|
|
13
|
+
"src"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
24
16
|
"exports": {
|
|
25
17
|
".": {
|
|
26
18
|
"types": [
|
|
@@ -31,11 +23,13 @@
|
|
|
31
23
|
},
|
|
32
24
|
"./package.json": "./package.json"
|
|
33
25
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
26
|
+
"scripts": {
|
|
27
|
+
"clean": "rimraf dist tsconfig.build.tsbuildinfo",
|
|
28
|
+
"tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
29
|
+
"prepublishOnly": "npm run tsc:publish",
|
|
30
|
+
"prepack": "clean-package",
|
|
31
|
+
"postpack": "clean-package restore && npm run clean"
|
|
32
|
+
},
|
|
39
33
|
"dependencies": {
|
|
40
34
|
"@cabloy/koa-static-cache": "^6.0.1",
|
|
41
35
|
"koa-range": "^0.3.0",
|
|
@@ -45,8 +39,19 @@
|
|
|
45
39
|
"clean-package": "^2.2.0",
|
|
46
40
|
"rimraf": "^6.0.1"
|
|
47
41
|
},
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
"title": "a-static",
|
|
43
|
+
"vonaModule": {
|
|
44
|
+
"dependencies": {},
|
|
45
|
+
"metas": {
|
|
46
|
+
"static": {
|
|
47
|
+
"scopeResource": true,
|
|
48
|
+
"boilerplate": "static/boilerplate"
|
|
49
|
+
},
|
|
50
|
+
"asset": {
|
|
51
|
+
"scopeResource": true,
|
|
52
|
+
"boilerplate": "asset/boilerplate"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d"
|
|
57
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// eslint-disable
|
|
2
|
+
/** middlewareSystem: begin */
|
|
3
|
+
export * from '../bean/middlewareSystem.static.ts';
|
|
4
|
+
import type { IMiddlewareSystemOptionsStatic } from '../bean/middlewareSystem.static.ts';
|
|
5
|
+
import 'vona-module-a-aspect';
|
|
6
|
+
declare module 'vona-module-a-aspect' {
|
|
7
|
+
|
|
8
|
+
export interface IMiddlewareSystemRecord {
|
|
9
|
+
'a-static:static': IMiddlewareSystemOptionsStatic;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
declare module 'vona-module-a-static' {
|
|
15
|
+
|
|
16
|
+
export interface MiddlewareSystemStatic {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get scope(): ScopeModuleAStatic;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface MiddlewareSystemStatic {
|
|
22
|
+
get $beanFullName(): 'a-static.middlewareSystem.static';
|
|
23
|
+
get $onionName(): 'a-static:static';
|
|
24
|
+
get $onionOptions(): IMiddlewareSystemOptionsStatic;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** middlewareSystem: end */
|
|
28
|
+
/** event: begin */
|
|
29
|
+
export * from '../bean/event.resolvePath.ts';
|
|
30
|
+
|
|
31
|
+
import 'vona';
|
|
32
|
+
declare module 'vona' {
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
declare module 'vona-module-a-static' {
|
|
37
|
+
|
|
38
|
+
export interface EventResolvePath {
|
|
39
|
+
/** @internal */
|
|
40
|
+
get scope(): ScopeModuleAStatic;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface EventResolvePath {
|
|
44
|
+
get $beanFullName(): 'a-static.event.resolvePath';
|
|
45
|
+
get $onionName(): 'a-static:resolvePath';
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** event: end */
|
|
50
|
+
/** event: begin */
|
|
51
|
+
import type { EventResolvePath } from '../bean/event.resolvePath.ts';
|
|
52
|
+
export interface IModuleEvent {
|
|
53
|
+
'resolvePath': EventResolvePath;
|
|
54
|
+
}
|
|
55
|
+
/** event: end */
|
|
56
|
+
/** event: begin */
|
|
57
|
+
import type { TypeEventResolvePathData, TypeEventResolvePathResult } from '../bean/event.resolvePath.ts';
|
|
58
|
+
import type { EventOn } from 'vona-module-a-event';
|
|
59
|
+
declare module 'vona-module-a-event' {
|
|
60
|
+
export interface IEventRecord {
|
|
61
|
+
'a-static:resolvePath': EventOn<TypeEventResolvePathData, TypeEventResolvePathResult>;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** event: end */
|
|
65
|
+
/** scope: begin */
|
|
66
|
+
import { BeanScopeBase, type BeanScopeUtil } from 'vona';
|
|
67
|
+
import { Scope } from 'vona-module-a-bean';
|
|
68
|
+
|
|
69
|
+
@Scope()
|
|
70
|
+
export class ScopeModuleAStatic extends BeanScopeBase {}
|
|
71
|
+
|
|
72
|
+
export interface ScopeModuleAStatic {
|
|
73
|
+
util: BeanScopeUtil;
|
|
74
|
+
event: IModuleEvent;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
import 'vona';
|
|
78
|
+
declare module 'vona' {
|
|
79
|
+
export interface IBeanScopeRecord {
|
|
80
|
+
'a-static': ScopeModuleAStatic;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface IBeanScopeContainer {
|
|
84
|
+
static: ScopeModuleAStatic;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
/** scope: end */
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BeanEventBase, Event } from 'vona-module-a-event';
|
|
2
|
+
|
|
3
|
+
import type { IMiddlewareSystemOptionsStatic } from './middlewareSystem.static.ts';
|
|
4
|
+
|
|
5
|
+
export interface TypeEventResolvePathData {
|
|
6
|
+
dir: string;
|
|
7
|
+
filename: string;
|
|
8
|
+
options: IMiddlewareSystemOptionsStatic;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type TypeEventResolvePathResult = string | true | undefined;
|
|
12
|
+
|
|
13
|
+
@Event()
|
|
14
|
+
export class EventResolvePath extends BeanEventBase<TypeEventResolvePathData, TypeEventResolvePathResult> {}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { Next, VonaContext } from 'vona';
|
|
2
|
+
import type { IDecoratorMiddlewareSystemOptions, IMiddlewareSystemExecute } from 'vona-module-a-aspect';
|
|
3
|
+
|
|
4
|
+
import staticCache from '@cabloy/koa-static-cache';
|
|
5
|
+
import { isObject, isString } from '@cabloy/utils';
|
|
6
|
+
import range from 'koa-range';
|
|
7
|
+
import assert from 'node:assert';
|
|
8
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { BeanBase, compose } from 'vona';
|
|
11
|
+
import { MiddlewareSystem } from 'vona-module-a-aspect';
|
|
12
|
+
import { LRU } from 'ylru';
|
|
13
|
+
|
|
14
|
+
import { __ThisModule__ } from '../.metadata/this.ts';
|
|
15
|
+
import { SymbolStaticGetFullPathInner } from '../types/static.ts';
|
|
16
|
+
|
|
17
|
+
interface IStaticDirItem {
|
|
18
|
+
prefix: string;
|
|
19
|
+
dir: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface IMiddlewareSystemOptionsStatic extends IDecoratorMiddlewareSystemOptions {
|
|
23
|
+
apiStaticPrefix: string;
|
|
24
|
+
dir?: string;
|
|
25
|
+
dirs: (string | IStaticDirItem)[];
|
|
26
|
+
// support lazy load
|
|
27
|
+
dynamic: boolean;
|
|
28
|
+
preload: boolean;
|
|
29
|
+
buffer?: boolean;
|
|
30
|
+
maxFiles: number;
|
|
31
|
+
maxAge?: number;
|
|
32
|
+
alias: Record<string, string>;
|
|
33
|
+
getFullPath: typeof getFullPath;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@MiddlewareSystem<IMiddlewareSystemOptionsStatic>({
|
|
37
|
+
dependencies: 'a-security:securities',
|
|
38
|
+
apiStaticPrefix: '/api/static/',
|
|
39
|
+
dirs: [],
|
|
40
|
+
dynamic: true,
|
|
41
|
+
preload: false,
|
|
42
|
+
maxFiles: 1000,
|
|
43
|
+
alias: {
|
|
44
|
+
'/favicon.ico': '/api/static/home/index/img/vona.png',
|
|
45
|
+
},
|
|
46
|
+
getFullPath,
|
|
47
|
+
// maxAge: undefined,
|
|
48
|
+
// buffer: false,
|
|
49
|
+
// dir: '',
|
|
50
|
+
// prefix: '/', // should be always '/', so as to support ssr site
|
|
51
|
+
})
|
|
52
|
+
export class MiddlewareSystemStatic extends BeanBase implements IMiddlewareSystemExecute {
|
|
53
|
+
private _composer: any;
|
|
54
|
+
|
|
55
|
+
async execute(options: IMiddlewareSystemOptionsStatic, next: Next) {
|
|
56
|
+
return this._getComposer(options)(this.ctx, next);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_getComposer(options: IMiddlewareSystemOptionsStatic) {
|
|
60
|
+
if (!this._composer) {
|
|
61
|
+
const middlewares = this._createMiddlewares(options);
|
|
62
|
+
this._composer = compose(middlewares);
|
|
63
|
+
}
|
|
64
|
+
return this._composer;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
_createMiddlewares(options: IMiddlewareSystemOptionsStatic) {
|
|
68
|
+
options = Object.assign(
|
|
69
|
+
{
|
|
70
|
+
maxAge: this.app.meta.isProd ? 31536000 : 0,
|
|
71
|
+
buffer: !!this.app.meta.isProd,
|
|
72
|
+
dir: this.app.config.server.publicDir,
|
|
73
|
+
prefix: '/',
|
|
74
|
+
},
|
|
75
|
+
options,
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
const dirs = (options.dirs || []).concat(options.dir!);
|
|
79
|
+
|
|
80
|
+
const prefixs: string[] = [];
|
|
81
|
+
|
|
82
|
+
function rangeMiddleware(ctx, next) {
|
|
83
|
+
// if match static file, and use range middleware.
|
|
84
|
+
const isMatch = prefixs.some(p => ctx.path.startsWith(p));
|
|
85
|
+
if (isMatch) {
|
|
86
|
+
return range(ctx, next);
|
|
87
|
+
}
|
|
88
|
+
return next();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const middlewares = [rangeMiddleware];
|
|
92
|
+
|
|
93
|
+
for (const dirObj of dirs) {
|
|
94
|
+
assert(isObject(dirObj) || isString(dirObj), '`config.static.dir` must be `string | Array<string|object>`.');
|
|
95
|
+
|
|
96
|
+
let newOptions: any;
|
|
97
|
+
|
|
98
|
+
if (isString(dirObj)) {
|
|
99
|
+
// copy origin options to new options ensure the safety of objects
|
|
100
|
+
newOptions = Object.assign({}, options, { dir: dirObj });
|
|
101
|
+
} else {
|
|
102
|
+
assert(isString(dirObj.dir), '`config.static.dir` should contains `[].dir` property when object style.');
|
|
103
|
+
newOptions = Object.assign({}, options, dirObj);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (newOptions.dynamic && !newOptions.files) {
|
|
107
|
+
newOptions.files = new LRU(newOptions.maxFiles);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (newOptions.prefix) {
|
|
111
|
+
prefixs.push(newOptions.prefix);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// ensure directory exists
|
|
115
|
+
if (!existsSync(newOptions.dir)) {
|
|
116
|
+
mkdirSync(newOptions.dir, { recursive: true });
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
middlewares.push(staticCache(newOptions));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return middlewares;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
async function getFullPath(
|
|
127
|
+
ctx: VonaContext,
|
|
128
|
+
dir: string,
|
|
129
|
+
filename: string,
|
|
130
|
+
options: IMiddlewareSystemOptionsStatic,
|
|
131
|
+
): Promise<string | true | undefined> {
|
|
132
|
+
if (process.env.META_MODE === 'dev') {
|
|
133
|
+
ctx[SymbolStaticGetFullPathInner] = () => {
|
|
134
|
+
return _getFullPathInner(ctx, dir, filename, options);
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const scopeSelf = ctx.app.scope(__ThisModule__);
|
|
138
|
+
return scopeSelf.event.resolvePath.emit({ dir, filename, options }, ({ dir, filename, options }) => {
|
|
139
|
+
return _getFullPathInner(ctx, dir, filename, options);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
async function _getFullPathInner(
|
|
144
|
+
ctx: VonaContext,
|
|
145
|
+
dir: string,
|
|
146
|
+
filename: string,
|
|
147
|
+
options: IMiddlewareSystemOptionsStatic,
|
|
148
|
+
): Promise<string | undefined> {
|
|
149
|
+
// trim prefix
|
|
150
|
+
if (options.apiStaticPrefix !== '/') {
|
|
151
|
+
const filePrefix = path.normalize(options.apiStaticPrefix.replace(/^\//, ''));
|
|
152
|
+
if (filename.indexOf(filePrefix) !== 0) {
|
|
153
|
+
return;
|
|
154
|
+
// cannot throw error
|
|
155
|
+
// throw new Error(`invalid filename: ${filename}`);
|
|
156
|
+
}
|
|
157
|
+
filename = filename.slice(filePrefix.length);
|
|
158
|
+
}
|
|
159
|
+
// check
|
|
160
|
+
const parts = filename.split(path.sep);
|
|
161
|
+
const wordFirst = parts.shift();
|
|
162
|
+
// public
|
|
163
|
+
if (wordFirst === 'public') {
|
|
164
|
+
const fullPath = path.normalize(path.join(dir, parts.join(path.sep)));
|
|
165
|
+
// files that can be accessd should be under options.dir
|
|
166
|
+
if (fullPath.indexOf(dir) !== 0) throw new Error(`unsafe filename: ${filename}`);
|
|
167
|
+
return fullPath;
|
|
168
|
+
}
|
|
169
|
+
// static
|
|
170
|
+
const moduleRelativeName = `${wordFirst}-${parts.shift()}`;
|
|
171
|
+
const module = ctx.app.meta.modules[moduleRelativeName];
|
|
172
|
+
if (!module) {
|
|
173
|
+
return;
|
|
174
|
+
// cannot throw error
|
|
175
|
+
// throw new Error(`invalid filename: ${filename}`);
|
|
176
|
+
}
|
|
177
|
+
const fullPath = ctx.app.util.getAssetPathPhysical(moduleRelativeName, 'static', parts.join(path.sep));
|
|
178
|
+
return fullPath;
|
|
179
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BeanBase, SymbolModuleBelong } from 'vona';
|
|
2
|
+
|
|
3
|
+
export class BeanAssetBase<IAssetGetPath> extends BeanBase {
|
|
4
|
+
get<K extends keyof IAssetGetPath, V extends IAssetGetPath[K]>(scene: K, assetPath: V): string {
|
|
5
|
+
return this.app.util.getAssetPathPhysical(this[SymbolModuleBelong], scene as any, assetPath as any);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BeanBase, SymbolModuleBelong } from 'vona';
|
|
2
|
+
|
|
3
|
+
export class BeanStaticBase<TypeStaticGetPath> extends BeanBase {
|
|
4
|
+
get(path: TypeStaticGetPath): string {
|
|
5
|
+
return this.app.util.combineStaticPath(path as string, this[SymbolModuleBelong]);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getURL(path: TypeStaticGetPath): string {
|
|
9
|
+
const path2 = this.get(path);
|
|
10
|
+
return this.app.util.getAbsoluteUrl(path2);
|
|
11
|
+
}
|
|
12
|
+
}
|
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './static.ts';
|