@zenstackhq/sdk 3.8.0-beta.1 → 3.8.0-beta.3

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.
package/dist/index.cjs CHANGED
@@ -441,16 +441,16 @@ var PrismaSchemaGenerator = class {
441
441
  async generate() {
442
442
  const prisma = new PrismaModel();
443
443
  for (const decl of this.zmodel.declarations) switch (decl.$type) {
444
- case _zenstackhq_language_ast.DataSource:
444
+ case _zenstackhq_language_ast.DataSource.$type:
445
445
  this.generateDataSource(prisma, decl);
446
446
  break;
447
- case _zenstackhq_language_ast.Enum:
447
+ case _zenstackhq_language_ast.Enum.$type:
448
448
  this.generateEnum(prisma, decl);
449
449
  break;
450
- case _zenstackhq_language_ast.DataModel:
450
+ case _zenstackhq_language_ast.DataModel.$type:
451
451
  this.generateModel(prisma, decl);
452
452
  break;
453
- case _zenstackhq_language_ast.GeneratorDecl:
453
+ case _zenstackhq_language_ast.GeneratorDecl.$type:
454
454
  this.generateGenerator(prisma, decl);
455
455
  break;
456
456
  }
@@ -564,7 +564,7 @@ var PrismaSchemaGenerator = class {
564
564
  return new AttributeArg$2(arg.name, this.makeAttributeArgValue(arg.value));
565
565
  }
566
566
  makeAttributeArgValue(node) {
567
- if ((0, _zenstackhq_language_ast.isLiteralExpr)(node)) return new AttributeArgValue((0, ts_pattern.match)(node.$type).with(_zenstackhq_language_ast.StringLiteral, () => "String").with(_zenstackhq_language_ast.NumberLiteral, () => "Number").with(_zenstackhq_language_ast.BooleanLiteral, () => "Boolean").exhaustive(), node.value);
567
+ if ((0, _zenstackhq_language_ast.isLiteralExpr)(node)) return new AttributeArgValue((0, ts_pattern.match)(node.$type).with(_zenstackhq_language_ast.StringLiteral.$type, () => "String").with(_zenstackhq_language_ast.NumberLiteral.$type, () => "Number").with(_zenstackhq_language_ast.BooleanLiteral.$type, () => "Boolean").exhaustive(), node.value);
568
568
  else if ((0, _zenstackhq_language_ast.isArrayExpr)(node)) return new AttributeArgValue("Array", new Array(...node.items.map((item) => this.makeAttributeArgValue(item))));
569
569
  else if ((0, _zenstackhq_language_ast.isReferenceExpr)(node)) return new AttributeArgValue("FieldReference", new FieldReference(node.target.ref.name, node.args.map((arg) => new FieldReferenceArg(arg.name, this.exprToText(arg.value)))));
570
570
  else if ((0, _zenstackhq_language_ast.isInvocationExpr)(node)) return new AttributeArgValue("FunctionCall", this.makeFunctionCall(node));
@@ -1205,6 +1205,37 @@ var TsSchemaGenerator = class {
1205
1205
  }
1206
1206
  };
1207
1207
  //#endregion
1208
+ //#region src/tsconfig-utils.ts
1209
+ /**
1210
+ * Detects the file extension that should be appended to relative imports in
1211
+ * generated TypeScript, by inspecting the nearest `tsconfig.json` to the given
1212
+ * directory.
1213
+ *
1214
+ * Returns `'.js'` when the project uses native ESM module resolution
1215
+ * (`node16`/`nodenext`), which requires explicit extensions on relative imports.
1216
+ * Returns `undefined` for `bundler`/`node` resolution (where extensionless
1217
+ * imports are the idiomatic, maximally-compatible form) or when no tsconfig is
1218
+ * found.
1219
+ */
1220
+ function detectImportFileExtension(fromDir) {
1221
+ const configPath = typescript.findConfigFile(fromDir, typescript.sys.fileExists, "tsconfig.json");
1222
+ if (!configPath) return;
1223
+ const configFile = typescript.readConfigFile(configPath, typescript.sys.readFile);
1224
+ if (configFile.error) return;
1225
+ const parsed = typescript.parseJsonConfigFileContent(configFile.config, typescript.sys, node_path.default.dirname(configPath));
1226
+ let moduleResolution = parsed.options.moduleResolution;
1227
+ if (moduleResolution === void 0) switch (parsed.options.module) {
1228
+ case typescript.ModuleKind.Node16:
1229
+ case typescript.ModuleKind.Node18:
1230
+ case typescript.ModuleKind.Node20:
1231
+ case typescript.ModuleKind.NodeNext:
1232
+ moduleResolution = typescript.ModuleResolutionKind.NodeNext;
1233
+ break;
1234
+ default: break;
1235
+ }
1236
+ if (moduleResolution === typescript.ModuleResolutionKind.Node16 || moduleResolution === typescript.ModuleResolutionKind.NodeNext) return ".js";
1237
+ }
1238
+ //#endregion
1208
1239
  Object.defineProperty(exports, "ModelUtils", {
1209
1240
  enumerable: true,
1210
1241
  get: function() {
@@ -1213,5 +1244,6 @@ Object.defineProperty(exports, "ModelUtils", {
1213
1244
  });
1214
1245
  exports.PrismaSchemaGenerator = PrismaSchemaGenerator;
1215
1246
  exports.TsSchemaGenerator = TsSchemaGenerator;
1247
+ exports.detectImportFileExtension = detectImportFileExtension;
1216
1248
 
1217
1249
  //# sourceMappingURL=index.cjs.map