diff --git a/package.json b/package.json index f1028ae..4bbeabf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sidecar", - "version": "1.0.22", + "version": "1.1.2", "description": "Sidecar is for easy hook/call in-process functions with TypeScript annotations.", "type": "module", "exports": { @@ -53,7 +53,7 @@ "homepage": "https://github.com/huan/sidecar#readme", "devDependencies": { "@chatie/eslint-config": "^1.0.4", - "@chatie/git-scripts": "^0.6.2", + "@chatie/git-scripts": "^0.7.7", "@chatie/semver": "^0.4.7", "@chatie/tsconfig": "^4.5.3", "@types/mustache": "^4.1.2", diff --git a/src/agent/build-agent-source.ts b/src/agent/build-agent-source.ts index 68ec08d..6e79cde 100644 --- a/src/agent/build-agent-source.ts +++ b/src/agent/build-agent-source.ts @@ -16,6 +16,8 @@ async function buildAgentSource (metadata: SidecarMetadata) { const agentMustache = partialLookup(AGENT_MUSTACHE) const view = wrapView(metadata) + // FIX namespace + view.namespace = view.namespace ? `${view.namespace}.` : '' const source = await Mustache.render( agentMustache, diff --git a/src/agent/templates/agent.mustache b/src/agent/templates/agent.mustache index 39c8f8d..5310254 100644 --- a/src/agent/templates/agent.mustache +++ b/src/agent/templates/agent.mustache @@ -40,7 +40,9 @@ const __sidecar__moduleBaseAddress = Module.getBaseAddress('{{{ moduleName }}}') * File: "templates/agent.mustache" * > Variable: "initAgentScript" ***********************************/ +;;; {{{ initAgentScript }}} +;;; /******************************************** * File: "templates/agent.mustache" diff --git a/src/agent/templates/interceptors-agent.mustache b/src/agent/templates/interceptors-agent.mustache index 447dc96..fd93626 100644 --- a/src/agent/templates/interceptors-agent.mustache +++ b/src/agent/templates/interceptors-agent.mustache @@ -46,7 +46,7 @@ * which means it should not contains any logic code, it should just be a stub. */ Interceptor.replace( - {{ target.funcName }}, + {{ namespace }}{{ target.funcName }}, nativeCallback, ) diff --git a/src/agent/templates/native-functions-agent.mustache b/src/agent/templates/native-functions-agent.mustache index b04a539..3938e0d 100644 --- a/src/agent/templates/native-functions-agent.mustache +++ b/src/agent/templates/native-functions-agent.mustache @@ -13,5 +13,5 @@ const __sidecar__{{ name }}_Function_wrapper = function (...args) { '{{ name }}(%s)', args.join(', '), ) - return {{ target.funcName }}(...args) + return {{ namespace }}{{ target.funcName }}(...args) } diff --git a/src/decorators/sidecar/build-sidecar-metadata.spec.ts b/src/decorators/sidecar/build-sidecar-metadata.spec.ts index 6bf0d5d..ca89889 100755 --- a/src/decorators/sidecar/build-sidecar-metadata.spec.ts +++ b/src/decorators/sidecar/build-sidecar-metadata.spec.ts @@ -68,6 +68,7 @@ test('@Sidecar() buildSidecarMetadata()', async t => { }, }, ], + namespace: undefined, nativeFunctionList: [ { address: { diff --git a/src/decorators/sidecar/build-sidecar-metadata.ts b/src/decorators/sidecar/build-sidecar-metadata.ts index 23179ff..9659667 100644 --- a/src/decorators/sidecar/build-sidecar-metadata.ts +++ b/src/decorators/sidecar/build-sidecar-metadata.ts @@ -21,6 +21,7 @@ import { interface BuildSidecarMetadataOptions { initAgentScript? : string, + namespace? : string, sidecarTarget? : SidecarTarget, } @@ -124,6 +125,7 @@ function buildSidecarMetadata { }, }, ], + namespace: undefined, nativeFunctionList: [ { address: { diff --git a/src/decorators/sidecar/sidecar.ts b/src/decorators/sidecar/sidecar.ts index 1c7c957..4ea0a85 100644 --- a/src/decorators/sidecar/sidecar.ts +++ b/src/decorators/sidecar/sidecar.ts @@ -14,14 +14,18 @@ import type { function Sidecar ( sidecarTarget : SidecarTarget, initAgentScript? : string, + namespace? : string, ) { - log.verbose('Sidecar', '@Sidecar(%s%s)', + log.verbose('Sidecar', '@Sidecar(%s%s%s)', Array.isArray(sidecarTarget) ? JSON.stringify(sidecarTarget) : sidecarTarget, initAgentScript ? `, "${initAgentScript.substr(0, 20)}..."` : '', + namespace + ? `, "${namespace}"` + : '', ) return classDecorator @@ -37,11 +41,12 @@ function Sidecar ( Klass: T, ) { log.verbose('Sidecar', - '@Sidecar(%s%s) classDecorator(%s)', + '@Sidecar(%s%s%s) classDecorator(%s)', Array.isArray(sidecarTarget) ? JSON.stringify(sidecarTarget) : (sidecarTarget || ''), `"${initAgentScript?.substr(0, 20)}..."` || '', + namespace ? `, "${namespace}"` : '', Klass.name, ) @@ -52,6 +57,7 @@ function Sidecar ( const meta = buildSidecarMetadata(Klass, { initAgentScript, + namespace, sidecarTarget, })