ts-transformer-keys
Advanced tools
Comparing version 0.4.3 to 0.4.4
{ | ||
"name": "ts-transformer-keys", | ||
"version": "0.4.3", | ||
"version": "0.4.4", | ||
"description": "A TypeScript custom transformer which enables to obtain keys of given type.", | ||
@@ -30,6 +30,6 @@ "scripts": { | ||
"devDependencies": { | ||
"@types/mocha": "^7.0.2", | ||
"@types/node": "^14.0.13", | ||
"mocha": "^8.2.1", | ||
"typescript": "^3.9.5" | ||
"@types/mocha": "^10.0.1", | ||
"@types/node": "^18.11.9", | ||
"mocha": "^10.1.0", | ||
"typescript": "^4.9.3" | ||
}, | ||
@@ -36,0 +36,0 @@ "peerDependencies": { |
@@ -93,3 +93,3 @@ # ts-transformer-keys | ||
```json | ||
```jsonc | ||
// tsconfig.json | ||
@@ -113,7 +113,10 @@ { | ||
```javascript | ||
// ts-jest-keys-trasnformer.js | ||
// ts-jest-keys-transformer.js | ||
const keysTransformer = require('ts-transformer-keys/transformer').default; | ||
const name = 'my-key-transformer'; | ||
const version = 1; | ||
const factory = (cs) => (ctx) => keysTransformer(cs.tsCompiler.program)(ctx); | ||
const factory = (cs) => (ctx) => keysTransformer(cs.program)(ctx); | ||
// For ts-jest 26 use: | ||
// const factory = (cs) => (ctx) => keysTransformer(cs.tsCompiler.program)(ctx); | ||
module.exports = { name, version, factory }; | ||
@@ -120,0 +123,0 @@ ``` |
@@ -8,2 +8,4 @@ "use strict"; | ||
var path_1 = __importDefault(require("path")); | ||
var createArrayExpression = typescript_1.default.factory ? typescript_1.default.factory.createArrayLiteralExpression : typescript_1.default.createArrayLiteral; | ||
var createStringLiteral = typescript_1.default.factory ? typescript_1.default.factory.createStringLiteral : typescript_1.default.createLiteral; | ||
function transformer(program) { | ||
@@ -25,7 +27,7 @@ return function (context) { return function (file) { return visitNodeAndChildren(file, program, context); }; }; | ||
if (!node.typeArguments) { | ||
return typescript_1.default.createArrayLiteral([]); | ||
return createArrayExpression([]); | ||
} | ||
var type = typeChecker.getTypeFromTypeNode(node.typeArguments[0]); | ||
var properties = typeChecker.getPropertiesOfType(type); | ||
return typescript_1.default.createArrayLiteral(properties.map(function (property) { return typescript_1.default.createLiteral(property.name); })); | ||
return createArrayExpression(properties.map(function (property) { return createStringLiteral(property.name); })); | ||
} | ||
@@ -32,0 +34,0 @@ var indexJs = path_1.default.join(__dirname, 'index.js'); |
import ts from 'typescript'; | ||
import path from 'path'; | ||
const createArrayExpression = ts.factory ? ts.factory.createArrayLiteralExpression : ts.createArrayLiteral; | ||
const createStringLiteral = ts.factory ? ts.factory.createStringLiteral : ts.createLiteral; | ||
export default function transformer(program: ts.Program): ts.TransformerFactory<ts.SourceFile> { | ||
@@ -25,7 +28,7 @@ return (context: ts.TransformationContext) => (file: ts.SourceFile) => visitNodeAndChildren(file, program, context); | ||
if (!node.typeArguments) { | ||
return ts.createArrayLiteral([]); | ||
return createArrayExpression([]); | ||
} | ||
const type = typeChecker.getTypeFromTypeNode(node.typeArguments[0]); | ||
const properties = typeChecker.getPropertiesOfType(type); | ||
return ts.createArrayLiteral(properties.map(property => ts.createLiteral(property.name))); | ||
return createArrayExpression(properties.map(property => createStringLiteral(property.name))); | ||
} | ||
@@ -32,0 +35,0 @@ |
13387
132
191