@intlify/vue-i18n-extensions
Advanced tools
+9
-6
@@ -212,3 +212,3 @@ 'use strict'; | ||
| const mode = shared.isString(options.mode) && ["composition", "legacy"].includes(options.mode) ? options.mode : "composition"; | ||
| const translationSignatures = shared.isString(options.translationSignatures) ? [options.translationSignatures] : shared.isArray(options.translationSignatures) ? options.translationSignatures : ["t"]; | ||
| const translationSignatures = shared.isString(options.translationSignatures) || shared.isFunction(options.translationSignatures) ? [options.translationSignatures] : shared.isArray(options.translationSignatures) ? options.translationSignatures : ["t"]; | ||
| translationSignatures.push(GLOBAL_TRANSLATE_SIGNATURE); | ||
@@ -399,9 +399,12 @@ return (dir, node, context) => { | ||
| const { prefixIdentifiers, bindingMetadata, inline } = context; | ||
| return translationSignatures.map((signature) => { | ||
| if (inline && signature !== GLOBAL_TRANSLATE_SIGNATURE) { | ||
| return signature; | ||
| return translationSignatures.map((signatureOrResolver) => { | ||
| if (shared.isFunction(signatureOrResolver)) { | ||
| return signatureOrResolver(context); | ||
| } | ||
| const type = shared.hasOwn(bindingMetadata, signature) && bindingMetadata[signature]; | ||
| if (inline && signatureOrResolver !== GLOBAL_TRANSLATE_SIGNATURE) { | ||
| return signatureOrResolver; | ||
| } | ||
| const type = shared.hasOwn(bindingMetadata, signatureOrResolver) && bindingMetadata[signatureOrResolver]; | ||
| const bindingContext = prefixIdentifiers ? type && type.startsWith("setup") || type === compilerDom.BindingTypes.LITERAL_CONST ? "$setup." : "_ctx." : ""; | ||
| return `${bindingContext}${signature}`; | ||
| return `${bindingContext}${signatureOrResolver}`; | ||
| }).join(" || "); | ||
@@ -408,0 +411,0 @@ } |
+36
-2
@@ -1,5 +0,39 @@ | ||
| import { DirectiveTransform } from '@vue/compiler-dom'; | ||
| import { DirectiveTransform, TransformContext } from '@vue/compiler-dom'; | ||
| import { I18n, I18nMode } from 'vue-i18n'; | ||
| /** | ||
| * Translation signature resolver | ||
| * | ||
| * @remarks | ||
| * This resolver is used at {@link TransformVTDirectiveOptions | 'translationSignatures' option} | ||
| * | ||
| * @example | ||
| * ```js | ||
| * import { compile } from '@vue/compiler-dom' | ||
| * import { transformVTDirective } from '@intlify/vue-i18n-extensions' | ||
| * | ||
| * // the below is just an example, you can use your own signature resolver | ||
| * const signatureMap = new Map() | ||
| * | ||
| * const transformVT = transformVTDirective({ | ||
| * translationSignatures: (context) => { | ||
| * const { prefixIdentifiers, bindingMetadata, inline, filename } = context | ||
| * let signature = '' | ||
| * | ||
| * // something logic to resolve signature like using `signatureMap` | ||
| * // signature = signatureMap.get(filename) | ||
| * // ... | ||
| * | ||
| * return signature | ||
| * } | ||
| * }) | ||
| * | ||
| * const { code } = compile(`<p v-t="'hello'"></p>`, { | ||
| * // ... | ||
| * directiveTransforms: { t: transformVT } | ||
| * }) | ||
| * ``` | ||
| */ | ||
| type TranslationSignatureResolver = (context: TransformContext) => string; | ||
| /** | ||
| * Transform options for `v-t` custom directive | ||
@@ -40,3 +74,3 @@ * | ||
| */ | ||
| translationSignatures?: string | string[]; | ||
| translationSignatures?: string | TranslationSignatureResolver | string[] | TranslationSignatureResolver[] | (string | TranslationSignatureResolver)[]; | ||
| } | ||
@@ -43,0 +77,0 @@ /** |
+36
-2
@@ -1,5 +0,39 @@ | ||
| import { DirectiveTransform } from '@vue/compiler-dom'; | ||
| import { DirectiveTransform, TransformContext } from '@vue/compiler-dom'; | ||
| import { I18n, I18nMode } from 'vue-i18n'; | ||
| /** | ||
| * Translation signature resolver | ||
| * | ||
| * @remarks | ||
| * This resolver is used at {@link TransformVTDirectiveOptions | 'translationSignatures' option} | ||
| * | ||
| * @example | ||
| * ```js | ||
| * import { compile } from '@vue/compiler-dom' | ||
| * import { transformVTDirective } from '@intlify/vue-i18n-extensions' | ||
| * | ||
| * // the below is just an example, you can use your own signature resolver | ||
| * const signatureMap = new Map() | ||
| * | ||
| * const transformVT = transformVTDirective({ | ||
| * translationSignatures: (context) => { | ||
| * const { prefixIdentifiers, bindingMetadata, inline, filename } = context | ||
| * let signature = '' | ||
| * | ||
| * // something logic to resolve signature like using `signatureMap` | ||
| * // signature = signatureMap.get(filename) | ||
| * // ... | ||
| * | ||
| * return signature | ||
| * } | ||
| * }) | ||
| * | ||
| * const { code } = compile(`<p v-t="'hello'"></p>`, { | ||
| * // ... | ||
| * directiveTransforms: { t: transformVT } | ||
| * }) | ||
| * ``` | ||
| */ | ||
| type TranslationSignatureResolver = (context: TransformContext) => string; | ||
| /** | ||
| * Transform options for `v-t` custom directive | ||
@@ -40,3 +74,3 @@ * | ||
| */ | ||
| translationSignatures?: string | string[]; | ||
| translationSignatures?: string | TranslationSignatureResolver | string[] | TranslationSignatureResolver[] | (string | TranslationSignatureResolver)[]; | ||
| } | ||
@@ -43,0 +77,0 @@ /** |
+36
-2
@@ -1,5 +0,39 @@ | ||
| import { DirectiveTransform } from '@vue/compiler-dom'; | ||
| import { DirectiveTransform, TransformContext } from '@vue/compiler-dom'; | ||
| import { I18n, I18nMode } from 'vue-i18n'; | ||
| /** | ||
| * Translation signature resolver | ||
| * | ||
| * @remarks | ||
| * This resolver is used at {@link TransformVTDirectiveOptions | 'translationSignatures' option} | ||
| * | ||
| * @example | ||
| * ```js | ||
| * import { compile } from '@vue/compiler-dom' | ||
| * import { transformVTDirective } from '@intlify/vue-i18n-extensions' | ||
| * | ||
| * // the below is just an example, you can use your own signature resolver | ||
| * const signatureMap = new Map() | ||
| * | ||
| * const transformVT = transformVTDirective({ | ||
| * translationSignatures: (context) => { | ||
| * const { prefixIdentifiers, bindingMetadata, inline, filename } = context | ||
| * let signature = '' | ||
| * | ||
| * // something logic to resolve signature like using `signatureMap` | ||
| * // signature = signatureMap.get(filename) | ||
| * // ... | ||
| * | ||
| * return signature | ||
| * } | ||
| * }) | ||
| * | ||
| * const { code } = compile(`<p v-t="'hello'"></p>`, { | ||
| * // ... | ||
| * directiveTransforms: { t: transformVT } | ||
| * }) | ||
| * ``` | ||
| */ | ||
| type TranslationSignatureResolver = (context: TransformContext) => string; | ||
| /** | ||
| * Transform options for `v-t` custom directive | ||
@@ -40,3 +74,3 @@ * | ||
| */ | ||
| translationSignatures?: string | string[]; | ||
| translationSignatures?: string | TranslationSignatureResolver | string[] | TranslationSignatureResolver[] | (string | TranslationSignatureResolver)[]; | ||
| } | ||
@@ -43,0 +77,0 @@ /** |
+10
-7
| import { NodeTypes, TO_DISPLAY_STRING, createCompoundExpression, createSimpleExpression, isText, BindingTypes } from '@vue/compiler-dom'; | ||
| import { isString, format, isNumber, isArray, isSymbol, isObject, toDisplayString, hasOwn } from '@intlify/shared'; | ||
| import { isString, format, isNumber, isFunction, isArray, isSymbol, isObject, toDisplayString, hasOwn } from '@intlify/shared'; | ||
| import { parse } from '@babel/parser'; | ||
@@ -210,3 +210,3 @@ | ||
| const mode = isString(options.mode) && ["composition", "legacy"].includes(options.mode) ? options.mode : "composition"; | ||
| const translationSignatures = isString(options.translationSignatures) ? [options.translationSignatures] : isArray(options.translationSignatures) ? options.translationSignatures : ["t"]; | ||
| const translationSignatures = isString(options.translationSignatures) || isFunction(options.translationSignatures) ? [options.translationSignatures] : isArray(options.translationSignatures) ? options.translationSignatures : ["t"]; | ||
| translationSignatures.push(GLOBAL_TRANSLATE_SIGNATURE); | ||
@@ -397,9 +397,12 @@ return (dir, node, context) => { | ||
| const { prefixIdentifiers, bindingMetadata, inline } = context; | ||
| return translationSignatures.map((signature) => { | ||
| if (inline && signature !== GLOBAL_TRANSLATE_SIGNATURE) { | ||
| return signature; | ||
| return translationSignatures.map((signatureOrResolver) => { | ||
| if (isFunction(signatureOrResolver)) { | ||
| return signatureOrResolver(context); | ||
| } | ||
| const type = hasOwn(bindingMetadata, signature) && bindingMetadata[signature]; | ||
| if (inline && signatureOrResolver !== GLOBAL_TRANSLATE_SIGNATURE) { | ||
| return signatureOrResolver; | ||
| } | ||
| const type = hasOwn(bindingMetadata, signatureOrResolver) && bindingMetadata[signatureOrResolver]; | ||
| const bindingContext = prefixIdentifiers ? type && type.startsWith("setup") || type === BindingTypes.LITERAL_CONST ? "$setup." : "_ctx." : ""; | ||
| return `${bindingContext}${signature}`; | ||
| return `${bindingContext}${signatureOrResolver}`; | ||
| }).join(" || "); | ||
@@ -406,0 +409,0 @@ } |
+1
-1
| { | ||
| "name": "@intlify/vue-i18n-extensions", | ||
| "description": "vue-i18n extensions", | ||
| "version": "6.0.6", | ||
| "version": "6.1.0", | ||
| "author": { | ||
@@ -6,0 +6,0 @@ "name": "kazuya kawaguchi", |
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
58580
6.87%1062
3.91%