@memberjunction/codegen-lib 6.1.0-edge.3 → 6.1.0-edge.5
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/README.md +50 -21
- package/dist/Config/config.d.ts +290 -11
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +259 -9
- package/dist/Config/config.js.map +1 -1
- package/dist/Config/schema-output.d.ts +33 -0
- package/dist/Config/schema-output.d.ts.map +1 -0
- package/dist/Config/schema-output.js +52 -0
- package/dist/Config/schema-output.js.map +1 -0
- package/dist/Database/__tests__/exclude-schema-permissions.test.d.ts +2 -0
- package/dist/Database/__tests__/exclude-schema-permissions.test.d.ts.map +1 -0
- package/dist/Database/__tests__/exclude-schema-permissions.test.js +32 -0
- package/dist/Database/__tests__/exclude-schema-permissions.test.js.map +1 -0
- package/dist/Database/codeGenDatabaseProvider.d.ts +126 -2
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js +203 -0
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/exclude-tables.d.ts +26 -0
- package/dist/Database/exclude-tables.d.ts.map +1 -0
- package/dist/Database/exclude-tables.js +38 -0
- package/dist/Database/exclude-tables.js.map +1 -0
- package/dist/Database/heal-schema-params.d.ts +33 -0
- package/dist/Database/heal-schema-params.d.ts.map +1 -0
- package/dist/Database/heal-schema-params.js +51 -0
- package/dist/Database/heal-schema-params.js.map +1 -0
- package/dist/Database/manage-metadata.d.ts +59 -0
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +157 -61
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +25 -35
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +97 -51
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/postgresql/__tests__/SoftPrimaryKeyIndex.test.d.ts +2 -0
- package/dist/Database/providers/postgresql/__tests__/SoftPrimaryKeyIndex.test.d.ts.map +1 -0
- package/dist/Database/providers/postgresql/__tests__/SoftPrimaryKeyIndex.test.js +110 -0
- package/dist/Database/providers/postgresql/__tests__/SoftPrimaryKeyIndex.test.js.map +1 -0
- package/dist/Database/providers/postgresql/metadataSupportObjects.js +78 -10
- package/dist/Database/providers/postgresql/metadataSupportObjects.js.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +14 -0
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +38 -0
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js +17 -0
- package/dist/Database/providers/sqlserver/__tests__/SQLServerCodeGenProvider.test.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/SoftPrimaryKeyIndex.test.d.ts +2 -0
- package/dist/Database/providers/sqlserver/__tests__/SoftPrimaryKeyIndex.test.d.ts.map +1 -0
- package/dist/Database/providers/sqlserver/__tests__/SoftPrimaryKeyIndex.test.js +195 -0
- package/dist/Database/providers/sqlserver/__tests__/SoftPrimaryKeyIndex.test.js.map +1 -0
- package/dist/Database/schema-filters.d.ts +23 -0
- package/dist/Database/schema-filters.d.ts.map +1 -0
- package/dist/Database/schema-filters.js +42 -0
- package/dist/Database/schema-filters.js.map +1 -0
- package/dist/Database/schema-scope.d.ts.map +1 -1
- package/dist/Database/schema-scope.js +4 -0
- package/dist/Database/schema-scope.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +33 -0
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +147 -56
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/EntityNameScanner/EntityNameScanner.d.ts.map +1 -1
- package/dist/EntityNameScanner/EntityNameScanner.js +33 -2
- package/dist/EntityNameScanner/EntityNameScanner.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts +30 -4
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +175 -25
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/codegen-reporter.d.ts +3 -0
- package/dist/Misc/codegen-reporter.d.ts.map +1 -1
- package/dist/Misc/codegen-reporter.js +3 -0
- package/dist/Misc/codegen-reporter.js.map +1 -1
- package/dist/Misc/emit-stats.d.ts +28 -0
- package/dist/Misc/emit-stats.d.ts.map +1 -0
- package/dist/Misc/emit-stats.js +43 -0
- package/dist/Misc/emit-stats.js.map +1 -0
- package/dist/Misc/entity_subclasses_codegen.d.ts +42 -7
- package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +177 -52
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/file-write.d.ts +15 -0
- package/dist/Misc/file-write.d.ts.map +1 -0
- package/dist/Misc/file-write.js +33 -0
- package/dist/Misc/file-write.js.map +1 -0
- package/dist/Misc/graphql_server_codegen.d.ts +12 -2
- package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +61 -12
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/runCommand.d.ts +5 -0
- package/dist/Misc/runCommand.d.ts.map +1 -1
- package/dist/Misc/runCommand.js +43 -17
- package/dist/Misc/runCommand.js.map +1 -1
- package/dist/Misc/schema-emit.d.ts +123 -0
- package/dist/Misc/schema-emit.d.ts.map +1 -0
- package/dist/Misc/schema-emit.js +220 -0
- package/dist/Misc/schema-emit.js.map +1 -0
- package/dist/Misc/system_integrity.d.ts.map +1 -1
- package/dist/Misc/system_integrity.js +5 -0
- package/dist/Misc/system_integrity.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/runCodeGen.d.ts +20 -2
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +147 -21
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +29 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-reporter.js","sourceRoot":"","sources":["../../src/Misc/codegen-reporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen-reporter.js","sourceRoot":"","sources":["../../src/Misc/codegen-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AA2IzB;;;GAGG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAA8B;IACjE;QACE,KAAK,EAAE,CAAC;QAOV,2EAA2E;QAC3E,4BAA4B;QAC5B,2EAA2E;QAEnE,YAAO,GAAY,KAAK,CAAC;QACzB,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAW,EAAE,CAAC;QAC1B,YAAO,GAAgB,EAAE,CAAC;QAC1B,gBAAW,GAAgB,EAAE,CAAC;QAC9B,cAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;QAChD,cAAS,GAAmB,EAAE,CAAC;QAC/B,cAAS,GAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,aAAQ,GAA4B,EAAE,CAAC;QACvC,WAAM,GAAa,EAAE,CAAC;QACtB,mBAAc,GAAkB,IAAI,CAAC;IApB7C,CAAC;IAEM,MAAM,KAAK,QAAQ;QACxB,OAAO,KAAK,CAAC,WAAW,EAAmB,CAAC;IAC9C,CAAC;IAkBD,8CAA8C;IAC9C,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,sEAAsE;IAC/D,QAAQ;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,2EAA2E;IAC3E,sBAAsB;IACtB,2EAA2E;IAE3E;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,EAAoB;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3E,MAAM,IAAI,GAAc;YACtB,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW;YACjC,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAI,UAAkB,EAAE,SAAiB,EAAE,EAAoB;QACrF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,UAAU,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;YACzB,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;gBACvC,KAAK,CAAC,oBAAoB,IAAI,OAAO,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,IAQpB;QACC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC;QAC1D,MAAM,KAAK,GAAiB;YAC1B,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW;SACpC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC/C,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAClB,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC;YAC/B,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YACjC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,gFAAgF;IACzE,OAAO,CAAC,IAAY,EAAE,QAAgB,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,8EAA8E;IAChF,CAAC;IAED,wDAAwD;IACjD,aAAa,CAAC,MAAc,EAAE,QAAgB,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;IACnD,CAAC;IAED,gEAAgE;IACzD,IAAI,CAAC,GAAW,EAAE,KAAc;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,0EAA0E;IACnE,UAAU,CAAC,UAAkB,EAAE,IAAwC,EAAE,QAAiB,IAAI;QACnG,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,uEAAuE;IAChE,IAAI,CAAC,OAAe;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,2EAA2E;IAC3E,WAAW;IACX,2EAA2E;IAE3E;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,OAAgB;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc;YACxB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,YAAY;YAC5B,UAAU,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YAChD,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC,WAAW;YACxC,OAAO;YACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,KAAK,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC;QAEF,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;YACzD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kEAAkE;YAClE,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,8CAA+C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,qEAAqE;IAC9D,QAAQ;QACb,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,YAAY;YAC5B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW;YACtC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3F,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,SAAS;gBACjB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;aACvC;YACD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;SACxB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,YAAY,CAAC,MAAiB;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7E,MAAM,KAAK,GAAa;YACtB,EAAE;YACF,kBAAkB,MAAM,CAAC,SAAS,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,QAAQ,WAAW;YACpG,EAAE;YACF,+CAA+C;YAC/C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SACf,CAAC;QAEF,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,SAAS,CAAC;QAE5B,SAAS,YAAY,CAAC,MAAmB,EAAE,MAAc,EAAE,WAAmB;YAC5E,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3C,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC7D,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,CAAC,oBAAoB,GAAG,CAAC;oBAAE,MAAM;gBACtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,QAAQ,gBAAgB,SAAS,WAAW,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5I,CAAC;QAED,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,gBAAgB;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,mBAAmB;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,aAAa,CAAC,CAAC;QACpF,IAAI,CAAC,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxF,IAAI,CAAC,CAAC,YAAY;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,MAAmB;QAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2EAA2E;IAC3E,gEAAgE;IAChE,2EAA2E;IAE3E,qDAAqD;IAC9C,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAc;QACzC,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACjC,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,SAAS,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,iBAAiB,EAAG,MAAM,CAAC,QAAQ,CAAC,iBAA4B,IAAI,CAAC;oBACrE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;oBAChC,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,2EAA2E;IACpE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,WAAW,OAAO,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACnC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC1D,IAAI,EAAE;iBACN,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAChD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzC,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,CAAC,CAAC,CACH,CACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,YAAY;IACZ,2EAA2E;IAEnE,iBAAiB,CAAC,IAAY;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,IAAI;gBACJ,OAAO,EAAE,CAAC;gBACV,oBAAoB,EAAE,CAAC;gBACvB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;aAC3D,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa;QACnB,OAAO;YACL,iBAAiB,EAAE,CAAC;YACpB,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,CAAC;YACnB,mBAAmB,EAAE,CAAC;YACtB,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,uEAAuE;QACvE,gEAAgE;QAChE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAgB;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;YACjB,IAAI,CAAC,KAAK,KAAK;gBAAE,MAAM;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E,kDAAkD;AAClD,MAAM,UAAU,WAAW,CAAI,IAAY,EAAE,EAAoB;IAC/D,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB,CAAI,UAAkB,EAAE,SAAiB,EAAE,EAAoB;IAC9F,OAAO,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB,CAAC;IAC3D,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,KAAc;IACpD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process counters for one CodeGen file-emit pass.
|
|
3
|
+
*
|
|
4
|
+
* Kept as a tiny module with no config / reporter / EntityInfo imports so unit
|
|
5
|
+
* tests can drive it (and `writeFileIfChanged`) without booting the CodeGen
|
|
6
|
+
* graph. `runCodeGen` copies the snapshot onto `CodeGenReporter` at the end of
|
|
7
|
+
* the file-generation phase.
|
|
8
|
+
*/
|
|
9
|
+
export type EmitStatsSnapshot = {
|
|
10
|
+
filesWritten: number;
|
|
11
|
+
filesSkipped: number;
|
|
12
|
+
schemasEmitted: number;
|
|
13
|
+
schemasSkipped: number;
|
|
14
|
+
assembleMs: number;
|
|
15
|
+
};
|
|
16
|
+
export declare class EmitStats {
|
|
17
|
+
private static _filesWritten;
|
|
18
|
+
private static _filesSkipped;
|
|
19
|
+
private static _schemasEmitted;
|
|
20
|
+
private static _schemasSkipped;
|
|
21
|
+
private static _assembleMs;
|
|
22
|
+
static Reset(): void;
|
|
23
|
+
static RecordFileWrite(wrote: boolean): void;
|
|
24
|
+
static RecordSchemaEmit(emitted: boolean): void;
|
|
25
|
+
static AddAssembleMs(ms: number): void;
|
|
26
|
+
static Snapshot(): EmitStatsSnapshot;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=emit-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-stats.d.ts","sourceRoot":"","sources":["../../src/Misc/emit-stats.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAK;IACjC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAK;IACjC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;WAEjB,KAAK,IAAI,IAAI;WAQb,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;WAQrC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAQxC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;WAI/B,QAAQ,IAAI,iBAAiB;CAS5C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class EmitStats {
|
|
2
|
+
static { this._filesWritten = 0; }
|
|
3
|
+
static { this._filesSkipped = 0; }
|
|
4
|
+
static { this._schemasEmitted = 0; }
|
|
5
|
+
static { this._schemasSkipped = 0; }
|
|
6
|
+
static { this._assembleMs = 0; }
|
|
7
|
+
static Reset() {
|
|
8
|
+
this._filesWritten = 0;
|
|
9
|
+
this._filesSkipped = 0;
|
|
10
|
+
this._schemasEmitted = 0;
|
|
11
|
+
this._schemasSkipped = 0;
|
|
12
|
+
this._assembleMs = 0;
|
|
13
|
+
}
|
|
14
|
+
static RecordFileWrite(wrote) {
|
|
15
|
+
if (wrote) {
|
|
16
|
+
this._filesWritten += 1;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this._filesSkipped += 1;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static RecordSchemaEmit(emitted) {
|
|
23
|
+
if (emitted) {
|
|
24
|
+
this._schemasEmitted += 1;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this._schemasSkipped += 1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static AddAssembleMs(ms) {
|
|
31
|
+
this._assembleMs += ms;
|
|
32
|
+
}
|
|
33
|
+
static Snapshot() {
|
|
34
|
+
return {
|
|
35
|
+
filesWritten: this._filesWritten,
|
|
36
|
+
filesSkipped: this._filesSkipped,
|
|
37
|
+
schemasEmitted: this._schemasEmitted,
|
|
38
|
+
schemasSkipped: this._schemasSkipped,
|
|
39
|
+
assembleMs: this._assembleMs,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=emit-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-stats.js","sourceRoot":"","sources":["../../src/Misc/emit-stats.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,SAAS;aACL,kBAAa,GAAG,CAAC,CAAC;aAClB,kBAAa,GAAG,CAAC,CAAC;aAClB,oBAAe,GAAG,CAAC,CAAC;aACpB,oBAAe,GAAG,CAAC,CAAC;aACpB,gBAAW,GAAG,CAAC,CAAC;IAExB,MAAM,CAAC,KAAK;QACjB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAc;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAAgB;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAU;QACpC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { EntityFieldInfo, EntityInfo, EntityRelationshipInfo } from '@memberjunction/core';
|
|
2
2
|
import { ValidatorResult } from '../Database/manage-metadata.js';
|
|
3
|
+
import { type ConfigInfo } from '../Config/config.js';
|
|
3
4
|
import { CodeGenConnection } from '../Database/codeGenDatabaseProvider.js';
|
|
5
|
+
import { SchemaEmitOptions } from './schema-emit.js';
|
|
4
6
|
/**
|
|
5
7
|
* The parsed shape of `EntityRelationship.RelatedRecordCollection` — the policy half of a
|
|
6
8
|
* `DeclareRelatedRecords(...)` declaration.
|
|
@@ -12,6 +14,14 @@ import { CodeGenConnection } from '../Database/codeGenDatabaseProvider.js';
|
|
|
12
14
|
* `RelatedEntity` and `RelatedEntityJoinField` are deliberately absent — they are columns on the
|
|
13
15
|
* same `EntityRelationship` row, and duplicating them here would create two sources of truth.
|
|
14
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* A generated subclass that is referenced from this file (embed or related-record
|
|
19
|
+
* collection) but is not itself being emitted here, so it must be imported.
|
|
20
|
+
*/
|
|
21
|
+
export type PeerClassImport = {
|
|
22
|
+
className: string;
|
|
23
|
+
packageName: string;
|
|
24
|
+
};
|
|
15
25
|
export type RelatedRecordCollectionConfig = {
|
|
16
26
|
/** Generated property name on the entity subclass, e.g. `Lines`. Must be a valid TS identifier. */
|
|
17
27
|
Name: string;
|
|
@@ -70,10 +80,27 @@ export declare class EntitySubClassGeneratorBase {
|
|
|
70
80
|
* @param entities
|
|
71
81
|
* @param directory
|
|
72
82
|
* @param skipDBUpdate - when set to true, no updates are written back to the database - which happens after code generation when newly generated code from AI has been generated, but in the case where this flag is true, we don't ever write back to the DB because the assumption is we are only emitting code to the file that was already in the DB.
|
|
83
|
+
* @param options - per-schema emit / dirty-schema / parallelism. Defaults come from `configInfo.fileEmit`.
|
|
73
84
|
* @returns
|
|
74
85
|
*/
|
|
75
|
-
generateAllEntitySubClasses(pool: CodeGenConnection, entities: EntityInfo[], directory: string, skipDBUpdate: boolean): Promise<boolean>;
|
|
76
|
-
|
|
86
|
+
generateAllEntitySubClasses(pool: CodeGenConnection, entities: EntityInfo[], directory: string, skipDBUpdate: boolean, options?: SchemaEmitOptions): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Build the TypeScript source for one emit file (one schema, or the legacy monolith).
|
|
89
|
+
* Hoists and de-duplicates two kinds of import into the file header: the generated
|
|
90
|
+
* base class each entity extends, and the embedded-record peers an entity references.
|
|
91
|
+
* Emitting each once per file — instead of once per entity — prevents a TS2300
|
|
92
|
+
* duplicate-identifier error in a file holding 2+ external entities.
|
|
93
|
+
*
|
|
94
|
+
* Entities without primary keys are excluded because {@link generateEntitySubClass}
|
|
95
|
+
* emits nothing for them; hoisting their imports would leave an unused import that
|
|
96
|
+
* fails a downstream consumer's `noUnusedLocals`.
|
|
97
|
+
*/
|
|
98
|
+
assembleEntitySubclassFile(pool: CodeGenConnection, entities: EntityInfo[], skipDBUpdate: boolean, includeLoadModule: boolean): Promise<string>;
|
|
99
|
+
/** Delegates so both generators share one set of defaults; override to change them. */
|
|
100
|
+
protected resolveEmitOptions(options?: SchemaEmitOptions): Required<SchemaEmitOptions>;
|
|
101
|
+
/** Delegates so both generators write identically; override to change that. */
|
|
102
|
+
protected emitFile(filePath: string, content: string, useWriteIfChanged: boolean): void;
|
|
103
|
+
generateEntitySubClassFileHeader(includeLoadModule?: boolean): string;
|
|
77
104
|
/**
|
|
78
105
|
* Resolves an entity's generated base class and the import statement that class requires.
|
|
79
106
|
* Pure (no side effects) so BOTH {@link generateEntitySubClass} and the file assembler can call it —
|
|
@@ -158,12 +185,20 @@ export declare class EntitySubClassGeneratorBase {
|
|
|
158
185
|
*/
|
|
159
186
|
static GenerateHierarchyMethods(entity: EntityInfo, sClassName: string): string;
|
|
160
187
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
|
|
164
|
-
|
|
188
|
+
* One peer class that must be imported because it is referenced by an embed or
|
|
189
|
+
* related-record collection and is not being emitted in this file.
|
|
190
|
+
*/
|
|
191
|
+
static CollectPeerClassImports(entity: EntityInfo, localClassNames: Set<string>, config?: ConfigInfo): PeerClassImport[];
|
|
192
|
+
/**
|
|
193
|
+
* Groups peer imports into one `import { A, B } from 'pkg'` line per npm package.
|
|
194
|
+
* `@memberjunction/core-entities` is emitted first; remaining packages are alphabetical.
|
|
195
|
+
*/
|
|
196
|
+
static FormatPeerImportStatements(imports: PeerClassImport[]): string[];
|
|
197
|
+
/**
|
|
198
|
+
* @deprecated Use {@link CollectPeerClassImports} + {@link FormatPeerImportStatements}.
|
|
199
|
+
* Kept so existing call sites still compile; includes related-record collections as well as embeds.
|
|
165
200
|
*/
|
|
166
|
-
static CollectEmbeddedImports(entity: EntityInfo, localClassNames: Set<string
|
|
201
|
+
static CollectEmbeddedImports(entity: EntityInfo, localClassNames: Set<string>, config?: ConfigInfo): string[];
|
|
167
202
|
/**
|
|
168
203
|
* Parses and validates one field's `EmbeddedRecord` JSON.
|
|
169
204
|
* Invalid metadata is skipped with a logged error rather than throwing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity_subclasses_codegen.d.ts","sourceRoot":"","sources":["../../src/Misc/entity_subclasses_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,eAAe,EAA4B,UAAU,EAAE,sBAAsB,EAAuC,MAAM,sBAAsB,CAAC;AAO/L,OAAO,EAAE,eAAe,EAAsB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"entity_subclasses_codegen.d.ts","sourceRoot":"","sources":["../../src/Misc/entity_subclasses_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,eAAe,EAA4B,UAAU,EAAE,sBAAsB,EAAuC,MAAM,sBAAsB,CAAC;AAO/L,OAAO,EAAE,eAAe,EAAsB,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAA0D,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGxE,OAAO,EACL,iBAAiB,EASlB,MAAM,eAAe,CAAC;AA0CvB;;;;;;;;;;GAUG;AACH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mGAAmG;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,0FAA0F;IAC1F,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,qBAAa,2BAA2B;IACtC;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAS1D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,CAAC,0BAA0B,CACvC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAgDvC;;;;;;;;OAQG;IACU,2BAA2B,CACtC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,UAAU,EAAE,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,OAAO,CAAC;IA2DnB;;;;;;;;;;OAUG;IACU,0BAA0B,CACrC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,UAAU,EAAE,EACtB,YAAY,EAAE,OAAO,EACrB,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,MAAM,CAAC;IA6BlB,uFAAuF;IACvF,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAItF,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI;IAIhF,gCAAgC,CAAC,iBAAiB,GAAE,OAAc,GAAG,MAAM;IAelF;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IAWvF,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAE,OAAe,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA2SpK;;;;;;;;;;;;;;;;;;;;OAoBG;WACW,gCAAgC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAoC1E;;;;;;;;;;OAUG;WACW,kCAAkC,CAC9C,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,sBAAsB,GACnC,6BAA6B,GAAG,IAAI;IAwGvC;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,6BAA6B,CAC5C,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,sBAAsB,EACpC,MAAM,EAAE,6BAA6B,GACpC,MAAM;IA+FT;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI1D;;;;;;;;;OASG;WACW,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAsCjE;;;;;;;OAOG;WACW,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAiEtF;;;OAGG;WACW,uBAAuB,CACnC,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAC5B,MAAM,CAAC,EAAE,UAAU,GAClB,eAAe,EAAE;IA6EpB;;;OAGG;WACW,0BAA0B,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE;IAwB9E;;;OAGG;WACW,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE;IAMrH;;;OAGG;WACW,yBAAyB,CACrC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,eAAe,GACrB,oBAAoB,GAAG,IAAI;IAmC9B;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,oBAAoB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,oBAAoB,GAC3B,MAAM;IAuCT;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM;IAaxE,8BAA8B,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoEhI,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,EAAE,CAAA;KAAE;IAyEpG,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAkExD;;;;;;OAMG;IACI,sBAAsB,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;CA0BzF"}
|
|
@@ -6,8 +6,10 @@ import ts from 'typescript';
|
|
|
6
6
|
import { makeDir, sortBySequenceAndCreatedAt } from '../Misc/util.js';
|
|
7
7
|
import { logError, logStatus, logWarning } from './status_logging.js';
|
|
8
8
|
import { ManageMetadataBase } from '../Database/manage-metadata.js';
|
|
9
|
-
import { mj_core_schema,
|
|
9
|
+
import { configInfo, mj_core_schema, resolveEntityImportPackage } from '../Config/config.js';
|
|
10
10
|
import { SQLLogging } from './sql_logging.js';
|
|
11
|
+
import { EmitStats } from './emit-stats.js';
|
|
12
|
+
import { buildSchemaBarrel, groupEntitiesBySchema, mapLimit, emitSchemaFile, pruneOrphanedSchemaFiles, resolveSchemaEmitOptions, sanitizeSchemaFileName, schemasToEmit, } from './schema-emit.js';
|
|
11
13
|
/**
|
|
12
14
|
* Dynamically collects all own property names from BaseEntity's prototype chain
|
|
13
15
|
* (excluding Object.prototype). Any entity field whose CodeName matches one of
|
|
@@ -103,49 +105,111 @@ export class EntitySubClassGeneratorBase {
|
|
|
103
105
|
* @param entities
|
|
104
106
|
* @param directory
|
|
105
107
|
* @param skipDBUpdate - when set to true, no updates are written back to the database - which happens after code generation when newly generated code from AI has been generated, but in the case where this flag is true, we don't ever write back to the DB because the assumption is we are only emitting code to the file that was already in the DB.
|
|
108
|
+
* @param options - per-schema emit / dirty-schema / parallelism. Defaults come from `configInfo.fileEmit`.
|
|
106
109
|
* @returns
|
|
107
110
|
*/
|
|
108
|
-
async generateAllEntitySubClasses(pool, entities, directory, skipDBUpdate) {
|
|
111
|
+
async generateAllEntitySubClasses(pool, entities, directory, skipDBUpdate, options) {
|
|
109
112
|
try {
|
|
110
|
-
|
|
111
|
-
const zodContent = entities.map((entity) => this.GenerateSchemaAndType(entity)).join('');
|
|
112
|
-
let sContent = "";
|
|
113
|
-
for (const e of entities) {
|
|
114
|
-
sContent += await this.generateEntitySubClass(pool, e, false, skipDBUpdate);
|
|
115
|
-
}
|
|
116
|
-
// Hoist the base-class imports (e.g. ReadOnlyExternalBaseEntity for external entities, or custom
|
|
117
|
-
// subclass imports) into the file header, de-duplicated. Emitting each once — instead of once per
|
|
118
|
-
// entity — prevents a TS2300 duplicate-identifier error in files with 2+ external entities.
|
|
119
|
-
// Only consider entities that actually emit a class: generateEntitySubClass skips PK-less entities
|
|
120
|
-
// (returns ''), so hoisting their import would leave a dangling/unused import (a build error under
|
|
121
|
-
// a downstream consumer's noUnusedLocals). Match that skip condition here.
|
|
122
|
-
const localClassNames = new Set(entities.filter((e) => e.PrimaryKeys.length > 0).map((e) => `${e.ClassName}Entity`));
|
|
123
|
-
const subclassImports = [...new Set(entities
|
|
124
|
-
.filter((e) => e.PrimaryKeys.length > 0)
|
|
125
|
-
.flatMap((e) => [
|
|
126
|
-
this.resolveEntityBaseClass(e).importStatement,
|
|
127
|
-
...EntitySubClassGeneratorBase.CollectEmbeddedImports(e, localClassNames),
|
|
128
|
-
])
|
|
129
|
-
.filter((s) => s.length > 0))].join('');
|
|
130
|
-
const allContent = `${this.generateEntitySubClassFileHeader()} \n ${subclassImports}${zodContent} \n ${sContent}`;
|
|
113
|
+
const emit = this.resolveEmitOptions(options);
|
|
131
114
|
makeDir(directory);
|
|
132
|
-
|
|
115
|
+
if (!emit.perSchema) {
|
|
116
|
+
const allContent = await this.assembleEntitySubclassFile(pool, entities, skipDBUpdate, true);
|
|
117
|
+
this.emitFile(path.join(directory, 'entity_subclasses.ts'), allContent, emit.writeIfChanged);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
const grouped = groupEntitiesBySchema(entities);
|
|
121
|
+
const schemas = [...grouped.keys()].sort((a, b) => a.localeCompare(b));
|
|
122
|
+
const schemasDir = path.join(directory, 'entities');
|
|
123
|
+
makeDir(schemasDir);
|
|
124
|
+
const toEmit = schemasToEmit(schemas, emit.dirtySchemas, (schemaName) => fs.existsSync(path.join(schemasDir, `${sanitizeSchemaFileName(schemaName)}.ts`)));
|
|
125
|
+
const emitSet = new Set(toEmit);
|
|
126
|
+
for (const schemaName of schemas) {
|
|
127
|
+
EmitStats.RecordSchemaEmit(emitSet.has(schemaName));
|
|
128
|
+
}
|
|
129
|
+
const concurrency = emit.parallel ? emit.concurrency : 1;
|
|
130
|
+
const assembleStarted = Date.now();
|
|
131
|
+
await mapLimit(toEmit, concurrency, async (schemaName) => {
|
|
132
|
+
const schemaEntities = grouped.get(schemaName) ?? [];
|
|
133
|
+
const content = await this.assembleEntitySubclassFile(pool, schemaEntities, skipDBUpdate, false);
|
|
134
|
+
const filePath = path.join(schemasDir, `${sanitizeSchemaFileName(schemaName)}.ts`);
|
|
135
|
+
this.emitFile(filePath, content, emit.writeIfChanged);
|
|
136
|
+
});
|
|
137
|
+
EmitStats.AddAssembleMs(Date.now() - assembleStarted);
|
|
138
|
+
// Before the barrel, so the directory and the barrel always agree.
|
|
139
|
+
const pruned = pruneOrphanedSchemaFiles(schemasDir, schemas);
|
|
140
|
+
if (pruned.length > 0) {
|
|
141
|
+
logStatus(` Removed ${pruned.length} orphaned entity schema file(s): ${pruned.join(', ')}`);
|
|
142
|
+
}
|
|
143
|
+
const barrel = buildSchemaBarrel(schemas, 'entities', `export const loadModule = () => {
|
|
144
|
+
// no-op — importing this barrel loads every per-schema module via the re-exports below
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
`);
|
|
148
|
+
this.emitFile(path.join(directory, 'entity_subclasses.ts'), barrel, emit.writeIfChanged);
|
|
133
149
|
return true;
|
|
134
150
|
}
|
|
135
151
|
catch (err) {
|
|
152
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
153
|
+
logError(message);
|
|
136
154
|
console.error(err);
|
|
137
155
|
return false;
|
|
138
156
|
}
|
|
139
157
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
import
|
|
143
|
-
|
|
144
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Build the TypeScript source for one emit file (one schema, or the legacy monolith).
|
|
160
|
+
* Hoists and de-duplicates two kinds of import into the file header: the generated
|
|
161
|
+
* base class each entity extends, and the embedded-record peers an entity references.
|
|
162
|
+
* Emitting each once per file — instead of once per entity — prevents a TS2300
|
|
163
|
+
* duplicate-identifier error in a file holding 2+ external entities.
|
|
164
|
+
*
|
|
165
|
+
* Entities without primary keys are excluded because {@link generateEntitySubClass}
|
|
166
|
+
* emits nothing for them; hoisting their imports would leave an unused import that
|
|
167
|
+
* fails a downstream consumer's `noUnusedLocals`.
|
|
168
|
+
*/
|
|
169
|
+
async assembleEntitySubclassFile(pool, entities, skipDBUpdate, includeLoadModule) {
|
|
170
|
+
const zodContent = entities.map((entity) => this.GenerateSchemaAndType(entity)).join('');
|
|
171
|
+
let sContent = '';
|
|
172
|
+
for (const e of entities) {
|
|
173
|
+
sContent += await this.generateEntitySubClass(pool, e, false, skipDBUpdate);
|
|
174
|
+
}
|
|
175
|
+
// Only entities that actually emit a class: generateEntitySubClass skips PK-less entities
|
|
176
|
+
// (returns ''), so hoisting their imports would leave a dangling/unused import that fails a
|
|
177
|
+
// downstream consumer's noUnusedLocals.
|
|
178
|
+
const entitiesWithPK = entities.filter((e) => e.PrimaryKeys.length > 0);
|
|
179
|
+
const localClassNames = new Set(entitiesWithPK.map((e) => `${e.ClassName}Entity`));
|
|
180
|
+
// De-duplicated so a file holding 2+ external entities does not emit
|
|
181
|
+
// `import { ReadOnlyExternalBaseEntity }` twice (TS2300).
|
|
182
|
+
const baseClassImports = [...new Set(entitiesWithPK
|
|
183
|
+
.map((e) => this.resolveEntityBaseClass(e).importStatement)
|
|
184
|
+
.filter((s) => s.length > 0))].join('');
|
|
185
|
+
// Collect every embed + related-record-collection peer across the file, then emit
|
|
186
|
+
// one grouped `import { A, B } from 'pkg'` per npm package. Per-entity import
|
|
187
|
+
// lines would duplicate packages (Address on two owners → two import lines).
|
|
188
|
+
const peerImports = entitiesWithPK.flatMap((e) => EntitySubClassGeneratorBase.CollectPeerClassImports(e, localClassNames));
|
|
189
|
+
const peerImportStatements = EntitySubClassGeneratorBase.FormatPeerImportStatements(peerImports).join('');
|
|
190
|
+
const subclassImports = `${baseClassImports}${peerImportStatements}`;
|
|
191
|
+
return `${this.generateEntitySubClassFileHeader(includeLoadModule)} \n ${subclassImports}${zodContent} \n ${sContent}`;
|
|
192
|
+
}
|
|
193
|
+
/** Delegates so both generators share one set of defaults; override to change them. */
|
|
194
|
+
resolveEmitOptions(options) {
|
|
195
|
+
return resolveSchemaEmitOptions(options, configInfo?.fileEmit);
|
|
196
|
+
}
|
|
197
|
+
/** Delegates so both generators write identically; override to change that. */
|
|
198
|
+
emitFile(filePath, content, useWriteIfChanged) {
|
|
199
|
+
emitSchemaFile(filePath, content, useWriteIfChanged);
|
|
200
|
+
}
|
|
201
|
+
generateEntitySubClassFileHeader(includeLoadModule = true) {
|
|
202
|
+
const loadModule = includeLoadModule
|
|
203
|
+
? `
|
|
145
204
|
export const loadModule = () => {
|
|
146
205
|
// no-op, only used to ensure this file is a valid module and to allow easy loading
|
|
147
206
|
}
|
|
148
|
-
|
|
207
|
+
`
|
|
208
|
+
: '';
|
|
209
|
+
return `import { BaseEntity, EntitySaveOptions, EntityDeleteOptions, CompositeKey, ValidationResult, ValidationErrorInfo, ValidationErrorType, Metadata, ProviderType, DatabaseProviderBase, RunView } from "@memberjunction/core";
|
|
210
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
211
|
+
import { z } from "zod";
|
|
212
|
+
${loadModule}
|
|
149
213
|
`;
|
|
150
214
|
}
|
|
151
215
|
/**
|
|
@@ -778,36 +842,97 @@ ${fields}
|
|
|
778
842
|
return methods.length > 0 ? '\n' + methods.join('\n') : '';
|
|
779
843
|
}
|
|
780
844
|
/**
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
* @param entity - The owning entity.
|
|
784
|
-
* @param localClassNames - Class names already emitted in this file.
|
|
845
|
+
* One peer class that must be imported because it is referenced by an embed or
|
|
846
|
+
* related-record collection and is not being emitted in this file.
|
|
785
847
|
*/
|
|
786
|
-
static
|
|
787
|
-
const
|
|
788
|
-
if (
|
|
789
|
-
|
|
848
|
+
static CollectPeerClassImports(entity, localClassNames, config) {
|
|
849
|
+
const owningSchema = (entity.SchemaName ?? '').trim();
|
|
850
|
+
if (!owningSchema) {
|
|
851
|
+
throw new Error(`[CodeGen] entity import: entity '${entity.Name}' has no SchemaName; cannot resolve peer import packages.`);
|
|
790
852
|
}
|
|
791
853
|
const md = new Metadata(); // global-provider-ok: codegen runs offline against a single provider
|
|
792
|
-
const
|
|
793
|
-
const
|
|
794
|
-
|
|
795
|
-
|
|
854
|
+
const byClass = new Map();
|
|
855
|
+
const addPeer = (className, relatedSchema, context) => {
|
|
856
|
+
if (!className || className === 'BaseEntity') {
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
859
|
+
if (localClassNames.has(className)) {
|
|
860
|
+
return;
|
|
861
|
+
}
|
|
862
|
+
const schema = (relatedSchema ?? '').trim();
|
|
863
|
+
if (!schema) {
|
|
864
|
+
throw new Error(`[CodeGen] entity import: ${context} refers to class '${className}' but the related entity has no SchemaName. ` +
|
|
865
|
+
`CodeGen cannot pick an npm package to import it from.`);
|
|
866
|
+
}
|
|
867
|
+
const packageName = resolveEntityImportPackage(schema, owningSchema, config);
|
|
868
|
+
const existing = byClass.get(className);
|
|
869
|
+
if (existing && existing !== packageName) {
|
|
870
|
+
throw new Error(`[CodeGen] entity import: class '${className}' resolved to both '${existing}' and '${packageName}' on entity '${entity.Name}'.`);
|
|
871
|
+
}
|
|
872
|
+
byClass.set(className, packageName);
|
|
873
|
+
};
|
|
874
|
+
for (const field of (entity.Fields ?? []).filter((f) => f.EmbeddedRecord && String(f.EmbeddedRecord).trim().length > 0 && f.RelatedEntityID)) {
|
|
875
|
+
const related = md.EntityByID?.(field.RelatedEntityID);
|
|
796
876
|
if (!related) {
|
|
797
877
|
continue;
|
|
798
878
|
}
|
|
799
|
-
|
|
800
|
-
|
|
879
|
+
addPeer(`${related.ClassName}Entity`, related.SchemaName, `${entity.Name}.${field.Name} (embedded record)`);
|
|
880
|
+
}
|
|
881
|
+
for (const relationship of (entity.RelatedEntities ?? []).filter((r) => r.RelatedRecordCollection && r.RelatedRecordCollection.trim().length > 0)) {
|
|
882
|
+
const parsed = EntitySubClassGeneratorBase.ParseRelatedRecordCollectionConfig(entity, relationship);
|
|
883
|
+
if (!parsed) {
|
|
884
|
+
continue;
|
|
885
|
+
}
|
|
886
|
+
const relatedBase = relationship.RelatedEntityClassName?.trim();
|
|
887
|
+
if (!relatedBase) {
|
|
801
888
|
continue;
|
|
802
889
|
}
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
890
|
+
let related;
|
|
891
|
+
if (relationship.RelatedEntityID && typeof md.EntityByID === 'function') {
|
|
892
|
+
related = md.EntityByID(relationship.RelatedEntityID);
|
|
893
|
+
}
|
|
894
|
+
if (!related && relationship.RelatedEntity && typeof md.EntityByName === 'function') {
|
|
895
|
+
related = md.EntityByName(relationship.RelatedEntity);
|
|
896
|
+
}
|
|
897
|
+
addPeer(`${relatedBase}Entity`, related?.SchemaName, `${entity.Name} → ${relationship.RelatedEntity} (related-record collection)`);
|
|
898
|
+
}
|
|
899
|
+
return [...byClass.entries()].map(([className, packageName]) => ({ className, packageName }));
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Groups peer imports into one `import { A, B } from 'pkg'` line per npm package.
|
|
903
|
+
* `@memberjunction/core-entities` is emitted first; remaining packages are alphabetical.
|
|
904
|
+
*/
|
|
905
|
+
static FormatPeerImportStatements(imports) {
|
|
906
|
+
const byPackage = new Map();
|
|
907
|
+
for (const item of imports) {
|
|
908
|
+
if (!item.className || !item.packageName) {
|
|
909
|
+
continue;
|
|
910
|
+
}
|
|
911
|
+
let set = byPackage.get(item.packageName);
|
|
912
|
+
if (!set) {
|
|
913
|
+
set = new Set();
|
|
914
|
+
byPackage.set(item.packageName, set);
|
|
915
|
+
}
|
|
916
|
+
set.add(item.className);
|
|
917
|
+
}
|
|
918
|
+
const packages = [...byPackage.keys()].sort((a, b) => {
|
|
919
|
+
if (a === '@memberjunction/core-entities')
|
|
920
|
+
return -1;
|
|
921
|
+
if (b === '@memberjunction/core-entities')
|
|
922
|
+
return 1;
|
|
923
|
+
return a.localeCompare(b);
|
|
924
|
+
});
|
|
925
|
+
return packages.map((pkg) => {
|
|
926
|
+
const names = [...byPackage.get(pkg)].sort((a, b) => a.localeCompare(b));
|
|
927
|
+
return `import { ${names.join(', ')} } from '${pkg}';\n`;
|
|
928
|
+
});
|
|
929
|
+
}
|
|
930
|
+
/**
|
|
931
|
+
* @deprecated Use {@link CollectPeerClassImports} + {@link FormatPeerImportStatements}.
|
|
932
|
+
* Kept so existing call sites still compile; includes related-record collections as well as embeds.
|
|
933
|
+
*/
|
|
934
|
+
static CollectEmbeddedImports(entity, localClassNames, config) {
|
|
935
|
+
return EntitySubClassGeneratorBase.FormatPeerImportStatements(EntitySubClassGeneratorBase.CollectPeerClassImports(entity, localClassNames, config));
|
|
811
936
|
}
|
|
812
937
|
/**
|
|
813
938
|
* Parses and validates one field's `EmbeddedRecord` JSON.
|