@zenstackhq/testtools 3.0.0-alpha.14 → 3.0.0-alpha.15

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
@@ -33,7 +33,8 @@ var src_exports = {};
33
33
  __export(src_exports, {
34
34
  createTestProject: () => createTestProject,
35
35
  generateTsSchema: () => generateTsSchema,
36
- generateTsSchemaFromFile: () => generateTsSchemaFromFile
36
+ generateTsSchemaFromFile: () => generateTsSchemaFromFile,
37
+ generateTsSchemaInPlace: () => generateTsSchemaInPlace
37
38
  });
38
39
  module.exports = __toCommonJS(src_exports);
39
40
 
@@ -129,6 +130,10 @@ ${schemaText}`);
129
130
  import_node_fs2.default.writeFileSync(filePath, content);
130
131
  }
131
132
  }
133
+ return compileAndLoad(workDir);
134
+ }
135
+ __name(generateTsSchema, "generateTsSchema");
136
+ async function compileAndLoad(workDir) {
132
137
  (0, import_node_child_process.execSync)("npx tsc", {
133
138
  cwd: workDir,
134
139
  stdio: "inherit"
@@ -139,16 +144,25 @@ ${schemaText}`);
139
144
  schema: module2.schema
140
145
  };
141
146
  }
142
- __name(generateTsSchema, "generateTsSchema");
147
+ __name(compileAndLoad, "compileAndLoad");
143
148
  function generateTsSchemaFromFile(filePath) {
144
149
  const schemaText = import_node_fs2.default.readFileSync(filePath, "utf8");
145
150
  return generateTsSchema(schemaText);
146
151
  }
147
152
  __name(generateTsSchemaFromFile, "generateTsSchemaFromFile");
153
+ async function generateTsSchemaInPlace(schemaPath) {
154
+ const workDir = import_node_path2.default.dirname(schemaPath);
155
+ const pluginModelFiles = import_glob.glob.sync(import_node_path2.default.resolve(__dirname, "../../runtime/src/plugins/**/plugin.zmodel"));
156
+ const generator = new import_sdk.TsSchemaGenerator();
157
+ await generator.generate(schemaPath, pluginModelFiles, workDir);
158
+ return compileAndLoad(workDir);
159
+ }
160
+ __name(generateTsSchemaInPlace, "generateTsSchemaInPlace");
148
161
  // Annotate the CommonJS export names for ESM import in node:
149
162
  0 && (module.exports = {
150
163
  createTestProject,
151
164
  generateTsSchema,
152
- generateTsSchemaFromFile
165
+ generateTsSchemaFromFile,
166
+ generateTsSchemaInPlace
153
167
  });
