New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@aiot-toolkit/card-expression

Package Overview
Dependencies
Maintainers
0
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aiot-toolkit/card-expression - npm Package Compare versions

Comparing version 1.0.8 to 1.0.9

2

es/interface/ICardNode.d.ts
/**
* ICardResult
*/
type ICardNode = boolean | string | number | Array<string | number | boolean | ICardNode>;
type ICardNode = boolean | string | number | Array<string | number | boolean | Object | ICardNode>;
export default ICardNode;

@@ -13,2 +13,4 @@ import { Expression } from '@babel/types';

private translateTemplateLiteral;
private generatorString;
private translateObject;
private translateUnaryExpression;

@@ -15,0 +17,0 @@ private translateBinaryExpression;

/**
* ICardResult
*/
type ICardNode = boolean | string | number | Array<string | number | boolean | ICardNode>;
type ICardNode = boolean | string | number | Array<string | number | boolean | Object | ICardNode>;
export default ICardNode;

@@ -13,2 +13,4 @@ import { Expression } from '@babel/types';

private translateTemplateLiteral;
private generatorString;
private translateObject;
private translateUnaryExpression;

@@ -15,0 +17,0 @@ private translateBinaryExpression;

@@ -44,2 +44,4 @@ 'use strict';

return this.translateTemplateLiteral(source);
case 'ObjectExpression':
return this.translateObject(source);
default:

@@ -65,3 +67,3 @@ throw new Error(`Unsupported expression type: ${type}`);

else {
return `(${generator.default(item).code})`;
return `(${this.generatorString(item)})`;
}

@@ -73,2 +75,19 @@ })

}
generatorString(express) {
return generator.default(express).code;
}
translateObject(source) {
const { properties } = source;
const data = {};
properties.forEach((item) => {
const { key, value } = item;
if (key.type === 'Identifier') {
data[key.name] = this.translate(value);
}
else {
throw new Error(`Unsupported expression type: ${item.type}, sourceCode: ${this.generatorString(key)}`);
}
});
return ['{}', data];
}
translateUnaryExpression(source) {

@@ -75,0 +94,0 @@ const { operator, argument } = source;

{
"name": "@aiot-toolkit/card-expression",
"description": "快应用卡片表达式解析库",
"version": "1.0.8",
"version": "1.0.9",
"main": "lib/index.js",

@@ -11,7 +11,9 @@ "module": "es/index.js",

"import": "./es/index.mjs",
"require": "./lib/index.js"
"require": "./lib/index.js",
"types": "./es/index.d.ts"
},
"./*": {
"import": "./*.mjs",
"require": "./*.js"
"require": "./*.js",
"types": "./*.d.ts"
}

@@ -18,0 +20,0 @@ },

@@ -80,16 +80,16 @@ # 快应用卡片表达式解析

| 表达式 | 源码 | 产物 | 示例 |
| --------------------------------------------------- | -------------------------------------------- | ---------------------------------------- | --------------------------------------------------------- |
| 字面量 <br/> literal | `value` | `value` | `123` --> `123` |
| 标识符<br/> Identifier | `value` | `["$", "value"]` | `a`-->`["$", "a"]` |
| 数组表达式<br/> ArrayExpression | `[value1, value2, value3]` | `["~", "value1", "value2", "value3"]` | `[a, 1, 2]`-->`["~", ["$", "a"], 1, 2]` |
| 一元表达式<br/> UnaryExpression | `operator value` | `["operator", value]` | `!a`-->`["!", ["$", "a"]]` |
| 二元表达式<br/> BinaryExpression | `value1 operator value1` | `["operator", value1, value2]` | `a+1` --> `["+", ["$", "a"], 1]` |
| 属性表达式<br/> MemberExpression | 1. `value1[value2]` <br/> 2. `value1.value2` | `[".", value1, value2]` | `a[1]` --> `[".", ["$", "a"], 1]` |
| 逻辑表达<br/> LogicalExpression | `value1 operator value1` | `["operator", value1, value2]` | `a \|\| 1` --> `["\|\|", ["$", "a"], 1]` |
| 条件表达式<br/> ConditionalExpression | `condition? value1 : value2` | `[":?", "$condition" value1, value2]` | `a?x:1` --> `[":?", ["$", "a"], ["$", "x"], 1]` |
| 调用表达式<br/> CallExpression | `fun(arg1, args2, ...)` | `["()", ["$", "fun"], arg1, arg2, ...]` | `fun(a, 123)` --> `["()", ["$", "fun"], ["$", "a"], 123]` |
| 无前缀调用表达式 <br/>(可自定义,默认["$t", "$tc"]) | `noPrefixFun(arg1)` | `["()", "noPrefixFun", arg1, arg2, ...]` | `$t("abc")` --> `["()", "$t", "abc"]` |
| 模板字符串 | `str-${js}` | 相当于**加法**二元表 |
| 达式 `"str" + js` | |
| 表达式 | 源码 | 产物 | 示例 |
| --------------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------- |
| 字面量 <br/> literal | `value` | `value` | `123` --> `123` |
| 标识符<br/> Identifier | `value` | `["$", "value"]` | `a`-->`["$", "a"]` |
| 数组表达式<br/> ArrayExpression | `[value1, value2, value3]` | `["~", "value1", "value2", "value3"]` | `[a, 1, 2]`-->`["~", ["$", "a"], 1, 2]` |
| 一元表达式<br/> UnaryExpression | `operator value` | `["operator", value]` | `!a`-->`["!", ["$", "a"]]` |
| 二元表达式<br/> BinaryExpression | `value1 operator value1` | `["operator", value1, value2]` | `a+1` --> `["+", ["$", "a"], 1]` |
| 属性表达式<br/> MemberExpression | 1. `value1[value2]` <br/> 2. `value1.value2` | `[".", value1, value2]` | `a[1]` --> `[".", ["$", "a"], 1]` |
| 逻辑表达式<br/> LogicalExpression | `value1 operator value1` | `["operator", value1, value2]` | `a \|\| 1` --> `["\|\|", ["$", "a"], 1]` |
| 条件表达式<br/> ConditionalExpression | `condition? value1 : value2` | `[":?", "$condition" value1, value2]` | `a?x:1` --> `[":?", ["$", "a"], ["$", "x"], 1]` |
| 调用表达式<br/> CallExpression | `fun(arg1, args2, ...)` | `["()", ["$", "fun"], arg1, arg2, ...]` | `fun(a, 123)` --> `["()", ["$", "fun"], ["$", "a"], 123]` |
| 无前缀调用表达式 <br/>(可自定义,默认["$t", "$tc"]) | `noPrefixFun(arg1)` | `["()", "noPrefixFun", arg1, arg2, ...]` | `$t("abc")` --> `["()", "$t", "abc"]` |
| 模板字符串 | `str-${js}` | 相当于**加法**二元表达式 `"str" + js` |
| 对象表达式<br/> ObjectExpression | `{key1: value1, key2: value2}` | `["{}", ["key1", value1], ["key2", value2]]` | `{x:1, y:"2", z:a+b}`-->`{x: 1, y: '2', z: ['+', ['$', 'a'], ['$', 'b']]}` |

@@ -96,0 +96,0 @@ ## 转换参数

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc