@krlwlfrt/tsg
Advanced tools
Comparing version 0.4.0 to 0.5.0
@@ -0,1 +1,10 @@ | ||
# [0.5.0](https://gitlab.com/krlwlfrt/tsg/compare/v0.4.0...v0.5.0) (2020-03-06) | ||
### Features | ||
* add enum type and make namespace optional ([47fce6c](https://gitlab.com/krlwlfrt/tsg/commit/47fce6c0a2f3395d39c8d7f5aa3b02fe7ffba9f5)) | ||
# [0.4.0](https://gitlab.com/krlwlfrt/tsg/compare/v0.3.1...v0.4.0) (2020-03-04) | ||
@@ -2,0 +11,0 @@ |
@@ -27,2 +27,5 @@ "use strict"; | ||
} | ||
if (typeof thing.namespace !== 'string' || thing.namespace.length === 0) { | ||
return thing.name; | ||
} | ||
return `${thing.namespace}_${thing.name}`; | ||
@@ -51,2 +54,2 @@ } | ||
exports.generatePropertyType = generatePropertyType; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXhhbXBsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsbUNBQXlFO0FBRXpFOzs7O0dBSUc7QUFDSCxTQUFnQixZQUFZLENBQUMsS0FBZ0M7SUFDM0QsSUFBSSxtQkFBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztLQUNuQjtJQUVELE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBTkQsb0NBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsUUFBa0I7SUFDckQsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtRQUNyQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDekM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3RDLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUMzQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtnQkFDNUYsSUFBSSxJQUFJLFNBQVMsQ0FBQzthQUNuQjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFoQkQsb0RBZ0JDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXhhbXBsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsbUNBQXlFO0FBRXpFOzs7O0dBSUc7QUFDSCxTQUFnQixZQUFZLENBQUMsS0FBZ0M7SUFDM0QsSUFBSSxtQkFBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdkUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ25CO0lBRUQsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFWRCxvQ0FVQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxRQUFrQjtJQUNyRCxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO1FBQ3JDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQzNDLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO2dCQUM1RixJQUFJLElBQUksU0FBUyxDQUFDO2FBQ25CO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWhCRCxvREFnQkMifQ== |
@@ -16,3 +16,3 @@ /** | ||
*/ | ||
namespace: string; | ||
namespace?: string; | ||
/** | ||
@@ -26,3 +26,3 @@ * Default value | ||
*/ | ||
export declare type Type = Entity | Property | Union; | ||
export declare type Type = Entity | Property | Union | Enum; | ||
/** | ||
@@ -81,2 +81,20 @@ * An entity | ||
/** | ||
* An enumeration of values | ||
*/ | ||
export interface Enum extends ThingWithNameAndNamespace { | ||
/** | ||
* List of values | ||
*/ | ||
items: { | ||
/** | ||
* Key of the item | ||
*/ | ||
key: string; | ||
/** | ||
* Value of the item | ||
*/ | ||
value: string | number | boolean; | ||
}[]; | ||
} | ||
/** | ||
* Check if a Type is an Entity | ||
@@ -94,2 +112,8 @@ * | ||
/** | ||
* Check if a Type is an Enum | ||
* | ||
* @param type Type to check | ||
*/ | ||
export declare function isEnum(type: Type): type is Enum; | ||
/** | ||
* Check if a ThingWithNameAndNamespace is an Attribute | ||
@@ -96,0 +120,0 @@ * |
@@ -42,2 +42,14 @@ "use strict"; | ||
/** | ||
* Check if a Type is an Enum | ||
* | ||
* @param type Type to check | ||
*/ | ||
function isEnum(type) { | ||
if (!('items' in type)) { | ||
return false; | ||
} | ||
return Array.isArray(type.items); | ||
} | ||
exports.isEnum = isEnum; | ||
/** | ||
* Check if a ThingWithNameAndNamespace is an Attribute | ||
@@ -165,2 +177,16 @@ * | ||
} | ||
else if (isEnum(type)) { | ||
output += `export enum ${nameGenerator(type)} { | ||
`; | ||
for (const item of type.items) { | ||
let value = item.value; | ||
if (typeof value === 'string') { | ||
value = `'${value}'`; | ||
} | ||
output += ` ${item.key} = ${value}, | ||
`; | ||
} | ||
output += `} | ||
`; | ||
} | ||
else { | ||
@@ -174,2 +200,2 @@ output += `export type ${nameGenerator(type)} = ${propertyTypeGenerator(type)}; | ||
exports.generateTypeScript = generateTypeScript; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7O0FBNEZIOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQUMsSUFBVTtJQUNqQyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQU5ELDRCQU1DO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxJQUFVO0lBQ2hDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBTkQsMEJBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQWdDO0lBQzFELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRTtRQUN2QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDO0FBQzVDLENBQUM7QUFORCxrQ0FNQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsS0FBYSxFQUFFLGNBQWMsR0FBRyxLQUFLO0lBQ3ZFLDRDQUE0QztJQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFFM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7O0FBK0dIOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQUMsSUFBVTtJQUNqQyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQU5ELDRCQU1DO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxJQUFVO0lBQ2hDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBTkQsMEJBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLElBQVU7SUFDL0IsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFORCx3QkFNQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsS0FBZ0M7SUFDMUQsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUM7QUFDNUMsQ0FBQztBQU5ELGtDQU1DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIs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 |
{ | ||
"name": "@krlwlfrt/tsg", | ||
"version": "0.4.0", | ||
"version": "0.5.0", | ||
"description": "TypeScript generator", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -27,2 +27,6 @@ /* | ||
if (typeof thing.namespace !== 'string' || thing.namespace.length === 0) { | ||
return thing.name; | ||
} | ||
return `${thing.namespace}_${thing.name}`; | ||
@@ -29,0 +33,0 @@ } |
@@ -33,3 +33,3 @@ /* | ||
*/ | ||
namespace: string; | ||
namespace?: string; | ||
@@ -45,3 +45,3 @@ /** | ||
*/ | ||
export type Type = Entity | Property | Union; | ||
export type Type = Entity | Property | Union | Enum; | ||
@@ -109,2 +109,21 @@ /** | ||
/** | ||
* An enumeration of values | ||
*/ | ||
export interface Enum extends ThingWithNameAndNamespace { | ||
/** | ||
* List of values | ||
*/ | ||
items: { | ||
/** | ||
* Key of the item | ||
*/ | ||
key: string; | ||
/** | ||
* Value of the item | ||
*/ | ||
value: string | number | boolean; | ||
}[]; | ||
} | ||
/** | ||
* Check if a Type is an Entity | ||
@@ -136,2 +155,15 @@ * | ||
/** | ||
* Check if a Type is an Enum | ||
* | ||
* @param type Type to check | ||
*/ | ||
export function isEnum(type: Type): type is Enum { | ||
if (!('items' in type)) { | ||
return false; | ||
} | ||
return Array.isArray(type.items); | ||
} | ||
/** | ||
* Check if a ThingWithNameAndNamespace is an Attribute | ||
@@ -284,2 +316,19 @@ * | ||
`; | ||
} else if (isEnum(type)) { | ||
output += `export enum ${nameGenerator(type)} { | ||
`; | ||
for (const item of type.items) { | ||
let value = item.value; | ||
if (typeof value === 'string') { | ||
value = `'${value}'`; | ||
} | ||
output += ` ${item.key} = ${value}, | ||
`; | ||
} | ||
output += `} | ||
`; | ||
} else { | ||
@@ -286,0 +335,0 @@ output += `export type ${nameGenerator(type)} = ${propertyTypeGenerator(type)}; |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
198548
5019