Socket
Socket
Sign inDemoInstall

breeze-entity-generator

Package Overview
Dependencies
9
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.0 to 1.2.0

test/base-complex.ts

4

entity.template.txt
// tslint:disable:no-trailing-whitespace
// tslint:disable:member-ordering
{{#if baseClass}}
import { {{baseClass}} } from './{{baseClassModuleName}}';
import { {{baseClass}} } from '../{{baseClassModuleName}}';
{{/if}}

@@ -25,5 +25,5 @@ {{#imports}}import { {{path}} } from './{{moduleName}}';

{{#properties}}
{{name}}{{#if isNullable}}?{{/if}}: {{dataType}};
{{name}}{{#if isNullable}}?{{else}}!{{/if}}: {{dataType}};
{{/properties}}
}
{
"name": "breeze-entity-generator",
"version": "1.1.0",
"version": "1.2.0",
"description": "Generate TypeScript modules for entities from Breeze metadata",

@@ -28,3 +28,3 @@ "repository": {

"devDependencies": {
"breeze-client": ">=2.0.0"
"breeze-client": "^2.1.5"
},

@@ -31,0 +31,0 @@ "peerDependencies": {

@@ -19,2 +19,3 @@ # Breeze Entity Generator

baseClassName: 'BaseEntity',
baseComplexName: 'BaseComplex',
codePrefix: 'MyProject'

@@ -42,4 +43,6 @@ });

`baseClassName`: Optionally specifies a TypeScript base class for all the generated entity classes. The generated entity classes will directly or indirectly inherit from this class. The file must contain a single module and exported class
`baseClassName`: Optionally specifies a TypeScript base class for all the generated entity classes. The generated entity classes will directly or indirectly inherit from this class. The file must contain a single module and exported class.
`baseComplexName`: Optionally specifies a TypeScript base class for all the generated complex type (value type) classes. The generated classes will directly or indirectly inherit from this class. The file must contain a single module and exported class.
`camelCase`: Optionally generates the property names using camel case. This parameter has no effect if the input file contains Breeze native metadata. (See [NamingConvention](http://www.breezejs.com/sites/all/apidocs/classes/NamingConvention.html#property_camelCase))

@@ -105,1 +108,8 @@

`tsgen-core.js` (The typescript generator node script)
## Release Notes
1.0.0 - Initial release as an npm package
1.1.0 - Work with breeze-client .mjs modules (as well as older CJS bundles)
1.2.0 - Add support for Complex Type base class and not-null (!) assertions

@@ -15,3 +15,4 @@ const tsGen = require('../tsgen-core');

baseClassName: 'BaseEntity',
baseComplexName: 'BaseComplex',
codePrefix: 'Test'
});

@@ -1,1 +0,552 @@

{"structuralTypes":[{"shortName":"Customer","namespace":"NorthwindModel.Models","autoGeneratedKeyType":"Identity","defaultResourceName":"Customer","isComplexType":false,"dataProperties":[{"dataType":"Int32","isPartOfKey":true,"isNullable":false,"nameOnServer":"Id","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"String","isNullable":true,"maxLength":40,"nameOnServer":"City","validators":[{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":40,"nameOnServer":"Country","validators":[{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":false,"maxLength":40,"nameOnServer":"FirstName","validators":[{"name":"required"},{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":false,"maxLength":40,"nameOnServer":"LastName","validators":[{"name":"required"},{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":20,"nameOnServer":"Phone","validators":[{"maxLength":20,"name":"maxLength"}]}],"navigationProperties":[{"entityTypeName":"Order:#NorthwindModel.Models","isScalar":false,"associationName":"NorthwindModel.Models.Order_NorthwindModel.Models.Customer_Customer","invForeignKeyNamesOnServer":["CustomerId"],"nameOnServer":"Orders","validators":[]}]},{"shortName":"Order","namespace":"NorthwindModel.Models","autoGeneratedKeyType":"Identity","defaultResourceName":"Order","isComplexType":false,"dataProperties":[{"dataType":"Int32","isPartOfKey":true,"isNullable":false,"nameOnServer":"Id","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Int32","isNullable":false,"nameOnServer":"CustomerId","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"DateTime","isNullable":false,"nameOnServer":"OrderDate","validators":[{"name":"required"},{"name":"date"}]},{"dataType":"String","isNullable":true,"maxLength":10,"nameOnServer":"OrderNumber","validators":[{"maxLength":10,"name":"maxLength"}]},{"dataType":"Decimal","isNullable":true,"nameOnServer":"TotalAmount","validators":[{"name":"number"}]}],"navigationProperties":[{"entityTypeName":"Customer:#NorthwindModel.Models","isScalar":true,"associationName":"NorthwindModel.Models.Order_NorthwindModel.Models.Customer_Customer","foreignKeyNamesOnServer":["CustomerId"],"nameOnServer":"Customer","validators":[]},{"entityTypeName":"OrderItem:#NorthwindModel.Models","isScalar":false,"associationName":"NorthwindModel.Models.OrderItem_NorthwindModel.Models.Order_Order","invForeignKeyNamesOnServer":["OrderId"],"nameOnServer":"OrderItems","validators":[]}]},{"shortName":"OrderItem","namespace":"NorthwindModel.Models","autoGeneratedKeyType":"Identity","defaultResourceName":"OrderItem","isComplexType":false,"dataProperties":[{"dataType":"Int32","isPartOfKey":true,"isNullable":false,"nameOnServer":"Id","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Int32","isNullable":false,"nameOnServer":"OrderId","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Int32","isNullable":false,"nameOnServer":"ProductId","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Int32","isNullable":false,"nameOnServer":"Quantity","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Decimal","isNullable":false,"nameOnServer":"UnitPrice","validators":[{"name":"required"},{"name":"number"}]}],"navigationProperties":[{"entityTypeName":"Order:#NorthwindModel.Models","isScalar":true,"associationName":"NorthwindModel.Models.OrderItem_NorthwindModel.Models.Order_Order","foreignKeyNamesOnServer":["OrderId"],"nameOnServer":"Order","validators":[]},{"entityTypeName":"Product:#NorthwindModel.Models","isScalar":true,"associationName":"NorthwindModel.Models.OrderItem_NorthwindModel.Models.Product_Product","foreignKeyNamesOnServer":["ProductId"],"nameOnServer":"Product","validators":[]}]},{"shortName":"Product","namespace":"NorthwindModel.Models","autoGeneratedKeyType":"Identity","defaultResourceName":"Product","isComplexType":false,"dataProperties":[{"dataType":"Int32","isPartOfKey":true,"isNullable":false,"nameOnServer":"Id","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Boolean","isNullable":false,"nameOnServer":"IsDiscontinued","validators":[{"name":"required"},{"name":"bool"}]},{"dataType":"String","isNullable":true,"maxLength":30,"nameOnServer":"Package","validators":[{"maxLength":30,"name":"maxLength"}]},{"dataType":"String","isNullable":false,"maxLength":50,"nameOnServer":"ProductName","validators":[{"name":"required"},{"maxLength":50,"name":"maxLength"}]},{"dataType":"Int32","isNullable":false,"nameOnServer":"SupplierId","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"Decimal","isNullable":true,"nameOnServer":"UnitPrice","validators":[{"name":"number"}]}],"navigationProperties":[{"entityTypeName":"OrderItem:#NorthwindModel.Models","isScalar":false,"associationName":"NorthwindModel.Models.OrderItem_NorthwindModel.Models.Product_Product","invForeignKeyNamesOnServer":["ProductId"],"nameOnServer":"OrderItems","validators":[]},{"entityTypeName":"Supplier:#NorthwindModel.Models","isScalar":true,"associationName":"NorthwindModel.Models.Product_NorthwindModel.Models.Supplier_Supplier","foreignKeyNamesOnServer":["SupplierId"],"nameOnServer":"Supplier","validators":[]}]},{"shortName":"Supplier","namespace":"NorthwindModel.Models","autoGeneratedKeyType":"Identity","defaultResourceName":"Supplier","isComplexType":false,"dataProperties":[{"dataType":"Int32","isPartOfKey":true,"isNullable":false,"nameOnServer":"Id","validators":[{"name":"required"},{"name":"int32"}]},{"dataType":"String","isNullable":true,"maxLength":40,"nameOnServer":"City","validators":[{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":false,"maxLength":40,"nameOnServer":"CompanyName","validators":[{"name":"required"},{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":50,"nameOnServer":"ContactName","validators":[{"maxLength":50,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":40,"nameOnServer":"ContactTitle","validators":[{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":40,"nameOnServer":"Country","validators":[{"maxLength":40,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":30,"nameOnServer":"Fax","validators":[{"maxLength":30,"name":"maxLength"}]},{"dataType":"String","isNullable":true,"maxLength":30,"nameOnServer":"Phone","validators":[{"maxLength":30,"name":"maxLength"}]}],"navigationProperties":[{"entityTypeName":"Product:#NorthwindModel.Models","isScalar":false,"associationName":"NorthwindModel.Models.Product_NorthwindModel.Models.Supplier_Supplier","invForeignKeyNamesOnServer":["SupplierId"],"nameOnServer":"Products","validators":[]}]}]}
{
"structuralTypes": [
{
"shortName": "Location",
"namespace": "Models",
"isComplexType": true,
"dataProperties": [
{
"nameOnServer": "City",
"dataType": "String",
"maxLength": 60,
"validators": [
{
"maxLength": 60,
"name": "maxLength"
}
]
},
{
"nameOnServer": "Region",
"dataType": "String",
"maxLength": 15,
"validators": [
{
"maxLength": 15,
"name": "maxLength"
}
]
}
]
},
{
"shortName": "Customer",
"namespace": "NorthwindModel.Models",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "Customer",
"isComplexType": false,
"dataProperties": [
{
"dataType": "Int32",
"isPartOfKey": true,
"isNullable": false,
"nameOnServer": "Id",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 40,
"nameOnServer": "City",
"validators": [
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 40,
"nameOnServer": "Country",
"validators": [
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": false,
"maxLength": 40,
"nameOnServer": "FirstName",
"validators": [
{
"name": "required"
},
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": false,
"maxLength": 40,
"nameOnServer": "LastName",
"validators": [
{
"name": "required"
},
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 20,
"nameOnServer": "Phone",
"validators": [
{
"maxLength": 20,
"name": "maxLength"
}
]
}
],
"navigationProperties": [
{
"entityTypeName": "Order:#NorthwindModel.Models",
"isScalar": false,
"associationName": "NorthwindModel.Models.Order_NorthwindModel.Models.Customer_Customer",
"invForeignKeyNamesOnServer": [
"CustomerId"
],
"nameOnServer": "Orders",
"validators": []
}
]
},
{
"shortName": "Order",
"namespace": "NorthwindModel.Models",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "Order",
"isComplexType": false,
"dataProperties": [
{
"dataType": "Int32",
"isPartOfKey": true,
"isNullable": false,
"nameOnServer": "Id",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Int32",
"isNullable": false,
"nameOnServer": "CustomerId",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "DateTime",
"isNullable": false,
"nameOnServer": "OrderDate",
"validators": [
{
"name": "required"
},
{
"name": "date"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 10,
"nameOnServer": "OrderNumber",
"validators": [
{
"maxLength": 10,
"name": "maxLength"
}
]
},
{
"dataType": "Decimal",
"isNullable": true,
"nameOnServer": "TotalAmount",
"validators": [
{
"name": "number"
}
]
}
],
"navigationProperties": [
{
"entityTypeName": "Customer:#NorthwindModel.Models",
"isScalar": true,
"associationName": "NorthwindModel.Models.Order_NorthwindModel.Models.Customer_Customer",
"foreignKeyNamesOnServer": [
"CustomerId"
],
"nameOnServer": "Customer",
"validators": []
},
{
"entityTypeName": "OrderItem:#NorthwindModel.Models",
"isScalar": false,
"associationName": "NorthwindModel.Models.OrderItem_NorthwindModel.Models.Order_Order",
"invForeignKeyNamesOnServer": [
"OrderId"
],
"nameOnServer": "OrderItems",
"validators": []
}
]
},
{
"shortName": "OrderItem",
"namespace": "NorthwindModel.Models",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "OrderItem",
"isComplexType": false,
"dataProperties": [
{
"dataType": "Int32",
"isPartOfKey": true,
"isNullable": false,
"nameOnServer": "Id",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Int32",
"isNullable": false,
"nameOnServer": "OrderId",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Int32",
"isNullable": false,
"nameOnServer": "ProductId",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Int32",
"isNullable": false,
"nameOnServer": "Quantity",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Decimal",
"isNullable": false,
"nameOnServer": "UnitPrice",
"validators": [
{
"name": "required"
},
{
"name": "number"
}
]
}
],
"navigationProperties": [
{
"entityTypeName": "Order:#NorthwindModel.Models",
"isScalar": true,
"associationName": "NorthwindModel.Models.OrderItem_NorthwindModel.Models.Order_Order",
"foreignKeyNamesOnServer": [
"OrderId"
],
"nameOnServer": "Order",
"validators": []
},
{
"entityTypeName": "Product:#NorthwindModel.Models",
"isScalar": true,
"associationName": "NorthwindModel.Models.OrderItem_NorthwindModel.Models.Product_Product",
"foreignKeyNamesOnServer": [
"ProductId"
],
"nameOnServer": "Product",
"validators": []
}
]
},
{
"shortName": "Product",
"namespace": "NorthwindModel.Models",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "Product",
"isComplexType": false,
"dataProperties": [
{
"dataType": "Int32",
"isPartOfKey": true,
"isNullable": false,
"nameOnServer": "Id",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Boolean",
"isNullable": false,
"nameOnServer": "IsDiscontinued",
"validators": [
{
"name": "required"
},
{
"name": "bool"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 30,
"nameOnServer": "Package",
"validators": [
{
"maxLength": 30,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": false,
"maxLength": 50,
"nameOnServer": "ProductName",
"validators": [
{
"name": "required"
},
{
"maxLength": 50,
"name": "maxLength"
}
]
},
{
"dataType": "Int32",
"isNullable": false,
"nameOnServer": "SupplierId",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"dataType": "Decimal",
"isNullable": true,
"nameOnServer": "UnitPrice",
"validators": [
{
"name": "number"
}
]
}
],
"navigationProperties": [
{
"entityTypeName": "OrderItem:#NorthwindModel.Models",
"isScalar": false,
"associationName": "NorthwindModel.Models.OrderItem_NorthwindModel.Models.Product_Product",
"invForeignKeyNamesOnServer": [
"ProductId"
],
"nameOnServer": "OrderItems",
"validators": []
},
{
"entityTypeName": "Supplier:#NorthwindModel.Models",
"isScalar": true,
"associationName": "NorthwindModel.Models.Product_NorthwindModel.Models.Supplier_Supplier",
"foreignKeyNamesOnServer": [
"SupplierId"
],
"nameOnServer": "Supplier",
"validators": []
}
]
},
{
"shortName": "Supplier",
"namespace": "NorthwindModel.Models",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "Supplier",
"isComplexType": false,
"dataProperties": [
{
"dataType": "Int32",
"isPartOfKey": true,
"isNullable": false,
"nameOnServer": "Id",
"validators": [
{
"name": "required"
},
{
"name": "int32"
}
]
},
{
"nameOnServer": "Location",
"complexTypeName": "Location:#Models",
"isNullable": false,
"validators": [
{
"name": "required"
}
]
},
{
"dataType": "String",
"isNullable": false,
"maxLength": 40,
"nameOnServer": "CompanyName",
"validators": [
{
"name": "required"
},
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 50,
"nameOnServer": "ContactName",
"validators": [
{
"maxLength": 50,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 40,
"nameOnServer": "ContactTitle",
"validators": [
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 40,
"nameOnServer": "Country",
"validators": [
{
"maxLength": 40,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 30,
"nameOnServer": "Fax",
"validators": [
{
"maxLength": 30,
"name": "maxLength"
}
]
},
{
"dataType": "String",
"isNullable": true,
"maxLength": 30,
"nameOnServer": "Phone",
"validators": [
{
"maxLength": 30,
"name": "maxLength"
}
]
}
],
"navigationProperties": [
{
"entityTypeName": "Product:#NorthwindModel.Models",
"isScalar": false,
"associationName": "NorthwindModel.Models.Product_NorthwindModel.Models.Supplier_Supplier",
"invForeignKeyNamesOnServer": [
"SupplierId"
],
"nameOnServer": "Products",
"validators": []
}
]
}
]
}

@@ -18,2 +18,3 @@ var fs = require('fs');

* @param {string} config.baseClassName: Base class for TS entities
* @param {string} config.baseComplexName: Base class for TS complex types
* @param {boolean} config.camelCase: Whether to use camelCase for TS property names

@@ -41,2 +42,3 @@ * @param {boolean} config.kebabCaseFileNames: Whether to kebab-case-file-names.ts (otherwise PascalCaseFileNames.ts)

* @param {string} config.baseClassName: Base class for TS entities
* @param {string} config.baseComplexName: Base class for TS complex types
* @param {boolean} config.camelCase: Whether to use camelCase for TS property names

@@ -162,4 +164,8 @@ * @param {boolean} config.kebabCaseFileNames: Whether to kebab-case-file-names.ts (otherwise PascalCaseFileNames.ts)

if (baseClass) {
console.log('Injected base class: ' + baseClass);
console.log('Injected base entity class: ' + baseClass);
}
var baseComplex = config.baseComplexName;
if (baseComplex) {
console.log('Injected base complex type class: ' + baseComplex);
}

@@ -183,3 +189,3 @@ var allModules = metadataStore.modules.concat(metadataStore.enumModules || []);

entityType.baseClass = entityType.baseEntityType.shortName;
} else if (baseClass) {
} else if (baseClass && !entityType.isComplexType) {
entityType.baseClass = baseClass;

@@ -190,2 +196,4 @@ //entityType.references.push({

//});
} else if (baseComplex && entityType.isComplexType) {
entityType.baseClass = baseComplex;
}

@@ -192,0 +200,0 @@ entityType.baseClassModuleName = fileNameCase(entityType.baseClass, config);

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc