@bessemer/cornerstone 0.5.62 → 0.5.63

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sql-expression-parser.d.ts","sourceRoot":"","sources":["../../src/sql/sql-expression-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oDAAoD,CAAA;AAEzG,OAAO,EAAa,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAgBnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAExE,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AACD,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,WAAW,EAAE,0BAA0B,CAAC;CAAG;AAwCrG,eAAO,MAAM,0BAA0B,qBAA4B,CAAA"}
1
+ {"version":3,"file":"sql-expression-parser.d.ts","sourceRoot":"","sources":["../../src/sql/sql-expression-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,OAAO,EAAa,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAgBnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAGxE,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AACD,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,WAAW,EAAE,0BAA0B,CAAC;CAAG;AAwDrG,eAAO,MAAM,0BAA0B,qBAA4B,CAAA"}
@@ -1,6 +1,6 @@
1
1
  // src/sql/sql-expression-parser.ts
2
2
  import { ExpressionMapper } from "@bessemer/cornerstone/expression/expression-mapper";
3
- import { Arrays, Entries, Objects, Ulids } from "@bessemer/cornerstone";
3
+ import { Arrays, Eithers, Entries, Objects, Ulids } from "@bessemer/cornerstone";
4
4
  import {
5
5
  AndExpression,
6
6
  ContainsExpression,
@@ -18,31 +18,47 @@ import {
18
18
  import { isType } from "@bessemer/cornerstone/expression/internal";
19
19
  var SqlExpressionParser = class extends ExpressionMapper {
20
20
  };
21
- var resolveContainsExpression = (expression, map, context) => {
21
+ var resolveContainsExpression = (expression, map, context, invert = false) => {
22
22
  const collection = expression.collection;
23
23
  const parsedValue = getValue(collection);
24
24
  if (!parsedValue.isSuccess) {
25
25
  throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`);
26
26
  }
27
27
  const value = parsedValue.value;
28
+ if (Arrays.isEmpty(value)) {
29
+ return invert ? "(1 = 1)" : "(1 = 0)";
30
+ }
28
31
  value.forEach((it) => {
29
- if (!Objects.isBasic(it)) {
32
+ if (it !== null && !Objects.isBasic(it)) {
30
33
  throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`);
31
34
  }
32
35
  });
33
- const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it));
36
+ const [nonNullValues, nullValues] = Arrays.bisect(value, (it) => it !== null ? Eithers.left(it) : Eithers.right(null));
37
+ const parameters = nonNullValues.map((it) => Entries.of(`_${Ulids.generate()}`, it));
34
38
  parameters.forEach(([key, value2]) => {
35
39
  context.parameters[key] = value2;
36
40
  });
37
- const containsExpression = expression.operands.map(map).map(
38
- (sql) => `(${sql} IN (${Entries.keys(parameters).map((it) => `:${it}`).join(",")}))`
39
- ).join(" AND ");
41
+ const containsExpression = expression.operands.map(map).map((sql) => {
42
+ const conditions = [];
43
+ if (!Arrays.isEmpty(parameters)) {
44
+ conditions.push(
45
+ `(${sql} ${invert ? "NOT IN" : "IN"} (${Entries.keys(parameters).map((it) => `:${it}`).join(",")}))`
46
+ );
47
+ }
48
+ if (!Arrays.isEmpty(nullValues)) {
49
+ conditions.push(`(${sql} ${invert ? "IS NOT" : "IS"} NULL)`);
50
+ }
51
+ return `(${conditions.join(" OR ")})`;
52
+ }).join(" AND ");
40
53
  return `(${containsExpression})`;
41
54
  };
42
55
  var DefaultSqlExpressionParser = new SqlExpressionParser();
