diff --git a/package.json b/package.json index ed2de173e..f75a41895 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "test-ci": "ZENSTACK_TEST=1 pnpm -r run test --silent --forceExit", "lint": "pnpm -r lint", "publish-all": "pnpm --filter \"./packages/**\" -r publish --access public", - "publish-preview": "pnpm --filter \"./packages/**\" -r publish --force --registry https://preview.registry.zenstack.dev/" + "publish-preview": "pnpm --filter \"./packages/**\" -r publish --force --registry https://preview.registry.zenstack.dev/", + "unpublish-preview": "pnpm --recursive --shell-mode exec -- npm unpublish -f --registry https://preview.registry.zenstack.dev/ \"\\$PNPM_PACKAGE_NAME\"" }, "keywords": [], "author": "", diff --git a/packages/language/package.json b/packages/language/package.json index f2d7780c0..b6410310c 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -10,8 +10,7 @@ "watch": "concurrently \"langium generate --watch\" \"tsc --watch\"", "lint": "eslint src --ext ts", "build": "pnpm lint && pnpm clean && pnpm generate && tsc && copyfiles -F ./README.md ./LICENSE ./package.json dist && pnpm pack dist --pack-destination '../../../.build'", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm build && pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist", diff --git a/packages/plugins/swr/package.json b/packages/plugins/swr/package.json index c50482ac3..97da62061 100644 --- a/packages/plugins/swr/package.json +++ b/packages/plugins/swr/package.json @@ -14,8 +14,7 @@ "watch": "tsc --watch", "lint": "eslint src --ext ts", "test": "ZENSTACK_TEST=1 jest", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist", diff --git a/packages/plugins/swr/src/generator.ts b/packages/plugins/swr/src/generator.ts index e6acbaf7c..f20af7dea 100644 --- a/packages/plugins/swr/src/generator.ts +++ b/packages/plugins/swr/src/generator.ts @@ -34,7 +34,12 @@ export async function generate(model: Model, options: PluginOptions, dmmf: DMMF. const models = getDataModels(model); - await generateModelMeta(project, models, path.join(outDir, '__model_meta.ts'), false, true); + await generateModelMeta(project, models, { + output: path.join(outDir, '__model_meta.ts'), + compile: false, + preserveTsFiles: true, + generateAttributes: false, + }); generateIndex(project, outDir, models); diff --git a/packages/plugins/tanstack-query/package.json b/packages/plugins/tanstack-query/package.json index 49055f690..e0bc7c8b4 100644 --- a/packages/plugins/tanstack-query/package.json +++ b/packages/plugins/tanstack-query/package.json @@ -70,8 +70,7 @@ "watch": "concurrently \"tsc --watch\" \"tsup-node --config ./tsup.config.ts --watch\" \"tsup-node --config ./tsup-v5.config.ts --watch\"", "lint": "eslint src --ext ts", "test": "ZENSTACK_TEST=1 jest", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist", diff --git a/packages/plugins/tanstack-query/src/generator.ts b/packages/plugins/tanstack-query/src/generator.ts index caba30432..e290824b8 100644 --- a/packages/plugins/tanstack-query/src/generator.ts +++ b/packages/plugins/tanstack-query/src/generator.ts @@ -45,7 +45,12 @@ export async function generate(model: Model, options: PluginOptions, dmmf: DMMF. throw new PluginError(options.name, `Unsupported version "${version}": use "v4" or "v5"`); } - await generateModelMeta(project, models, path.join(outDir, '__model_meta.ts'), false, true); + await generateModelMeta(project, models, { + output: path.join(outDir, '__model_meta.ts'), + compile: false, + preserveTsFiles: true, + generateAttributes: false, + }); generateIndex(project, outDir, models, target, version); diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index 89266418c..9caa2ab1c 100644 --- a/packages/plugins/trpc/package.json +++ b/packages/plugins/trpc/package.json @@ -14,8 +14,7 @@ "watch": "tsc --watch", "lint": "eslint src --ext ts", "test": "ZENSTACK_TEST=1 jest", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 3982e64c1..4b0c66c0b 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -12,8 +12,7 @@ "build": "pnpm lint && pnpm clean && tsc && tsup-node --config ./tsup-browser.config.ts && tsup-node --config ./tsup-cross.config.ts && copyfiles ./package.json ./README.md ../../LICENSE dist && copyfiles -u1 'res/**/*' dist && pnpm pack dist --pack-destination '../../../.build'", "watch": "concurrently \"tsc --watch\" \"tsup-node --config ./tsup-browser.config.ts --watch\" \"tsup-node --config ./tsup-cross.config.ts --watch\"", "lint": "eslint src --ext ts", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "main": "index.js", "types": "index.d.ts", diff --git a/packages/schema/package.json b/packages/schema/package.json index 33af77b43..d125dad49 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -75,7 +75,6 @@ "lint": "eslint src tests --ext ts", "test": "ZENSTACK_TEST=1 jest", "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --registry http://localhost:4873", "postinstall": "node bin/post-install.js" }, "dependencies": { diff --git a/packages/schema/src/plugins/model-meta/index.ts b/packages/schema/src/plugins/model-meta/index.ts index c143b56b1..8d7454674 100644 --- a/packages/schema/src/plugins/model-meta/index.ts +++ b/packages/schema/src/plugins/model-meta/index.ts @@ -31,7 +31,12 @@ const run: PluginFunction = async (model, options, _dmmf, globalOptions) => { shouldCompile = globalOptions.compile; } - await generateModelMeta(project, dataModels, outFile, shouldCompile, options.preserveTsFiles === true); + await generateModelMeta(project, dataModels, { + output: outFile, + compile: shouldCompile, + preserveTsFiles: options.preserveTsFiles === true, + generateAttributes: true, + }); }; export default run; diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 4d8b43aaf..8de2fd8e4 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -8,8 +8,7 @@ "lint": "eslint src --ext ts", "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && pnpm pack dist --pack-destination '../../../.build'", "watch": "tsc --watch", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm build && pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist", diff --git a/packages/sdk/src/model-meta-generator.ts b/packages/sdk/src/model-meta-generator.ts index a01aaddd4..a9e7e9780 100644 --- a/packages/sdk/src/model-meta-generator.ts +++ b/packages/sdk/src/model-meta-generator.ts @@ -29,31 +29,32 @@ import { saveProject, } from '.'; -export async function generate( - project: Project, - models: DataModel[], - output: string, - compile: boolean, - preserveTsFiles: boolean -) { - const sf = project.createSourceFile(output, undefined, { overwrite: true }); +export type ModelMetaGeneratorOptions = { + output: string; + compile: boolean; + preserveTsFiles: boolean; + generateAttributes: boolean; +}; + +export async function generate(project: Project, models: DataModel[], options: ModelMetaGeneratorOptions) { + const sf = project.createSourceFile(options.output, undefined, { overwrite: true }); sf.addStatements('/* eslint-disable */'); sf.addVariableStatement({ declarationKind: VariableDeclarationKind.Const, - declarations: [{ name: 'metadata', initializer: (writer) => generateModelMetadata(models, writer) }], + declarations: [{ name: 'metadata', initializer: (writer) => generateModelMetadata(models, writer, options) }], }); sf.addStatements('export default metadata;'); - if (!compile || preserveTsFiles) { + if (!options.compile || options.preserveTsFiles) { // save ts files await saveProject(project); } - if (compile) { + if (options.compile) { await emitProject(project); } } -function generateModelMetadata(dataModels: DataModel[], writer: CodeBlockWriter) { +function generateModelMetadata(dataModels: DataModel[], writer: CodeBlockWriter, options: ModelMetaGeneratorOptions) { writer.block(() => { writer.write('fields:'); writer.block(() => { @@ -75,7 +76,7 @@ function generateModelMetadata(dataModels: DataModel[], writer: CodeBlockWriter) isDataModel: ${isDataModel(f.type.reference?.ref)}, isArray: ${f.type.array}, isOptional: ${f.type.optional}, - attributes: ${JSON.stringify(getFieldAttributes(f))}, + attributes: ${options.generateAttributes ? JSON.stringify(getFieldAttributes(f)) : '[]'}, backLink: ${backlink ? "'" + backlink.name + "'" : 'undefined'}, isRelationOwner: ${isRelationOwner(f, backlink)}, isForeignKey: ${isForeignKeyField(f)}, diff --git a/packages/server/package.json b/packages/server/package.json index 5a4631899..16a6e9832 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -10,8 +10,7 @@ "watch": "tsc --watch", "lint": "eslint src --ext ts", "test": "ZENSTACK_TEST=1 jest", - "prepublishOnly": "pnpm build", - "publish-dev": "pnpm publish --tag dev" + "prepublishOnly": "pnpm build" }, "publishConfig": { "directory": "dist",