154
168
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/project.ts","../src/schema.ts"],"sourcesContent":["export * from './project';\nexport * from './schema';\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport tmp from 'tmp';\n\nexport function createTestProject() {\n const { name: workDir } = tmp.dirSync({ unsafeCleanup: true });\n\n fs.mkdirSync(path.join(workDir, 'node_modules'));\n\n // symlink all entries from \"node_modules\"\n const nodeModules = fs.readdirSync(path.join(__dirname, '../node_modules'));\n for (const entry of nodeModules) {\n if (entry.startsWith('@zenstackhq')) {\n continue;\n }\n fs.symlinkSync(\n path.join(__dirname, '../node_modules', entry),\n path.join(workDir, 'node_modules', entry),\n 'dir',\n );\n }\n\n // in addition, symlink zenstack packages\n const zenstackPackages = ['language', 'sdk', 'runtime', 'cli'];\n fs.mkdirSync(path.join(workDir, 'node_modules/@zenstackhq'));\n for (const pkg of zenstackPackages) {\n fs.symlinkSync(\n path.join(__dirname, `../../${pkg}`),\n path.join(workDir, `node_modules/@zenstackhq/${pkg}`),\n 'dir',\n );\n }\n\n fs.writeFileSync(\n path.join(workDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test',\n version: '1.0.0',\n type: 'module',\n },\n null,\n 4,\n ),\n );\n\n fs.writeFileSync(\n path.join(workDir, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n module: 'ESNext',\n target: 'ESNext',\n moduleResolution: 'Bundler',\n esModuleInterop: true,\n skipLibCheck: true,\n strict: true,\n },\n include: ['**/*.ts'],\n },\n null,\n 4,\n ),\n );\n\n return workDir;\n}\n","import { TsSchemaGenerator } from '@zenstackhq/sdk';\nimport type { SchemaDef } from '@zenstackhq/sdk/schema';\nimport { glob } from 'glob';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { match } from 'ts-pattern';\nimport { createTestProject } from './project';\n\nfunction makePrelude(provider: 'sqlite' | 'postgresql', dbUrl?: string) {\n return match(provider)\n .with('sqlite', () => {\n return `\ndatasource db {\n provider = 'sqlite'\n url = '${dbUrl ?? 'file:./test.db'}'\n}\n`;\n })\n .with('postgresql', () => {\n return `\ndatasource db {\n provider = 'postgresql'\n url = '${dbUrl ?? 'postgres://postgres:postgres@localhost:5432/db'}'\n}\n`;\n })\n .exhaustive();\n}\n\nexport async function generateTsSchema(\n schemaText: string,\n provider: 'sqlite' | 'postgresql' = 'sqlite',\n dbUrl?: string,\n extraSourceFiles?: Record<string, string>,\n) {\n const workDir = createTestProject();\n\n const zmodelPath = path.join(workDir, 'schema.zmodel');\n const noPrelude = schemaText.includes('datasource ');\n fs.writeFileSync(zmodelPath, `${noPrelude ? '' : makePrelude(provider, dbUrl)}\\n\\n${schemaText}`);\n\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(zmodelPath, pluginModelFiles, workDir);\n\n if (extraSourceFiles) {\n for (const [fileName, content] of Object.entries(extraSourceFiles)) {\n const filePath = path.resolve(workDir, `${fileName}.ts`);\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, content);\n }\n }\n\n // compile the generated TS schema\n execSync('npx tsc', {\n cwd: workDir,\n stdio: 'inherit',\n });\n\n // load the schema module\n const module = await import(path.join(workDir, 'schema.js'));\n return { workDir, schema: module.schema as SchemaDef };\n}\n\nexport function generateTsSchemaFromFile(filePath: string) {\n const schemaText = fs.readFileSync(filePath, 'utf8');\n return generateTsSchema(schemaText);\n}\n"],"mappings":"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","names":["createTestProject","name","workDir","tmp","dirSync","unsafeCleanup","fs","mkdirSync","path","join","nodeModules","readdirSync","__dirname","entry","startsWith","symlinkSync","zenstackPackages","pkg","writeFileSync","JSON","stringify","version","type","compilerOptions","module","target","moduleResolution","esModuleInterop","skipLibCheck","strict","include","import_node_fs","import_node_path","makePrelude","provider","dbUrl","match","with","exhaustive","generateTsSchema","schemaText","extraSourceFiles","workDir","createTestProject","zmodelPath","path","join","noPrelude","includes","fs","writeFileSync","pluginModelFiles","glob","sync","resolve","__dirname","generator","TsSchemaGenerator","generate","fileName","content","Object","entries","filePath","mkdirSync","dirname","recursive","execSync","cwd","stdio","module","schema","generateTsSchemaFromFile","readFileSync"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/project.ts","../src/schema.ts"],"sourcesContent":["export * from './project';\nexport * from './schema';\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport tmp from 'tmp';\n\nexport function createTestProject() {\n const { name: workDir } = tmp.dirSync({ unsafeCleanup: true });\n\n fs.mkdirSync(path.join(workDir, 'node_modules'));\n\n // symlink all entries from \"node_modules\"\n const nodeModules = fs.readdirSync(path.join(__dirname, '../node_modules'));\n for (const entry of nodeModules) {\n if (entry.startsWith('@zenstackhq')) {\n continue;\n }\n fs.symlinkSync(\n path.join(__dirname, '../node_modules', entry),\n path.join(workDir, 'node_modules', entry),\n 'dir',\n );\n }\n\n // in addition, symlink zenstack packages\n const zenstackPackages = ['language', 'sdk', 'runtime', 'cli'];\n fs.mkdirSync(path.join(workDir, 'node_modules/@zenstackhq'));\n for (const pkg of zenstackPackages) {\n fs.symlinkSync(\n path.join(__dirname, `../../${pkg}`),\n path.join(workDir, `node_modules/@zenstackhq/${pkg}`),\n 'dir',\n );\n }\n\n fs.writeFileSync(\n path.join(workDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test',\n version: '1.0.0',\n type: 'module',\n },\n null,\n 4,\n ),\n );\n\n fs.writeFileSync(\n path.join(workDir, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n module: 'ESNext',\n target: 'ESNext',\n moduleResolution: 'Bundler',\n esModuleInterop: true,\n skipLibCheck: true,\n strict: true,\n },\n include: ['**/*.ts'],\n },\n null,\n 4,\n ),\n );\n\n return workDir;\n}\n","import { TsSchemaGenerator } from '@zenstackhq/sdk';\nimport type { SchemaDef } from '@zenstackhq/sdk/schema';\nimport { glob } from 'glob';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { match } from 'ts-pattern';\nimport { createTestProject } from './project';\n\nfunction makePrelude(provider: 'sqlite' | 'postgresql', dbUrl?: string) {\n return match(provider)\n .with('sqlite', () => {\n return `\ndatasource db {\n provider = 'sqlite'\n url = '${dbUrl ?? 'file:./test.db'}'\n}\n`;\n })\n .with('postgresql', () => {\n return `\ndatasource db {\n provider = 'postgresql'\n url = '${dbUrl ?? 'postgres://postgres:postgres@localhost:5432/db'}'\n}\n`;\n })\n .exhaustive();\n}\n\nexport async function generateTsSchema(\n schemaText: string,\n provider: 'sqlite' | 'postgresql' = 'sqlite',\n dbUrl?: string,\n extraSourceFiles?: Record<string, string>,\n) {\n const workDir = createTestProject();\n\n const zmodelPath = path.join(workDir, 'schema.zmodel');\n const noPrelude = schemaText.includes('datasource ');\n fs.writeFileSync(zmodelPath, `${noPrelude ? '' : makePrelude(provider, dbUrl)}\\n\\n${schemaText}`);\n\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(zmodelPath, pluginModelFiles, workDir);\n\n if (extraSourceFiles) {\n for (const [fileName, content] of Object.entries(extraSourceFiles)) {\n const filePath = path.resolve(workDir, `${fileName}.ts`);\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, content);\n }\n }\n\n // compile the generated TS schema\n return compileAndLoad(workDir);\n}\n\nasync function compileAndLoad(workDir: string) {\n execSync('npx tsc', {\n cwd: workDir,\n stdio: 'inherit',\n });\n\n // load the schema module\n const module = await import(path.join(workDir, 'schema.js'));\n return { workDir, schema: module.schema as SchemaDef };\n}\n\nexport function generateTsSchemaFromFile(filePath: string) {\n const schemaText = fs.readFileSync(filePath, 'utf8');\n return generateTsSchema(schemaText);\n}\n\nexport async function generateTsSchemaInPlace(schemaPath: string) {\n const workDir = path.dirname(schemaPath);\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(schemaPath, pluginModelFiles, workDir);\n return compileAndLoad(workDir);\n}\n"],"mappings":"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","names":["createTestProject","name","workDir","tmp","dirSync","unsafeCleanup","fs","mkdirSync","path","join","nodeModules","readdirSync","__dirname","entry","startsWith","symlinkSync","zenstackPackages","pkg","writeFileSync","JSON","stringify","version","type","compilerOptions","module","target","moduleResolution","esModuleInterop","skipLibCheck","strict","include","import_node_fs","import_node_path","makePrelude","provider","dbUrl","match","with","exhaustive","generateTsSchema","schemaText","extraSourceFiles","workDir","createTestProject","zmodelPath","path","join","noPrelude","includes","fs","writeFileSync","pluginModelFiles","glob","sync","resolve","__dirname","generator","TsSchemaGenerator","generate","fileName","content","Object","entries","filePath","mkdirSync","dirname","recursive","compileAndLoad","execSync","cwd","stdio","module","schema","generateTsSchemaFromFile","readFileSync","generateTsSchemaInPlace","schemaPath"]}
package/dist/index.d.cts CHANGED
@@ -10,5 +10,9 @@ declare function generateTsSchemaFromFile(filePath: string): Promise<{
10
10
  workDir: string;
11
11
  schema: SchemaDef;
12
12
  }>;
13
+ declare function generateTsSchemaInPlace(schemaPath: string): Promise<{
14
+ workDir: string;
15
+ schema: SchemaDef;
16
+ }>;
13
17
 
14
- export { createTestProject, generateTsSchema, generateTsSchemaFromFile };
18
+ export { createTestProject, generateTsSchema, generateTsSchemaFromFile, generateTsSchemaInPlace };
package/dist/index.d.ts CHANGED
@@ -10,5 +10,9 @@ declare function generateTsSchemaFromFile(filePath: string): Promise<{
10
10
  workDir: string;
11
11
  schema: SchemaDef;
12
12
  }>;
13
+ declare function generateTsSchemaInPlace(schemaPath: string): Promise<{
14
+ workDir: string;
15
+ schema: SchemaDef;
16
+ }>;
13
17
 
14
- export { createTestProject, generateTsSchema, generateTsSchemaFromFile };
18
+ export { createTestProject, generateTsSchema, generateTsSchemaFromFile, generateTsSchemaInPlace };
package/dist/index.js CHANGED
@@ -93,6 +93,10 @@ ${schemaText}`);
93
93
  fs2.writeFileSync(filePath, content);
94
94
  }
95
95
  }
96
+ return compileAndLoad(workDir);
97
+ }
98
+ __name(generateTsSchema, "generateTsSchema");
99
+ async function compileAndLoad(workDir) {
96
100
  execSync("npx tsc", {
97
101
  cwd: workDir,
98
102
  stdio: "inherit"
@@ -103,15 +107,24 @@ ${schemaText}`);
103
107
  schema: module.schema