43
56
  DefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {
44
57
  const value = expression.value;
45
58
  const parameterName = `_${Ulids.generate()}`;
59
+ if (value === null) {
60
+ throw new Error(`SqlExpressionParser - Unable to resolve null ValueExpression as Sql`);
61
+ }
46
62
  if (!Objects.isBasic(value)) {
47
63
  throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`);
48
64
  }
@@ -55,7 +71,7 @@ DefaultSqlExpressionParser.register(VariableExpression, (expression, _, context)
55
71
  });
56
72
  DefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {
57
73
  if (isType(expression.value, ContainsExpression)) {
58
- return resolveContainsExpression(expression.value, map, context);
74
+ return resolveContainsExpression(expression.value, map, context, true);
59
75
  } else {
60
76
  return `(NOT ${map(expression.value)})`;
61
77
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sql/sql-expression-parser.ts"],"sourcesContent":["import { ExpressionMapper, ExpressionResolver } from '@bessemer/cornerstone/expression/expression-mapper'\nimport { Arrays, Entries, Objects, Ulids } from '@bessemer/cornerstone'\nimport { BasicType, Dictionary } from '@bessemer/cornerstone/types'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n getValue,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { isType } from '@bessemer/cornerstone/expression/internal'\nimport { SqlFragment, SqlParameterMap } from '@bessemer/cornerstone/sql'\n\nexport type SqlExpressionParserContext = {\n variables: Dictionary<string>\n parameters: SqlParameterMap\n}\nexport class SqlExpressionParser extends ExpressionMapper<SqlFragment, SqlExpressionParserContext> {}\n\n// JOHN should be easier to define this type\nconst resolveContainsExpression: ExpressionResolver<ReturnType<typeof ContainsExpression.builder>, SqlFragment, SqlExpressionParserContext> = (\n expression,\n map,\n context\n) => {\n const collection = expression.collection\n\n const parsedValue = getValue(collection)\n if (!parsedValue.isSuccess) {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n const value = parsedValue.value as Array<BasicType>\n\n value.forEach((it) => {\n if (!Objects.isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.operands\n .map(map)\n .map(\n (sql) =>\n `(${sql} IN (${Entries.keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n .join(' AND ')\n\n return `(${containsExpression})`\n}\n\nexport const DefaultSqlExpressionParser = new SqlExpressionParser()\nDefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {\n const value = expression.value\n const parameterName = `_${Ulids.generate()}`\n if (!Objects.isBasic(value)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`)\n }\n\n context.parameters[parameterName] = value\n return `:${parameterName}`\n})\nDefaultSqlExpressionParser.register(VariableExpression, (expression, _, context) => {\n const variableName = context.variables[expression.name]\n return variableName ?? expression.name\n})\nDefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {\n if (isType(expression.value, ContainsExpression)) {\n return resolveContainsExpression(expression.value, map, context)\n } else {\n return `(NOT ${map(expression.value)})`\n }\n})\nDefaultSqlExpressionParser.register(AndExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' AND ')})`\n})\nDefaultSqlExpressionParser.register(OrExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' OR ')})`\n})\nDefaultSqlExpressionParser.register(EqualsExpression, (expression, map) => {\n const first = Arrays.first(expression.operands)!\n const rest = Arrays.rest(expression.operands)\n\n const mappedFirst = map(first)\n const equalsExpressions = rest\n .map((it) => {\n const parsedValue = getValue(it)\n if (parsedValue.isSuccess) {\n if (parsedValue.value === null) {\n return `(${mappedFirst} IS NULL)`\n } else {\n return `(${mappedFirst} = ${map(it)})`\n }\n } else {\n return `(${mappedFirst} = ${map(it)})`\n }\n })\n .join(' AND ')\n return `(${equalsExpressions})`\n})\nDefaultSqlExpressionParser.register(ContainsExpression, resolveContainsExpression)\nDefaultSqlExpressionParser.register(LessThanExpression, (expression, map) => {\n return `(${map(expression.left)} < ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(LessThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} <= ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanExpression, (expression, map) => {\n return `(${map(expression.left)} > ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} >= ${map(expression.right)})`\n})\n"],"mappings":"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","names":["value"]}
1
+ {"version":3,"sources":["../../src/sql/sql-expression-parser.ts"],"sourcesContent":["import { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper'\nimport { Arrays, Eithers, Entries, Objects, Ulids } from '@bessemer/cornerstone'\nimport { BasicType, Dictionary } from '@bessemer/cornerstone/types'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n getValue,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { isType } from '@bessemer/cornerstone/expression/internal'\nimport { SqlFragment, SqlParameterMap } from '@bessemer/cornerstone/sql'\nimport { Expression } from '@bessemer/cornerstone/expression'\n\nexport type SqlExpressionParserContext = {\n variables: Dictionary<string>\n parameters: SqlParameterMap\n}\nexport class SqlExpressionParser extends ExpressionMapper<SqlFragment, SqlExpressionParserContext> {}\n\nconst resolveContainsExpression = (\n // JOHN should be easier to define this type\n expression: ReturnType<typeof ContainsExpression.builder>,\n map: (expression: Expression<unknown>) => SqlFragment,\n context: SqlExpressionParserContext,\n invert = false\n) => {\n const collection = expression.collection\n\n const parsedValue = getValue(collection)\n if (!parsedValue.isSuccess) {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n const value = parsedValue.value as Array<BasicType | null>\n if (Arrays.isEmpty(value)) {\n return invert ? '(1 = 1)' : '(1 = 0)'\n }\n\n value.forEach((it) => {\n if (it !== null && !Objects.isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const [nonNullValues, nullValues] = Arrays.bisect(value, (it) => (it !== null ? Eithers.left(it) : Eithers.right(null)))\n const parameters = nonNullValues.map((it) => Entries.of(`_${Ulids.generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.operands\n .map(map)\n .map((sql) => {\n const conditions = []\n\n if (!Arrays.isEmpty(parameters)) {\n conditions.push(\n `(${sql} ${invert ? 'NOT IN' : 'IN'} (${Entries.keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n }\n\n if (!Arrays.isEmpty(nullValues)) {\n conditions.push(`(${sql} ${invert ? 'IS NOT' : 'IS'} NULL)`)\n }\n\n return `(${conditions.join(' OR ')})`\n })\n .join(' AND ')\n\n return `(${containsExpression})`\n}\n\nexport const DefaultSqlExpressionParser = new SqlExpressionParser()\nDefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {\n const value = expression.value\n const parameterName = `_${Ulids.generate()}`\n if (value === null) {\n throw new Error(`SqlExpressionParser - Unable to resolve null ValueExpression as Sql`)\n }\n if (!Objects.isBasic(value)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`)\n }\n\n context.parameters[parameterName] = value\n return `:${parameterName}`\n})\nDefaultSqlExpressionParser.register(VariableExpression, (expression, _, context) => {\n const variableName = context.variables[expression.name]\n return variableName ?? expression.name\n})\nDefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {\n if (isType(expression.value, ContainsExpression)) {\n return resolveContainsExpression(expression.value, map, context, true)\n } else {\n return `(NOT ${map(expression.value)})`\n }\n})\nDefaultSqlExpressionParser.register(AndExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' AND ')})`\n})\nDefaultSqlExpressionParser.register(OrExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' OR ')})`\n})\nDefaultSqlExpressionParser.register(EqualsExpression, (expression, map) => {\n const first = Arrays.first(expression.operands)!\n const rest = Arrays.rest(expression.operands)\n\n const mappedFirst = map(first)\n const equalsExpressions = rest\n .map((it) => {\n const parsedValue = getValue(it)\n if (parsedValue.isSuccess) {\n if (parsedValue.value === null) {\n return `(${mappedFirst} IS NULL)`\n } else {\n return `(${mappedFirst} = ${map(it)})`\n }\n } else {\n return `(${mappedFirst} = ${map(it)})`\n }\n })\n .join(' AND ')\n return `(${equalsExpressions})`\n})\nDefaultSqlExpressionParser.register(ContainsExpression, resolveContainsExpression)\nDefaultSqlExpressionParser.register(LessThanExpression, (expression, map) => {\n return `(${map(expression.left)} < ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(LessThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} <= ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanExpression, (expression, map) => {\n return `(${map(expression.left)} > ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} >= ${map(expression.right)})`\n})\n"],"mappings":"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","names":["value"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bessemer/cornerstone",
3
3
  "type": "module",
4
- "version": "0.5.62",
4
+ "version": "0.5.63",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,