Comparing version 0.19.1 to 0.19.2
@@ -57,5 +57,6 @@ declare type Mode = "ts" | "js" | "dts"; | ||
private resolveIdentRef; | ||
render({ mode, moduleKind }: { | ||
render({ mode, moduleKind, forceDefaultExport, }: { | ||
mode: Mode; | ||
moduleKind?: ModuleKind; | ||
forceDefaultExport?: boolean; | ||
}): string; | ||
@@ -62,0 +63,0 @@ isEmpty(): boolean; |
@@ -209,3 +209,3 @@ "use strict"; | ||
} | ||
renderExports({ mode, moduleKind, refs, helpers, }) { | ||
renderExports({ mode, moduleKind, refs, helpers, forceDefaultExport = false, }) { | ||
var _a, _b, _c, _d; | ||
@@ -329,3 +329,3 @@ const exports = []; | ||
} | ||
if (refsDefault.length) { | ||
if (refsDefault.length || forceDefaultExport) { | ||
if (mode === "ts" || mode === "dts") { | ||
@@ -472,3 +472,3 @@ exports.push(`${mode === "dts" ? "declare " : ""}type __defaultExports = {\n${refsDefault | ||
} | ||
render({ mode, moduleKind }) { | ||
render({ mode, moduleKind, forceDefaultExport, }) { | ||
moduleKind !== null && moduleKind !== void 0 ? moduleKind : (moduleKind = mode === "js" ? "cjs" : "esm"); | ||
@@ -508,2 +508,3 @@ const importsExports = this.importsExports.clone(); | ||
helpers, | ||
forceDefaultExport, | ||
}); | ||
@@ -596,8 +597,9 @@ body += "\n\n" + exports; | ||
} | ||
const forceDefaultExport = fn.startsWith("modules/"); | ||
if (mode === "ts") { | ||
await adapter_node_1.fs.writeFile(dest + ".ts", builder.render({ mode: "ts" })); | ||
await adapter_node_1.fs.writeFile(dest + ".ts", builder.render({ mode: "ts", forceDefaultExport })); | ||
} | ||
else if (mode === "js+dts") { | ||
await adapter_node_1.fs.writeFile(dest + (moduleKind === "esm" ? ".mjs" : ".js"), builder.render({ mode: "js", moduleKind })); | ||
await adapter_node_1.fs.writeFile(dest + ".d.ts", builder.render({ mode: "dts" })); | ||
await adapter_node_1.fs.writeFile(dest + (moduleKind === "esm" ? ".mjs" : ".js"), builder.render({ mode: "js", moduleKind, forceDefaultExport })); | ||
await adapter_node_1.fs.writeFile(dest + ".d.ts", builder.render({ mode: "dts", forceDefaultExport })); | ||
} | ||
@@ -604,0 +606,0 @@ } |
@@ -138,4 +138,4 @@ "use strict"; | ||
]); | ||
f.writeln([(0, builders_1.r) ` a = (a`, (0, builders_1.t) ` as any`, (0, builders_1.r) `).__casttype__ ?? a;`]); | ||
f.writeln([(0, builders_1.r) ` b = (b`, (0, builders_1.t) ` as any`, (0, builders_1.r) `).__casttype__ ?? b;`]); | ||
f.writeln([(0, builders_1.r) ` a = (a`, (0, builders_1.ts) ` as any`, (0, builders_1.r) `).__casttype__ ?? a;`]); | ||
f.writeln([(0, builders_1.r) ` b = (b`, (0, builders_1.ts) ` as any`, (0, builders_1.r) `).__casttype__ ?? b;`]); | ||
f.addExport("getSharedParentScalar"); | ||
@@ -182,3 +182,3 @@ f.writeBuf(runtimeMap); | ||
f.writeln([ | ||
(0, builders_1.dts) `declare`, | ||
(0, builders_1.dts) `declare `, | ||
(0, builders_1.t) `type getTsType<T extends $.BaseType> = T extends $.ScalarType`, | ||
@@ -185,0 +185,0 @@ ]); |
@@ -169,2 +169,5 @@ "use strict"; | ||
]); | ||
if (type.name === "std::Object") { | ||
body.writeln([(0, builders_1.t) `export `, (0, builders_1.dts) `declare `, (0, builders_1.t) `type $Object = ${ref}`]); | ||
} | ||
const literal = (0, genutil_1.getRef)(type.name, { prefix: "" }); | ||
@@ -171,0 +174,0 @@ body.writeln([ |
import { Cardinality, Expression, ExpressionKind, LinkDesc, ObjectTypeSet, ObjectTypePointers, PropertyDesc, stripBacklinks, stripNonWritables, typeutil, $scopify, stripSet, TypeSet } from "../reflection"; | ||
import type { pointerToAssignmentExpression } from "./casting"; | ||
import { $expr_PathNode } from "../reflection/path"; | ||
import type { $Object } from "@generated/modules/std"; | ||
export declare type pointerIsOptional<T extends PropertyDesc | LinkDesc> = T["cardinality"] extends Cardinality.Many | Cardinality.Empty | Cardinality.AtMostOne ? true : false; | ||
@@ -44,4 +45,4 @@ export declare type InsertShape<Root extends ObjectTypeSet> = typeutil.stripNever<stripNonWritables<stripBacklinks<Root["__element__"]["__pointers__"]>>> extends infer Shape ? Shape extends ObjectTypePointers ? typeutil.addQuestionMarks<{ | ||
__kind__: ExpressionKind.InsertUnlessConflict; | ||
__element__: Root["__element__"]; | ||
__cardinality__: Cardinality.One; | ||
__element__: Conflict["else"] extends TypeSet ? Conflict["else"]["__element__"]["__name__"] extends Root["__element__"]["__name__"] ? Root["__element__"] : $Object : Root["__element__"]; | ||
__cardinality__: Conflict["else"] extends TypeSet ? Conflict["else"]["__cardinality__"] : Cardinality.AtMostOne; | ||
__expr__: Root; | ||
@@ -48,0 +49,0 @@ __conflict__: Conflict; |
@@ -7,2 +7,3 @@ "use strict"; | ||
const cast_1 = require("./cast"); | ||
const literal_1 = require("./literal"); | ||
function unlessConflict(conflictGetter) { | ||
@@ -12,3 +13,3 @@ const expr = { | ||
__element__: this.__element__, | ||
__cardinality__: reflection_1.Cardinality.One, | ||
__cardinality__: reflection_1.Cardinality.AtMostOne, | ||
__expr__: this, | ||
@@ -22,3 +23,10 @@ }; | ||
const scopedExpr = (0, path_1.$getScopedExpr)(this.__expr__); | ||
expr.__conflict__ = conflictGetter(scopedExpr); | ||
const conflict = conflictGetter(scopedExpr); | ||
expr.__conflict__ = conflict; | ||
if (conflict.else) { | ||
expr.__cardinality__ = conflict.else.__cardinality__; | ||
if (this.__element__.__name__ !== conflict.else.__element__.__name__) { | ||
expr.__element__ = (0, literal_1.$getTypeByName)("std::Object"); | ||
} | ||
} | ||
return (0, path_1.$expressionify)(expr); | ||
@@ -25,0 +33,0 @@ } |
@@ -21,3 +21,5 @@ import { | ||
import {cast} from "./cast"; | ||
import {$getTypeByName} from "./literal"; | ||
import {$expr_PathNode} from "../reflection/path"; | ||
import type {$Object} from "@generated/modules/std"; | ||
@@ -99,4 +101,10 @@ export type pointerIsOptional<T extends PropertyDesc | LinkDesc> = | ||
__kind__: ExpressionKind.InsertUnlessConflict; | ||
__element__: Root["__element__"]; | ||
__cardinality__: Cardinality.One; | ||
__element__: Conflict["else"] extends TypeSet | ||
? Conflict["else"]["__element__"]["__name__"] extends Root["__element__"]["__name__"] | ||
? Root["__element__"] | ||
: $Object | ||
: Root["__element__"]; | ||
__cardinality__: Conflict["else"] extends TypeSet | ||
? Conflict["else"]["__cardinality__"] | ||
: Cardinality.AtMostOne; | ||
__expr__: Root; | ||
@@ -113,3 +121,3 @@ __conflict__: Conflict; | ||
__element__: this.__element__, | ||
__cardinality__: Cardinality.One, | ||
__cardinality__: Cardinality.AtMostOne, | ||
__expr__: this, | ||
@@ -124,3 +132,10 @@ // __conflict__: Conflict; | ||
const scopedExpr = $getScopedExpr(this.__expr__); | ||
expr.__conflict__ = conflictGetter(scopedExpr); | ||
const conflict = conflictGetter(scopedExpr); | ||
expr.__conflict__ = conflict; | ||
if (conflict.else) { | ||
expr.__cardinality__ = conflict.else.__cardinality__; | ||
if (this.__element__.__name__ !== conflict.else.__element__.__name__) { | ||
expr.__element__ = $getTypeByName("std::Object"); | ||
} | ||
} | ||
return $expressionify(expr); | ||
@@ -127,0 +142,0 @@ } |
@@ -17,2 +17,3 @@ "use strict"; | ||
const nameMapping = new Map([ | ||
...[...__spec__1.spec.values()].map(type => [type.name, type.id]), | ||
["std::number", "00000000-0000-0000-0000-0000000001ff"], | ||
@@ -19,0 +20,0 @@ ]); |
@@ -26,3 +26,4 @@ import { | ||
const nameMapping = new Map([ | ||
const nameMapping = new Map<string, string>([ | ||
...([...spec.values()].map(type => [type.name, type.id]) as any), | ||
["std::number", "00000000-0000-0000-0000-0000000001ff"], | ||
@@ -29,0 +30,0 @@ ]); |
@@ -153,2 +153,3 @@ "use strict"; | ||
__cardinality__: reflection_1.Cardinality.One, | ||
__scopedFrom__: expr, | ||
}); | ||
@@ -155,0 +156,0 @@ scopeRoots.add(scopedExpr); |
@@ -234,2 +234,3 @@ import { | ||
__cardinality__: Cardinality.One, | ||
__scopedFrom__: expr, | ||
}); | ||
@@ -236,0 +237,0 @@ scopeRoots.add(scopedExpr); |
@@ -240,3 +240,3 @@ "use strict"; | ||
} | ||
function renderWithBlockExpr(varExpr) { | ||
function renderWithBlockExpr(varExpr, _noImplicitDetached) { | ||
var _a; | ||
@@ -247,6 +247,6 @@ const withBlockElement = ctx.withVars.get(varExpr); | ||
renderWithVar: varExpr, | ||
}, !withBlockElement.scopedExpr); | ||
if (ctx.linkProps.has(varExpr)) { | ||
}, !withBlockElement.scopedExpr, _noImplicitDetached); | ||
if (ctx.linkProps.has(expr)) { | ||
renderedExpr = `SELECT ${renderedExpr} {\n${ctx.linkProps | ||
.get(varExpr) | ||
.get(expr) | ||
.map(linkPropName => ` __linkprop_${linkPropName} := ${renderedExpr}@${linkPropName}`) | ||
@@ -275,3 +275,3 @@ .join(",\n")}\n}`; | ||
scopeVar.name = scopeName + "_expr"; | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr)); | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr, noImplicitDetached)); | ||
scopeVar.name = scopeName + "_inner"; | ||
@@ -293,3 +293,3 @@ scopedWithBlock.push(` ${scopeName} := (FOR ${scopeVar.name} IN {${scopeName + "_expr"}} UNION (\n WITH\n${indent(scopedBlockVars | ||
else { | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr)); | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr, noImplicitDetached)); | ||
} | ||
@@ -438,3 +438,3 @@ } | ||
else if (expr.__kind__ === reflection_1.ExpressionKind.Delete) { | ||
return `DELETE (${renderEdgeQL(expr.__expr__, ctx)})`; | ||
return `DELETE (${renderEdgeQL(expr.__expr__, ctx, undefined, noImplicitDetached)})`; | ||
} | ||
@@ -583,6 +583,11 @@ else if (expr.__kind__ === reflection_1.ExpressionKind.Insert) { | ||
if (expr.__parent__) { | ||
childExprs.push(...walkExprTree(expr.__parent__.type, parentScope, ctx)); | ||
if (expr.__parent__.type.__scopedFrom__) { | ||
childExprs.push(expr.__parent__.type); | ||
} | ||
else { | ||
childExprs.push(...walkExprTree(expr.__parent__.type, parentScope, ctx)); | ||
} | ||
if (expr.__kind__ === reflection_1.ExpressionKind.PathLeaf && | ||
expr.__parent__.linkName.startsWith("@")) { | ||
(_a = ctx.seen.get(expr.__parent__.type)) === null || _a === void 0 ? void 0 : _a.linkProps.push(expr); | ||
(_a = ctx.seen.get(parentScope)) === null || _a === void 0 ? void 0 : _a.linkProps.push(expr); | ||
} | ||
@@ -589,0 +594,0 @@ } |
@@ -437,3 +437,6 @@ import { | ||
function renderWithBlockExpr(varExpr: SomeExpression) { | ||
function renderWithBlockExpr( | ||
varExpr: SomeExpression, | ||
_noImplicitDetached?: boolean | ||
) { | ||
const withBlockElement = ctx.withVars.get(varExpr)!; | ||
@@ -446,7 +449,8 @@ let renderedExpr = renderEdgeQL( | ||
}, | ||
!withBlockElement.scopedExpr | ||
!withBlockElement.scopedExpr, | ||
_noImplicitDetached | ||
); | ||
if (ctx.linkProps.has(varExpr)) { | ||
if (ctx.linkProps.has(expr)) { | ||
renderedExpr = `SELECT ${renderedExpr} {\n${ctx.linkProps | ||
.get(varExpr)! | ||
.get(expr)! | ||
.map( | ||
@@ -492,3 +496,5 @@ linkPropName => | ||
scopeVar.name = scopeName + "_expr"; | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr)); | ||
scopedWithBlock.push( | ||
renderWithBlockExpr(scopeExpr, noImplicitDetached) | ||
); | ||
@@ -518,3 +524,5 @@ scopeVar.name = scopeName + "_inner"; | ||
} else { | ||
scopedWithBlock.push(renderWithBlockExpr(scopeExpr!)); | ||
scopedWithBlock.push( | ||
renderWithBlockExpr(scopeExpr!, noImplicitDetached) | ||
); | ||
} | ||
@@ -622,3 +630,6 @@ } | ||
} | ||
return `<${expr.__element__.__name__}>(${renderEdgeQL(expr.__expr__, ctx)})`; | ||
return `<${expr.__element__.__name__}>(${renderEdgeQL( | ||
expr.__expr__, | ||
ctx | ||
)})`; | ||
} else if (expr.__kind__ === ExpressionKind.Select) { | ||
@@ -717,3 +728,8 @@ const lines = []; | ||
} else if (expr.__kind__ === ExpressionKind.Delete) { | ||
return `DELETE (${renderEdgeQL(expr.__expr__, ctx)})`; | ||
return `DELETE (${renderEdgeQL( | ||
expr.__expr__, | ||
ctx, | ||
undefined, | ||
noImplicitDetached | ||
)})`; | ||
} else if (expr.__kind__ === ExpressionKind.Insert) { | ||
@@ -910,5 +926,11 @@ return `INSERT ${renderEdgeQL( | ||
if (expr.__parent__) { | ||
childExprs.push( | ||
...walkExprTree(expr.__parent__.type, parentScope, ctx) | ||
); | ||
if ((expr.__parent__.type as any).__scopedFrom__) { | ||
// if parent is scoped expr then don't walk expr | ||
// since it will already be walked by enclosing select/update | ||
childExprs.push(expr.__parent__.type as any); | ||
} else { | ||
childExprs.push( | ||
...walkExprTree(expr.__parent__.type, parentScope, ctx) | ||
); | ||
} | ||
if ( | ||
@@ -919,3 +941,3 @@ // is link prop | ||
) { | ||
ctx.seen.get(expr.__parent__.type as any)?.linkProps.push(expr); | ||
ctx.seen.get(parentScope!)?.linkProps.push(expr); | ||
} | ||
@@ -922,0 +944,0 @@ } |
@@ -13,3 +13,3 @@ { | ||
}, | ||
"version": "0.19.1", | ||
"version": "0.19.2", | ||
"main": "./dist/index.node.js", | ||
@@ -16,0 +16,0 @@ "types": "./dist/index.node.d.ts", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
960911
24840