104
108
  };
105
109
  }
106
- __name(generateTsSchema, "generateTsSchema");
110
+ __name(compileAndLoad, "compileAndLoad");
107
111
  function generateTsSchemaFromFile(filePath) {
108
112
  const schemaText = fs2.readFileSync(filePath, "utf8");
109
113
  return generateTsSchema(schemaText);
110
114
  }
111
115
  __name(generateTsSchemaFromFile, "generateTsSchemaFromFile");
116
+ async function generateTsSchemaInPlace(schemaPath) {
117
+ const workDir = path2.dirname(schemaPath);
118
+ const pluginModelFiles = glob.sync(path2.resolve(__dirname, "../../runtime/src/plugins/**/plugin.zmodel"));
119
+ const generator = new TsSchemaGenerator();
120
+ await generator.generate(schemaPath, pluginModelFiles, workDir);
121
+ return compileAndLoad(workDir);
122
+ }
123
+ __name(generateTsSchemaInPlace, "generateTsSchemaInPlace");
112
124
  export {
113
125
  createTestProject,
114
126
  generateTsSchema,
115
- generateTsSchemaFromFile
127
+ generateTsSchemaFromFile,
128
+ generateTsSchemaInPlace
116
129
  };
117
130
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/project.ts","../src/schema.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport tmp from 'tmp';\n\nexport function createTestProject() {\n const { name: workDir } = tmp.dirSync({ unsafeCleanup: true });\n\n fs.mkdirSync(path.join(workDir, 'node_modules'));\n\n // symlink all entries from \"node_modules\"\n const nodeModules = fs.readdirSync(path.join(__dirname, '../node_modules'));\n for (const entry of nodeModules) {\n if (entry.startsWith('@zenstackhq')) {\n continue;\n }\n fs.symlinkSync(\n path.join(__dirname, '../node_modules', entry),\n path.join(workDir, 'node_modules', entry),\n 'dir',\n );\n }\n\n // in addition, symlink zenstack packages\n const zenstackPackages = ['language', 'sdk', 'runtime', 'cli'];\n fs.mkdirSync(path.join(workDir, 'node_modules/@zenstackhq'));\n for (const pkg of zenstackPackages) {\n fs.symlinkSync(\n path.join(__dirname, `../../${pkg}`),\n path.join(workDir, `node_modules/@zenstackhq/${pkg}`),\n 'dir',\n );\n }\n\n fs.writeFileSync(\n path.join(workDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test',\n version: '1.0.0',\n type: 'module',\n },\n null,\n 4,\n ),\n );\n\n fs.writeFileSync(\n path.join(workDir, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n module: 'ESNext',\n target: 'ESNext',\n moduleResolution: 'Bundler',\n esModuleInterop: true,\n skipLibCheck: true,\n strict: true,\n },\n include: ['**/*.ts'],\n },\n null,\n 4,\n ),\n );\n\n return workDir;\n}\n","import { TsSchemaGenerator } from '@zenstackhq/sdk';\nimport type { SchemaDef } from '@zenstackhq/sdk/schema';\nimport { glob } from 'glob';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { match } from 'ts-pattern';\nimport { createTestProject } from './project';\n\nfunction makePrelude(provider: 'sqlite' | 'postgresql', dbUrl?: string) {\n return match(provider)\n .with('sqlite', () => {\n return `\ndatasource db {\n provider = 'sqlite'\n url = '${dbUrl ?? 'file:./test.db'}'\n}\n`;\n })\n .with('postgresql', () => {\n return `\ndatasource db {\n provider = 'postgresql'\n url = '${dbUrl ?? 'postgres://postgres:postgres@localhost:5432/db'}'\n}\n`;\n })\n .exhaustive();\n}\n\nexport async function generateTsSchema(\n schemaText: string,\n provider: 'sqlite' | 'postgresql' = 'sqlite',\n dbUrl?: string,\n extraSourceFiles?: Record<string, string>,\n) {\n const workDir = createTestProject();\n\n const zmodelPath = path.join(workDir, 'schema.zmodel');\n const noPrelude = schemaText.includes('datasource ');\n fs.writeFileSync(zmodelPath, `${noPrelude ? '' : makePrelude(provider, dbUrl)}\\n\\n${schemaText}`);\n\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(zmodelPath, pluginModelFiles, workDir);\n\n if (extraSourceFiles) {\n for (const [fileName, content] of Object.entries(extraSourceFiles)) {\n const filePath = path.resolve(workDir, `${fileName}.ts`);\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, content);\n }\n }\n\n // compile the generated TS schema\n execSync('npx tsc', {\n cwd: workDir,\n stdio: 'inherit',\n });\n\n // load the schema module\n const module = await import(path.join(workDir, 'schema.js'));\n return { workDir, schema: module.schema as SchemaDef };\n}\n\nexport function generateTsSchemaFromFile(filePath: string) {\n const schemaText = fs.readFileSync(filePath, 'utf8');\n return generateTsSchema(schemaText);\n}\n"],"mappings":"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","names":["fs","path","tmp","createTestProject","name","workDir","tmp","dirSync","unsafeCleanup","fs","mkdirSync","path","join","nodeModules","readdirSync","__dirname","entry","startsWith","symlinkSync","zenstackPackages","pkg","writeFileSync","JSON","stringify","version","type","compilerOptions","module","target","moduleResolution","esModuleInterop","skipLibCheck","strict","include","TsSchemaGenerator","glob","execSync","fs","path","match","makePrelude","provider","dbUrl","match","with","exhaustive","generateTsSchema","schemaText","extraSourceFiles","workDir","createTestProject","zmodelPath","path","join","noPrelude","includes","fs","writeFileSync","pluginModelFiles","glob","sync","resolve","__dirname","generator","TsSchemaGenerator","generate","fileName","content","Object","entries","filePath","mkdirSync","dirname","recursive","execSync","cwd","stdio","module","schema","generateTsSchemaFromFile","readFileSync"]}
1
+ {"version":3,"sources":["../src/project.ts","../src/schema.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport tmp from 'tmp';\n\nexport function createTestProject() {\n const { name: workDir } = tmp.dirSync({ unsafeCleanup: true });\n\n fs.mkdirSync(path.join(workDir, 'node_modules'));\n\n // symlink all entries from \"node_modules\"\n const nodeModules = fs.readdirSync(path.join(__dirname, '../node_modules'));\n for (const entry of nodeModules) {\n if (entry.startsWith('@zenstackhq')) {\n continue;\n }\n fs.symlinkSync(\n path.join(__dirname, '../node_modules', entry),\n path.join(workDir, 'node_modules', entry),\n 'dir',\n );\n }\n\n // in addition, symlink zenstack packages\n const zenstackPackages = ['language', 'sdk', 'runtime', 'cli'];\n fs.mkdirSync(path.join(workDir, 'node_modules/@zenstackhq'));\n for (const pkg of zenstackPackages) {\n fs.symlinkSync(\n path.join(__dirname, `../../${pkg}`),\n path.join(workDir, `node_modules/@zenstackhq/${pkg}`),\n 'dir',\n );\n }\n\n fs.writeFileSync(\n path.join(workDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test',\n version: '1.0.0',\n type: 'module',\n },\n null,\n 4,\n ),\n );\n\n fs.writeFileSync(\n path.join(workDir, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n module: 'ESNext',\n target: 'ESNext',\n moduleResolution: 'Bundler',\n esModuleInterop: true,\n skipLibCheck: true,\n strict: true,\n },\n include: ['**/*.ts'],\n },\n null,\n 4,\n ),\n );\n\n return workDir;\n}\n","import { TsSchemaGenerator } from '@zenstackhq/sdk';\nimport type { SchemaDef } from '@zenstackhq/sdk/schema';\nimport { glob } from 'glob';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { match } from 'ts-pattern';\nimport { createTestProject } from './project';\n\nfunction makePrelude(provider: 'sqlite' | 'postgresql', dbUrl?: string) {\n return match(provider)\n .with('sqlite', () => {\n return `\ndatasource db {\n provider = 'sqlite'\n url = '${dbUrl ?? 'file:./test.db'}'\n}\n`;\n })\n .with('postgresql', () => {\n return `\ndatasource db {\n provider = 'postgresql'\n url = '${dbUrl ?? 'postgres://postgres:postgres@localhost:5432/db'}'\n}\n`;\n })\n .exhaustive();\n}\n\nexport async function generateTsSchema(\n schemaText: string,\n provider: 'sqlite' | 'postgresql' = 'sqlite',\n dbUrl?: string,\n extraSourceFiles?: Record<string, string>,\n) {\n const workDir = createTestProject();\n\n const zmodelPath = path.join(workDir, 'schema.zmodel');\n const noPrelude = schemaText.includes('datasource ');\n fs.writeFileSync(zmodelPath, `${noPrelude ? '' : makePrelude(provider, dbUrl)}\\n\\n${schemaText}`);\n\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(zmodelPath, pluginModelFiles, workDir);\n\n if (extraSourceFiles) {\n for (const [fileName, content] of Object.entries(extraSourceFiles)) {\n const filePath = path.resolve(workDir, `${fileName}.ts`);\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, content);\n }\n }\n\n // compile the generated TS schema\n return compileAndLoad(workDir);\n}\n\nasync function compileAndLoad(workDir: string) {\n execSync('npx tsc', {\n cwd: workDir,\n stdio: 'inherit',\n });\n\n // load the schema module\n const module = await import(path.join(workDir, 'schema.js'));\n return { workDir, schema: module.schema as SchemaDef };\n}\n\nexport function generateTsSchemaFromFile(filePath: string) {\n const schemaText = fs.readFileSync(filePath, 'utf8');\n return generateTsSchema(schemaText);\n}\n\nexport async function generateTsSchemaInPlace(schemaPath: string) {\n const workDir = path.dirname(schemaPath);\n const pluginModelFiles = glob.sync(path.resolve(__dirname, '../../runtime/src/plugins/**/plugin.zmodel'));\n\n const generator = new TsSchemaGenerator();\n await generator.generate(schemaPath, pluginModelFiles, workDir);\n return compileAndLoad(workDir);\n}\n"],"mappings":"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","names":["fs","path","tmp","createTestProject","name","workDir","tmp","dirSync","unsafeCleanup","fs","mkdirSync","path","join","nodeModules","readdirSync","__dirname","entry","startsWith","symlinkSync","zenstackPackages","pkg","writeFileSync","JSON","stringify","version","type","compilerOptions","module","target","moduleResolution","esModuleInterop","skipLibCheck","strict","include","TsSchemaGenerator","glob","execSync","fs","path","match","makePrelude","provider","dbUrl","match","with","exhaustive","generateTsSchema","schemaText","extraSourceFiles","workDir","createTestProject","zmodelPath","path","join","noPrelude","includes","fs","writeFileSync","pluginModelFiles","glob","sync","resolve","__dirname","generator","TsSchemaGenerator","generate","fileName","content","Object","entries","filePath","mkdirSync","dirname","recursive","compileAndLoad","execSync","cwd","stdio","module","schema","generateTsSchemaFromFile","readFileSync","generateTsSchemaInPlace","schemaPath"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/testtools",
3
- "version": "3.0.0-alpha.14",
3
+ "version": "3.0.0-alpha.15",
4
4
  "description": "ZenStack Test Tools",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -27,8 +27,8 @@
27
27
  "ts-pattern": "^5.7.1",
28
28
  "prisma": "^6.0.0",
29
29
  "typescript": "^5.0.0",
30
- "@zenstackhq/language": "3.0.0-alpha.14",
31
- "@zenstackhq/sdk": "3.0.0-alpha.14"
30
+ "@zenstackhq/language": "3.0.0-alpha.15",
31
+ "@zenstackhq/sdk": "3.0.0-alpha.15"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "better-sqlite3": "^11.8.1",
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/tmp": "^0.2.6",
39
- "@zenstackhq/eslint-config": "3.0.0-alpha.14",
40
- "@zenstackhq/typescript-config": "3.0.0-alpha.14"
39
+ "@zenstackhq/eslint-config": "3.0.0-alpha.15",
40
+ "@zenstackhq/typescript-config": "3.0.0-alpha.15"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "tsup-node",