From 8c63c72da05f67341d3d69beb4ba9db55ad093c0 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 15:54:49 +1000 Subject: [PATCH 1/8] Avoid 'any' for formatMessage --- index.ts | 13 ++++++++----- lib/index.js | 7 ++++--- lib/index.js.map | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/index.ts b/index.ts index 5a232b9..8721b27 100644 --- a/index.ts +++ b/index.ts @@ -55,11 +55,14 @@ function findProps(node: ts.Node, tagName: string): LooseObject[] { let name; node.properties.forEach(p => { - if (ts.isPropertyAssignment(p) && ts.isStringLiteral(p.initializer)) { - name = (p.name as any).escapedText; - prop[name] = p.initializer.text; - } - }); + if ( + ts.isPropertyAssignment(p) && + (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && + ts.isStringLiteral(p.initializer) + ) { + prop[p.name.text] = p.initializer.text; + } + }); res.push(prop); } diff --git a/lib/index.js b/lib/index.js index 3a0b4de..1475d89 100644 --- a/lib/index.js +++ b/lib/index.js @@ -43,9 +43,10 @@ function findProps(node, tagName) { var prop = {}; var name_2; node.properties.forEach(function (p) { - if (ts.isPropertyAssignment(p) && ts.isStringLiteral(p.initializer)) { - name_2 = p.name.escapedText; - prop[name_2] = p.initializer.text; + if (ts.isPropertyAssignment(p) && + (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && + ts.isStringLiteral(p.initializer)) { + prop[p.name.text] = p.initializer.text; } }); res.push(prop); diff --git a/lib/index.js.map b/lib/index.js.map index 6dcbbde..b0b1674 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 7d692921edee867e685a7177bcb5277834f47e6d Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 15:59:01 +1000 Subject: [PATCH 2/8] Improve some names --- index.ts | 10 +++++----- lib/index.js | 10 +++++----- lib/index.js.map | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/index.ts b/index.ts index 8721b27..68991e6 100644 --- a/index.ts +++ b/index.ts @@ -1,13 +1,13 @@ import ts = require("typescript"); -function isDefineMessages(el: ts.Declaration, tagName: string): el is ts.VariableDeclaration { +function isMethodCall(el: ts.Declaration, methodName: string): el is ts.VariableDeclaration { return ( ts.isVariableDeclaration(el) && el.initializer && ts.isCallExpression(el.initializer) && el.initializer.expression && ts.isIdentifier(el.initializer.expression) && - el.initializer.expression.text === tagName + el.initializer.expression.text === methodName ); } @@ -84,7 +84,7 @@ function forAllVarDecls(node: ts.Node, cb: (el: ts.VariableDeclaration) => void) function findFirstJsxOpeningLikeElementWithName( node: ts.SourceFile, tagName: string, - dm?: boolean + findMethodCall?: boolean ) { var res: LooseObject[] = []; find(node); @@ -93,10 +93,10 @@ function findFirstJsxOpeningLikeElementWithName( if (!node) { return undefined; } - if (dm && ts.isSourceFile(node)) { + if (findMethodCall && ts.isSourceFile(node)) { // getNamedDeclarations is not currently public forAllVarDecls(node, (el: ts.Declaration) => { - if (isDefineMessages(el, tagName)) { + if (isMethodCall(el, tagName)) { if ( ts.isCallExpression(el.initializer) && el.initializer.arguments.length diff --git a/lib/index.js b/lib/index.js index 1475d89..0371540 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,13 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ts = require("typescript"); -function isDefineMessages(el, tagName) { +function isMethodCall(el, methodName) { return (ts.isVariableDeclaration(el) && el.initializer && ts.isCallExpression(el.initializer) && el.initializer.expression && ts.isIdentifier(el.initializer.expression) && - el.initializer.expression.text === tagName); + el.initializer.expression.text === methodName); } function emptyObject(obj) { for (var x in obj) { @@ -64,16 +64,16 @@ function forAllVarDecls(node, cb) { ts.forEachChild(node, function (n) { return forAllVarDecls(n, cb); }); } } -function findFirstJsxOpeningLikeElementWithName(node, tagName, dm) { +function findFirstJsxOpeningLikeElementWithName(node, tagName, findMethodCall) { var res = []; find(node); function find(node) { if (!node) { return undefined; } - if (dm && ts.isSourceFile(node)) { + if (findMethodCall && ts.isSourceFile(node)) { forAllVarDecls(node, function (el) { - if (isDefineMessages(el, tagName)) { + if (isMethodCall(el, tagName)) { if (ts.isCallExpression(el.initializer) && el.initializer.arguments.length) { var nodeProps = el.initializer.arguments[0]; diff --git a/lib/index.js.map b/lib/index.js.map index b0b1674..bb0af29 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From bdfd32e195d88227f9673d8d3b3fa4921883d5ae Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 16:00:16 +1000 Subject: [PATCH 3/8] Clean up dead var --- index.ts | 3 --- lib/index.js | 1 - lib/index.js.map | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/index.ts b/index.ts index 68991e6..347f376 100644 --- a/index.ts +++ b/index.ts @@ -52,8 +52,6 @@ function findProps(node: ts.Node, tagName: string): LooseObject[] { if (tagName === "formatMessage") { var prop: LooseObject = {}; - let name; - node.properties.forEach(p => { if ( ts.isPropertyAssignment(p) && @@ -63,7 +61,6 @@ function findProps(node: ts.Node, tagName: string): LooseObject[] { prop[p.name.text] = p.initializer.text; } }); - res.push(prop); } } diff --git a/lib/index.js b/lib/index.js index 0371540..946d42b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -41,7 +41,6 @@ function findProps(node, tagName) { }); if (tagName === "formatMessage") { var prop = {}; - var name_2; node.properties.forEach(function (p) { if (ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && diff --git a/lib/index.js.map b/lib/index.js.map index bb0af29..d05ff2f 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 485a4ef1e516f37f89001d2382b30d86e3a6d8b9 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 16:27:51 +1000 Subject: [PATCH 4/8] Split JSX from method calls --- index.ts | 106 +++++++++++++++++++++++------------------------ lib/index.js | 96 +++++++++++++++++++++--------------------- lib/index.js.map | 2 +- 3 files changed, 103 insertions(+), 101 deletions(-) diff --git a/index.ts b/index.ts index 347f376..97c5a0c 100644 --- a/index.ts +++ b/index.ts @@ -23,14 +23,16 @@ interface LooseObject { [key: string]: any } -function findProps(node: ts.Node, tagName: string): LooseObject[] { +type MethodName = "formatMessage" | "defineMessages"; + +function findProps(node: ts.Node, methodName: MethodName): LooseObject[] { var res: LooseObject[] = []; - find(node); function find(node: ts.Node): LooseObject[] { if (!node) { return undefined; } if (ts.isObjectLiteralExpression(node)) { + if (methodName === "defineMessages") { node.properties.forEach(p => { var prop: LooseObject = {}; if ( @@ -49,8 +51,7 @@ function findProps(node: ts.Node, tagName: string): LooseObject[] { res.push(prop); } }); - - if (tagName === "formatMessage") { + } else if (methodName === "formatMessage") { var prop: LooseObject = {}; node.properties.forEach(p => { if ( @@ -62,11 +63,13 @@ function findProps(node: ts.Node, tagName: string): LooseObject[] { } }); res.push(prop); + } else { + throw "unexpected methodName: " + methodName } } return ts.forEachChild(node, find); } - + find(node); return res; } @@ -78,53 +81,52 @@ function forAllVarDecls(node: ts.Node, cb: (el: ts.VariableDeclaration) => void) } } -function findFirstJsxOpeningLikeElementWithName( +function findJsxOpeningLikeElementsWithName( node: ts.SourceFile, - tagName: string, - findMethodCall?: boolean + tagName: string ) { - var res: LooseObject[] = []; - find(node); - - function find(node: ts.Node | ts.SourceFile): undefined { - if (!node) { - return undefined; + let res: LooseObject[] = []; + function findJsxElement(node: ts.Node): undefined { + // Is this a JsxElement with an identifier name? + if ( + ts.isJsxOpeningLikeElement(node) && + ts.isIdentifier(node.tagName) + ) { + // Does the tag name match what we're looking for? + const childTagName = node.tagName; + if (childTagName.text === tagName) { + // node is a JsxOpeningLikeElement + res.push(node); + } } - if (findMethodCall && ts.isSourceFile(node)) { - // getNamedDeclarations is not currently public - forAllVarDecls(node, (el: ts.Declaration) => { - if (isMethodCall(el, tagName)) { - if ( - ts.isCallExpression(el.initializer) && - el.initializer.arguments.length - ) { - var nodeProps = el.initializer.arguments[0]; - var props = findProps(nodeProps, tagName); - // props is an array of LooseObject - res = res.concat(props); - } - } - }) - } else { - // Is this a JsxElement with an identifier name? + return ts.forEachChild(node, findJsxElement); + } + findJsxElement(node); + return res; +} + +function findMethodCallsWithName( + sourceFile: ts.SourceFile, + methodName: MethodName +) { + let res: LooseObject[] = []; + // getNamedDeclarations is not currently public + forAllVarDecls(sourceFile, (el: ts.Declaration) => { + if (isMethodCall(el, methodName)) { if ( - ts.isJsxOpeningLikeElement(node) && - ts.isIdentifier(node.tagName) + ts.isCallExpression(el.initializer) && + el.initializer.arguments.length ) { - // Does the tag name match what we're looking for? - const childTagName = node.tagName; - if (childTagName.text === tagName) { - // node is a JsxOpeningLikeElement - res.push(node); - } + let nodeProps = el.initializer.arguments[0]; + let props = findProps(nodeProps, methodName); + // props is an array of LooseObject + res = res.concat(props); } } - - return ts.forEachChild(node, find); - } - + }) return res; } + /** * Parse tsx files * @@ -133,7 +135,7 @@ function findFirstJsxOpeningLikeElementWithName( * @returns {array} */ function main(contents: string): {}[] { - var sourceFile = ts.createSourceFile( + let sourceFile = ts.createSourceFile( "file.ts", contents, ts.ScriptTarget.ES2015, @@ -141,24 +143,22 @@ function main(contents: string): {}[] { ts.ScriptKind.TSX ); - var elements = findFirstJsxOpeningLikeElementWithName( + let elements = findJsxOpeningLikeElementsWithName( sourceFile, "FormattedMessage" ); - var dm = findFirstJsxOpeningLikeElementWithName( + let dm = findMethodCallsWithName( sourceFile, - "defineMessages", - true + "defineMessages" ); - var fm = findFirstJsxOpeningLikeElementWithName( + let fm = findMethodCallsWithName( sourceFile, - "formatMessage", - true + "formatMessage" ); - var res = elements + let res = elements .map(element => { - var msg: LooseObject = {}; + let msg: LooseObject = {}; element.attributes && element.attributes.properties.forEach((attr: LooseObject) => { // found nothing diff --git a/lib/index.js b/lib/index.js index 946d42b..f0eb8a0 100644 --- a/lib/index.js +++ b/lib/index.js @@ -15,31 +15,32 @@ function emptyObject(obj) { } return true; } -function findProps(node, tagName) { +function findProps(node, methodName) { var res = []; - find(node); function find(node) { if (!node) { return undefined; } if (ts.isObjectLiteralExpression(node)) { - node.properties.forEach(function (p) { - var prop = {}; - if (ts.isPropertyAssignment(p) && - ts.isObjectLiteralExpression(p.initializer) && - p.initializer.properties) { - p.initializer.properties.forEach(function (ip) { - if (ts.isIdentifier(ip.name)) { - var name_1 = ip.name.text; - if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { - prop[name_1] = ip.initializer.text; + if (methodName === "defineMessages") { + node.properties.forEach(function (p) { + var prop = {}; + if (ts.isPropertyAssignment(p) && + ts.isObjectLiteralExpression(p.initializer) && + p.initializer.properties) { + p.initializer.properties.forEach(function (ip) { + if (ts.isIdentifier(ip.name)) { + var name_1 = ip.name.text; + if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { + prop[name_1] = ip.initializer.text; + } } - } - }); - res.push(prop); - } - }); - if (tagName === "formatMessage") { + }); + res.push(prop); + } + }); + } + else if (methodName === "formatMessage") { var prop = {}; node.properties.forEach(function (p) { if (ts.isPropertyAssignment(p) && @@ -50,9 +51,13 @@ function findProps(node, tagName) { }); res.push(prop); } + else { + throw "unexpected methodName: " + methodName; + } } return ts.forEachChild(node, find); } + find(node); return res; } function forAllVarDecls(node, cb) { @@ -63,43 +68,40 @@ function forAllVarDecls(node, cb) { ts.forEachChild(node, function (n) { return forAllVarDecls(n, cb); }); } } -function findFirstJsxOpeningLikeElementWithName(node, tagName, findMethodCall) { +function findJsxOpeningLikeElementsWithName(node, tagName) { var res = []; - find(node); - function find(node) { - if (!node) { - return undefined; - } - if (findMethodCall && ts.isSourceFile(node)) { - forAllVarDecls(node, function (el) { - if (isMethodCall(el, tagName)) { - if (ts.isCallExpression(el.initializer) && - el.initializer.arguments.length) { - var nodeProps = el.initializer.arguments[0]; - var props = findProps(nodeProps, tagName); - res = res.concat(props); - } - } - }); - } - else { - if (ts.isJsxOpeningLikeElement(node) && - ts.isIdentifier(node.tagName)) { - var childTagName = node.tagName; - if (childTagName.text === tagName) { - res.push(node); - } + function findJsxElement(node) { + if (ts.isJsxOpeningLikeElement(node) && + ts.isIdentifier(node.tagName)) { + var childTagName = node.tagName; + if (childTagName.text === tagName) { + res.push(node); } } - return ts.forEachChild(node, find); + return ts.forEachChild(node, findJsxElement); } + findJsxElement(node); + return res; +} +function findMethodCallsWithName(sourceFile, methodName) { + var res = []; + forAllVarDecls(sourceFile, function (el) { + if (isMethodCall(el, methodName)) { + if (ts.isCallExpression(el.initializer) && + el.initializer.arguments.length) { + var nodeProps = el.initializer.arguments[0]; + var props = findProps(nodeProps, methodName); + res = res.concat(props); + } + } + }); return res; } function main(contents) { var sourceFile = ts.createSourceFile("file.ts", contents, ts.ScriptTarget.ES2015, false, ts.ScriptKind.TSX); - var elements = findFirstJsxOpeningLikeElementWithName(sourceFile, "FormattedMessage"); - var dm = findFirstJsxOpeningLikeElementWithName(sourceFile, "defineMessages", true); - var fm = findFirstJsxOpeningLikeElementWithName(sourceFile, "formatMessage", true); + var elements = findJsxOpeningLikeElementsWithName(sourceFile, "FormattedMessage"); + var dm = findMethodCallsWithName(sourceFile, "defineMessages"); + var fm = findMethodCallsWithName(sourceFile, "formatMessage"); var res = elements .map(function (element) { var msg = {}; diff --git a/lib/index.js.map b/lib/index.js.map index d05ff2f..59cc5d5 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 669db04c64300286a3f56b2f738a6d37a77581dc Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 16:43:00 +1000 Subject: [PATCH 5/8] Split up findProps --- index.ts | 73 ++++++++++++++++++++++++++++-------------------- lib/index.js | 62 +++++++++++++++++++++++----------------- lib/index.js.map | 2 +- 3 files changed, 79 insertions(+), 58 deletions(-) diff --git a/index.ts b/index.ts index 97c5a0c..614b97d 100644 --- a/index.ts +++ b/index.ts @@ -23,7 +23,44 @@ interface LooseObject { [key: string]: any } -type MethodName = "formatMessage" | "defineMessages"; +type MethodName = "defineMessages" | "formatMessage"; + +function findPropsForDefineMessages(node: ts.ObjectLiteralExpression): LooseObject[] { + var messages: LooseObject[] = []; + node.properties.forEach(p => { + var message: LooseObject = {}; + if ( + ts.isPropertyAssignment(p) && + ts.isObjectLiteralExpression(p.initializer) && + p.initializer.properties + ) { + p.initializer.properties.forEach(ip => { + if (ts.isIdentifier(ip.name)) { + let name = ip.name.text + if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { + message[name] = ip.initializer.text; + } + } + }); + messages.push(message); + } + }); + return messages; +} + +function findPropsForFormatMessage(node: ts.ObjectLiteralExpression): LooseObject[] { + var message: LooseObject = {}; + node.properties.forEach(p => { + if ( + ts.isPropertyAssignment(p) && + (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && + ts.isStringLiteral(p.initializer) + ) { + message[p.name.text] = p.initializer.text; + } + }); + return [message]; +} function findProps(node: ts.Node, methodName: MethodName): LooseObject[] { var res: LooseObject[] = []; @@ -33,41 +70,15 @@ function findProps(node: ts.Node, methodName: MethodName): LooseObject[] { } if (ts.isObjectLiteralExpression(node)) { if (methodName === "defineMessages") { - node.properties.forEach(p => { - var prop: LooseObject = {}; - if ( - ts.isPropertyAssignment(p) && - ts.isObjectLiteralExpression(p.initializer) && - p.initializer.properties - ) { - p.initializer.properties.forEach(ip => { - if (ts.isIdentifier(ip.name)) { - let name = ip.name.text - if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { - prop[name] = ip.initializer.text; - } - } - }); - res.push(prop); - } - }); + res.push(...findPropsForDefineMessages(node)); } else if (methodName === "formatMessage") { - var prop: LooseObject = {}; - node.properties.forEach(p => { - if ( - ts.isPropertyAssignment(p) && - (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && - ts.isStringLiteral(p.initializer) - ) { - prop[p.name.text] = p.initializer.text; - } - }); - res.push(prop); + res.push(...findPropsForFormatMessage(node)); } else { throw "unexpected methodName: " + methodName } + } else { + return ts.forEachChild(node, find); } - return ts.forEachChild(node, find); } find(node); return res; diff --git a/lib/index.js b/lib/index.js index f0eb8a0..d7e93cc 100644 --- a/lib/index.js +++ b/lib/index.js @@ -15,6 +15,37 @@ function emptyObject(obj) { } return true; } +function findPropsForDefineMessages(node) { + var messages = []; + node.properties.forEach(function (p) { + var message = {}; + if (ts.isPropertyAssignment(p) && + ts.isObjectLiteralExpression(p.initializer) && + p.initializer.properties) { + p.initializer.properties.forEach(function (ip) { + if (ts.isIdentifier(ip.name)) { + var name_1 = ip.name.text; + if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { + message[name_1] = ip.initializer.text; + } + } + }); + messages.push(message); + } + }); + return messages; +} +function findPropsForFormatMessage(node) { + var message = {}; + node.properties.forEach(function (p) { + if (ts.isPropertyAssignment(p) && + (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && + ts.isStringLiteral(p.initializer)) { + message[p.name.text] = p.initializer.text; + } + }); + return [message]; +} function findProps(node, methodName) { var res = []; function find(node) { @@ -23,39 +54,18 @@ function findProps(node, methodName) { } if (ts.isObjectLiteralExpression(node)) { if (methodName === "defineMessages") { - node.properties.forEach(function (p) { - var prop = {}; - if (ts.isPropertyAssignment(p) && - ts.isObjectLiteralExpression(p.initializer) && - p.initializer.properties) { - p.initializer.properties.forEach(function (ip) { - if (ts.isIdentifier(ip.name)) { - var name_1 = ip.name.text; - if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { - prop[name_1] = ip.initializer.text; - } - } - }); - res.push(prop); - } - }); + res.push.apply(res, findPropsForDefineMessages(node)); } else if (methodName === "formatMessage") { - var prop = {}; - node.properties.forEach(function (p) { - if (ts.isPropertyAssignment(p) && - (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && - ts.isStringLiteral(p.initializer)) { - prop[p.name.text] = p.initializer.text; - } - }); - res.push(prop); + res.push.apply(res, findPropsForFormatMessage(node)); } else { throw "unexpected methodName: " + methodName; } } - return ts.forEachChild(node, find); + else { + return ts.forEachChild(node, find); + } } find(node); return res; diff --git a/lib/index.js.map b/lib/index.js.map index 59cc5d5..0ef8026 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 7648014bed2b6471c5eb5943c434dba393e0c93c Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 17:11:25 +1000 Subject: [PATCH 6/8] Clean up types more --- index.ts | 83 +++++++++++++++++++++++------------------------- lib/index.js | 57 ++++++++++++++------------------- lib/index.js.map | 2 +- 3 files changed, 64 insertions(+), 78 deletions(-) diff --git a/index.ts b/index.ts index 614b97d..96999c1 100644 --- a/index.ts +++ b/index.ts @@ -19,16 +19,19 @@ function emptyObject(obj: any) { return true; } -interface LooseObject { +// just a map of string to any +interface Message { [key: string]: any } +type ElementName = "FormattedMessage"; type MethodName = "defineMessages" | "formatMessage"; +type MessageExtracter = (obj: ts.ObjectLiteralExpression) => Message[] -function findPropsForDefineMessages(node: ts.ObjectLiteralExpression): LooseObject[] { - var messages: LooseObject[] = []; - node.properties.forEach(p => { - var message: LooseObject = {}; +function extractMessagesForDefineMessages(objLiteral: ts.ObjectLiteralExpression): Message[] { + var messages: Message[] = []; + objLiteral.properties.forEach(p => { + var message: Message = {}; if ( ts.isPropertyAssignment(p) && ts.isObjectLiteralExpression(p.initializer) && @@ -48,9 +51,9 @@ function findPropsForDefineMessages(node: ts.ObjectLiteralExpression): LooseObje return messages; } -function findPropsForFormatMessage(node: ts.ObjectLiteralExpression): LooseObject[] { - var message: LooseObject = {}; - node.properties.forEach(p => { +function extractMessagesForFormatMessage(objLiteral: ts.ObjectLiteralExpression): Message[] { + var message: Message = {}; + objLiteral.properties.forEach(p => { if ( ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && @@ -62,20 +65,11 @@ function findPropsForFormatMessage(node: ts.ObjectLiteralExpression): LooseObjec return [message]; } -function findProps(node: ts.Node, methodName: MethodName): LooseObject[] { - var res: LooseObject[] = []; - function find(node: ts.Node): LooseObject[] { - if (!node) { - return undefined; - } +function extractMessagesForNode(node: ts.Node, extractMessages: MessageExtracter): Message[] { + var res: Message[] = []; + function find(node: ts.Node): Message[] { if (ts.isObjectLiteralExpression(node)) { - if (methodName === "defineMessages") { - res.push(...findPropsForDefineMessages(node)); - } else if (methodName === "formatMessage") { - res.push(...findPropsForFormatMessage(node)); - } else { - throw "unexpected methodName: " + methodName - } + res.push(...extractMessages(node)); } else { return ts.forEachChild(node, find); } @@ -84,7 +78,7 @@ function findProps(node: ts.Node, methodName: MethodName): LooseObject[] { return res; } -function forAllVarDecls(node: ts.Node, cb: (el: ts.VariableDeclaration) => void) { +function forAllVarDecls(node: ts.Node, cb: (decl: ts.VariableDeclaration) => void) { if (ts.isVariableDeclaration(node)) { cb(node) } else { @@ -94,9 +88,9 @@ function forAllVarDecls(node: ts.Node, cb: (el: ts.VariableDeclaration) => void) function findJsxOpeningLikeElementsWithName( node: ts.SourceFile, - tagName: string + tagName: ElementName ) { - let res: LooseObject[] = []; + let messages: ts.JsxOpeningLikeElement[] = []; function findJsxElement(node: ts.Node): undefined { // Is this a JsxElement with an identifier name? if ( @@ -107,35 +101,35 @@ function findJsxOpeningLikeElementsWithName( const childTagName = node.tagName; if (childTagName.text === tagName) { // node is a JsxOpeningLikeElement - res.push(node); + messages.push(node); } } return ts.forEachChild(node, findJsxElement); } findJsxElement(node); - return res; + return messages; } function findMethodCallsWithName( sourceFile: ts.SourceFile, - methodName: MethodName + methodName: MethodName, + extractMessages: MessageExtracter ) { - let res: LooseObject[] = []; + let messages: Message[] = []; // getNamedDeclarations is not currently public - forAllVarDecls(sourceFile, (el: ts.Declaration) => { - if (isMethodCall(el, methodName)) { + forAllVarDecls(sourceFile, (decl: ts.Declaration) => { + if (isMethodCall(decl, methodName)) { if ( - ts.isCallExpression(el.initializer) && - el.initializer.arguments.length + ts.isCallExpression(decl.initializer) && + decl.initializer.arguments.length ) { - let nodeProps = el.initializer.arguments[0]; - let props = findProps(nodeProps, methodName); - // props is an array of LooseObject - res = res.concat(props); + let nodeProps = decl.initializer.arguments[0]; + let declMessages = extractMessagesForNode(nodeProps, extractMessages); + messages = messages.concat(declMessages); } } }) - return res; + return messages; } /** @@ -160,18 +154,21 @@ function main(contents: string): {}[] { ); let dm = findMethodCallsWithName( sourceFile, - "defineMessages" + "defineMessages", + extractMessagesForDefineMessages ); let fm = findMethodCallsWithName( sourceFile, - "formatMessage" + "formatMessage", + extractMessagesForFormatMessage ); - let res = elements + // convert JsxOpeningLikeElements to Message maps + let jsxMessages = elements .map(element => { - let msg: LooseObject = {}; + let msg: Message = {}; element.attributes && - element.attributes.properties.forEach((attr: LooseObject) => { + element.attributes.properties.forEach((attr: Message) => { // found nothing if (!attr.name || !attr.initializer) return; msg[attr.name.text] = @@ -181,7 +178,7 @@ function main(contents: string): {}[] { }) .filter(r => !emptyObject(r)); - return res.concat(dm).concat(fm); + return jsxMessages.concat(dm).concat(fm); } export default main; diff --git a/lib/index.js b/lib/index.js index d7e93cc..ac8b776 100644 --- a/lib/index.js +++ b/lib/index.js @@ -15,9 +15,9 @@ function emptyObject(obj) { } return true; } -function findPropsForDefineMessages(node) { +function extractMessagesForDefineMessages(objLiteral) { var messages = []; - node.properties.forEach(function (p) { + objLiteral.properties.forEach(function (p) { var message = {}; if (ts.isPropertyAssignment(p) && ts.isObjectLiteralExpression(p.initializer) && @@ -35,9 +35,9 @@ function findPropsForDefineMessages(node) { }); return messages; } -function findPropsForFormatMessage(node) { +function extractMessagesForFormatMessage(objLiteral) { var message = {}; - node.properties.forEach(function (p) { + objLiteral.properties.forEach(function (p) { if (ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && ts.isStringLiteral(p.initializer)) { @@ -46,22 +46,11 @@ function findPropsForFormatMessage(node) { }); return [message]; } -function findProps(node, methodName) { +function extractMessagesForNode(node, extractMessages) { var res = []; function find(node) { - if (!node) { - return undefined; - } if (ts.isObjectLiteralExpression(node)) { - if (methodName === "defineMessages") { - res.push.apply(res, findPropsForDefineMessages(node)); - } - else if (methodName === "formatMessage") { - res.push.apply(res, findPropsForFormatMessage(node)); - } - else { - throw "unexpected methodName: " + methodName; - } + res.push.apply(res, extractMessages(node)); } else { return ts.forEachChild(node, find); @@ -79,40 +68,40 @@ function forAllVarDecls(node, cb) { } } function findJsxOpeningLikeElementsWithName(node, tagName) { - var res = []; + var messages = []; function findJsxElement(node) { if (ts.isJsxOpeningLikeElement(node) && ts.isIdentifier(node.tagName)) { var childTagName = node.tagName; if (childTagName.text === tagName) { - res.push(node); + messages.push(node); } } return ts.forEachChild(node, findJsxElement); } findJsxElement(node); - return res; + return messages; } -function findMethodCallsWithName(sourceFile, methodName) { - var res = []; - forAllVarDecls(sourceFile, function (el) { - if (isMethodCall(el, methodName)) { - if (ts.isCallExpression(el.initializer) && - el.initializer.arguments.length) { - var nodeProps = el.initializer.arguments[0]; - var props = findProps(nodeProps, methodName); - res = res.concat(props); +function findMethodCallsWithName(sourceFile, methodName, extractMessages) { + var messages = []; + forAllVarDecls(sourceFile, function (decl) { + if (isMethodCall(decl, methodName)) { + if (ts.isCallExpression(decl.initializer) && + decl.initializer.arguments.length) { + var nodeProps = decl.initializer.arguments[0]; + var declMessages = extractMessagesForNode(nodeProps, extractMessages); + messages = messages.concat(declMessages); } } }); - return res; + return messages; } function main(contents) { var sourceFile = ts.createSourceFile("file.ts", contents, ts.ScriptTarget.ES2015, false, ts.ScriptKind.TSX); var elements = findJsxOpeningLikeElementsWithName(sourceFile, "FormattedMessage"); - var dm = findMethodCallsWithName(sourceFile, "defineMessages"); - var fm = findMethodCallsWithName(sourceFile, "formatMessage"); - var res = elements + var dm = findMethodCallsWithName(sourceFile, "defineMessages", extractMessagesForDefineMessages); + var fm = findMethodCallsWithName(sourceFile, "formatMessage", extractMessagesForFormatMessage); + var jsxMessages = elements .map(function (element) { var msg = {}; element.attributes && @@ -125,7 +114,7 @@ function main(contents) { return msg; }) .filter(function (r) { return !emptyObject(r); }); - return res.concat(dm).concat(fm); + return jsxMessages.concat(dm).concat(fm); } exports.default = main; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map index 0ef8026..15aca57 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAElC,sBAAsB,EAAkB,EAAE,UAAkB;IAC1D,MAAM,CAAC,CACL,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,WAAW;QACd,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC;QACnC,EAAE,CAAC,WAAW,CAAC,UAAU;QACzB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;QAC1C,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAC9C,CAAC;AACJ,CAAC;AAGD,qBAAqB,GAAQ;IAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,IAAI,CAAC;AACd,CAAC;AAQD,oCAAoC,IAAgC;IAClE,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC;QACvB,IAAI,OAAO,GAAgB,EAAE,CAAC;QAC9B,EAAE,CAAC,CACD,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,WAAW,CAAC,UAChB,CAAC,CAAC,CAAC;YACD,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,EAAE;gBACjC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,MAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;oBACvB,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wBACtE,OAAO,CAAC,MAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,CAAC;AAClB,CAAC;AAED,mCAAmC,IAAgC;IACjE,IAAI,OAAO,GAAgB,EAAE,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC;QACvB,EAAE,CAAC,CACD,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAClC,CAAC,CAAC,CAAC;YACC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IACL,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED,mBAAmB,IAAa,EAAE,UAAsB;IACtD,IAAI,GAAG,GAAkB,EAAE,CAAC;IAC5B,cAAc,IAAa;QACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,EAAE,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvC,EAAE,CAAC,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACpC,GAAG,CAAC,IAAI,OAAR,GAAG,EAAS,0BAA0B,CAAC,IAAI,CAAC,EAAE;YAChD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC;gBAC1C,GAAG,CAAC,IAAI,OAAR,GAAG,EAAS,yBAAyB,CAAC,IAAI,CAAC,EAAE;YAC/C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,yBAAyB,GAAG,UAAU,CAAA;YAC9C,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,IAAa,EAAE,EAAwC;IAC7E,EAAE,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,EAAE,CAAC,IAAI,CAAC,CAAA;IACV,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAA,CAAC,IAAI,OAAA,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,EAArB,CAAqB,CAAC,CAAA;IACnD,CAAC;AACH,CAAC;AAED,4CACE,IAAmB,EACnB,OAAe;IAEf,IAAI,GAAG,GAAkB,EAAE,CAAC;IAC5B,wBAAwB,IAAa;QAEnC,EAAE,CAAC,CACD,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAChC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAC9B,CAAC,CAAC,CAAC;YAED,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;YAClC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;gBAElC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED,iCACE,UAAyB,EACzB,UAAsB;IAEtB,IAAI,GAAG,GAAkB,EAAE,CAAC;IAE5B,cAAc,CAAC,UAAU,EAAE,UAAC,EAAkB;QAC5C,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,EAAE,CAAC,CACD,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC;gBACnC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,MAC3B,CAAC,CAAC,CAAC;gBACD,IAAI,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAE7C,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AASD,cAAc,QAAgB;IAC5B,IAAI,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAClC,SAAS,EACT,QAAQ,EACR,EAAE,CAAC,YAAY,CAAC,MAAM,EACF,KAAK,EACzB,EAAE,CAAC,UAAU,CAAC,GAAG,CAClB,CAAC;IAEF,IAAI,QAAQ,GAAG,kCAAkC,CAC/C,UAAU,EACV,kBAAkB,CACnB,CAAC;IACF,IAAI,EAAE,GAAG,uBAAuB,CAC9B,UAAU,EACV,gBAAgB,CACjB,CAAC;IACF,IAAI,EAAE,GAAG,uBAAuB,CAC9B,UAAU,EACV,eAAe,CAChB,CAAC;IAEF,IAAI,GAAG,GAAG,QAAQ;SACf,GAAG,CAAC,UAAA,OAAO;QACV,IAAI,GAAG,GAAgB,EAAE,CAAC;QAC1B,OAAO,CAAC,UAAU;YAChB,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAiB;gBAEtD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBAAC,MAAM,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,GAAG,CAAC;IACb,CAAC,CAAC;SACD,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,WAAW,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;IAEhC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,kBAAe,IAAI,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 4b9bbf01fea08b7ff1ee80400b7364c19088596a Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 17:17:02 +1000 Subject: [PATCH 7/8] Allow string keys as well as identifiers --- index.ts | 2 +- lib/index.js | 2 +- lib/index.js.map | 2 +- test/app/defineMessages.ts | 6 +++--- test/app/wrappedComponent.tsx | 5 +++++ test/index.js | 7 +++++-- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/index.ts b/index.ts index 96999c1..9a33f5b 100644 --- a/index.ts +++ b/index.ts @@ -38,7 +38,7 @@ function extractMessagesForDefineMessages(objLiteral: ts.ObjectLiteralExpression p.initializer.properties ) { p.initializer.properties.forEach(ip => { - if (ts.isIdentifier(ip.name)) { + if (ts.isIdentifier(ip.name) || ts.isLiteralExpression(ip.name)) { let name = ip.name.text if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { message[name] = ip.initializer.text; diff --git a/lib/index.js b/lib/index.js index ac8b776..e96261e 100644 --- a/lib/index.js +++ b/lib/index.js @@ -23,7 +23,7 @@ function extractMessagesForDefineMessages(objLiteral) { ts.isObjectLiteralExpression(p.initializer) && p.initializer.properties) { p.initializer.properties.forEach(function (ip) { - if (ts.isIdentifier(ip.name)) { + if (ts.isIdentifier(ip.name) || ts.isLiteralExpression(ip.name)) { var name_1 = ip.name.text; if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { message[name_1] = ip.initializer.text; diff --git a/lib/index.js.map b/lib/index.js.map index 15aca57..6b72ad1 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/test/app/defineMessages.ts b/test/app/defineMessages.ts index 5b508cf..116856c 100644 --- a/test/app/defineMessages.ts +++ b/test/app/defineMessages.ts @@ -5,9 +5,9 @@ const lang = defineMessages({ id: 'intro.hello', defaultMessage: "Hello world" }, - title: { - id: 'app.title', - defaultMessage: "Hello" + "title": { + "id": 'app.title', + "defaultMessage": "Hello" }, }) diff --git a/test/app/wrappedComponent.tsx b/test/app/wrappedComponent.tsx index 39aa385..1fc5def 100644 --- a/test/app/wrappedComponent.tsx +++ b/test/app/wrappedComponent.tsx @@ -11,6 +11,11 @@ class WrappedComponent extends React.Component{ defaultMessage: "Email" }); + const formatMessageWithStringKeys = formatMessage({ + "id": "anotherPlaceholder", + "defaultMessage": "Name" + }); + return
diff --git a/test/index.js b/test/index.js index 74dc0f5..ac87c75 100644 --- a/test/index.js +++ b/test/index.js @@ -79,9 +79,12 @@ test("formatMessage() API should work with a wrapped by injectIntl Component", t var res = p(content.toString()); - var expected = [{ id: "emailPlaceholder", defaultMessage: "Email" }]; + var expected = [ + { id: "emailPlaceholder", defaultMessage: "Email" }, + { id: "anotherPlaceholder", defaultMessage: "Name" } + ]; - t.is(res.length, 1); + t.is(res.length, 2); t.deepEqual(res, expected); }); \ No newline at end of file From a08c53e271b730c171bc7538f0be06ee6934554c Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Sun, 14 Jan 2018 19:03:42 +1000 Subject: [PATCH 8/8] Add tslint and clean up --- index.ts | 101 ++++++++++++++++++++++------------------- lib/index.js | 34 ++++++++------ lib/index.js.map | 2 +- package.json | 3 +- tsconfig.json | 2 + tslint.json | 14 ++++++ yarn.lock | 116 ++++++++++++++++++++++++++++++++++++++++++++++- 7 files changed, 207 insertions(+), 65 deletions(-) create mode 100644 tslint.json diff --git a/index.ts b/index.ts index 9a33f5b..6d55190 100644 --- a/index.ts +++ b/index.ts @@ -12,34 +12,37 @@ function isMethodCall(el: ts.Declaration, methodName: string): el is ts.Variable } // Should be pretty fast: https://stackoverflow.com/a/34491287/14379 +// tslint:disable-next-line:no-any function emptyObject(obj: any) { - for (var x in obj) { - return false; + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + return false; + } } return true; } -// just a map of string to any +// just a map of string to string interface Message { - [key: string]: any + [key: string]: string; } type ElementName = "FormattedMessage"; type MethodName = "defineMessages" | "formatMessage"; -type MessageExtracter = (obj: ts.ObjectLiteralExpression) => Message[] +type MessageExtracter = (obj: ts.ObjectLiteralExpression) => Message[]; function extractMessagesForDefineMessages(objLiteral: ts.ObjectLiteralExpression): Message[] { - var messages: Message[] = []; - objLiteral.properties.forEach(p => { - var message: Message = {}; + const messages: Message[] = []; + objLiteral.properties.forEach((p) => { + const message: Message = {}; if ( ts.isPropertyAssignment(p) && ts.isObjectLiteralExpression(p.initializer) && p.initializer.properties ) { - p.initializer.properties.forEach(ip => { + p.initializer.properties.forEach((ip) => { if (ts.isIdentifier(ip.name) || ts.isLiteralExpression(ip.name)) { - let name = ip.name.text + const name = ip.name.text; if (ts.isPropertyAssignment(ip) && ts.isStringLiteral(ip.initializer)) { message[name] = ip.initializer.text; } @@ -52,8 +55,8 @@ function extractMessagesForDefineMessages(objLiteral: ts.ObjectLiteralExpression } function extractMessagesForFormatMessage(objLiteral: ts.ObjectLiteralExpression): Message[] { - var message: Message = {}; - objLiteral.properties.forEach(p => { + const message: Message = {}; + objLiteral.properties.forEach((p) => { if ( ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isLiteralExpression(p.name)) && @@ -66,12 +69,12 @@ function extractMessagesForFormatMessage(objLiteral: ts.ObjectLiteralExpression) } function extractMessagesForNode(node: ts.Node, extractMessages: MessageExtracter): Message[] { - var res: Message[] = []; - function find(node: ts.Node): Message[] { - if (ts.isObjectLiteralExpression(node)) { - res.push(...extractMessages(node)); + const res: Message[] = []; + function find(n: ts.Node): Message[] { + if (ts.isObjectLiteralExpression(n)) { + res.push(...extractMessages(n)); } else { - return ts.forEachChild(node, find); + return ts.forEachChild(n, find); } } find(node); @@ -80,31 +83,31 @@ function extractMessagesForNode(node: ts.Node, extractMessages: MessageExtracter function forAllVarDecls(node: ts.Node, cb: (decl: ts.VariableDeclaration) => void) { if (ts.isVariableDeclaration(node)) { - cb(node) + cb(node); } else { - ts.forEachChild(node, n => forAllVarDecls(n, cb)) + ts.forEachChild(node, (n) => forAllVarDecls(n, cb)); } } function findJsxOpeningLikeElementsWithName( node: ts.SourceFile, - tagName: ElementName + tagName: ElementName, ) { - let messages: ts.JsxOpeningLikeElement[] = []; - function findJsxElement(node: ts.Node): undefined { + const messages: ts.JsxOpeningLikeElement[] = []; + function findJsxElement(n: ts.Node): undefined { // Is this a JsxElement with an identifier name? if ( - ts.isJsxOpeningLikeElement(node) && - ts.isIdentifier(node.tagName) + ts.isJsxOpeningLikeElement(n) && + ts.isIdentifier(n.tagName) ) { // Does the tag name match what we're looking for? - const childTagName = node.tagName; + const childTagName = n.tagName; if (childTagName.text === tagName) { // node is a JsxOpeningLikeElement - messages.push(node); + messages.push(n); } } - return ts.forEachChild(node, findJsxElement); + return ts.forEachChild(n, findJsxElement); } findJsxElement(node); return messages; @@ -113,7 +116,7 @@ function findJsxOpeningLikeElementsWithName( function findMethodCallsWithName( sourceFile: ts.SourceFile, methodName: MethodName, - extractMessages: MessageExtracter + extractMessages: MessageExtracter, ) { let messages: Message[] = []; // getNamedDeclarations is not currently public @@ -123,12 +126,12 @@ function findMethodCallsWithName( ts.isCallExpression(decl.initializer) && decl.initializer.arguments.length ) { - let nodeProps = decl.initializer.arguments[0]; - let declMessages = extractMessagesForNode(nodeProps, extractMessages); + const nodeProps = decl.initializer.arguments[0]; + const declMessages = extractMessagesForNode(nodeProps, extractMessages); messages = messages.concat(declMessages); } } - }) + }); return messages; } @@ -139,44 +142,48 @@ function findMethodCallsWithName( * @param {string} contents * @returns {array} */ +// TODO perhaps we should expose the Message interface +// tslint:disable-next-line:array-type function main(contents: string): {}[] { - let sourceFile = ts.createSourceFile( + const sourceFile = ts.createSourceFile( "file.ts", contents, ts.ScriptTarget.ES2015, /*setParentNodes */ false, - ts.ScriptKind.TSX + ts.ScriptKind.TSX, ); - let elements = findJsxOpeningLikeElementsWithName( + const elements = findJsxOpeningLikeElementsWithName( sourceFile, - "FormattedMessage" + "FormattedMessage", ); - let dm = findMethodCallsWithName( + const dm = findMethodCallsWithName( sourceFile, "defineMessages", - extractMessagesForDefineMessages + extractMessagesForDefineMessages, ); - let fm = findMethodCallsWithName( + const fm = findMethodCallsWithName( sourceFile, "formatMessage", - extractMessagesForFormatMessage + extractMessagesForFormatMessage, ); // convert JsxOpeningLikeElements to Message maps - let jsxMessages = elements - .map(element => { - let msg: Message = {}; + const jsxMessages = elements + .map((element) => { + const msg: Message = {}; element.attributes && - element.attributes.properties.forEach((attr: Message) => { + element.attributes.properties.forEach((attr: ts.JsxAttributeLike) => { // found nothing - if (!attr.name || !attr.initializer) return; - msg[attr.name.text] = - attr.initializer.text || attr.initializer.expression.text; + // tslint:disable-next-line:no-any + const a = attr as any; // TODO find correct types to avoid "any" + if (!a.name || !a.initializer) { return; } + msg[a.name.text] = + a.initializer.text || a.initializer.expression.text; }); return msg; }) - .filter(r => !emptyObject(r)); + .filter((r) => !emptyObject(r)); return jsxMessages.concat(dm).concat(fm); } diff --git a/lib/index.js b/lib/index.js index e96261e..6e85a7a 100644 --- a/lib/index.js +++ b/lib/index.js @@ -10,8 +10,10 @@ function isMethodCall(el, methodName) { el.initializer.expression.text === methodName); } function emptyObject(obj) { - for (var x in obj) { - return false; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + return false; + } } return true; } @@ -48,12 +50,12 @@ function extractMessagesForFormatMessage(objLiteral) { } function extractMessagesForNode(node, extractMessages) { var res = []; - function find(node) { - if (ts.isObjectLiteralExpression(node)) { - res.push.apply(res, extractMessages(node)); + function find(n) { + if (ts.isObjectLiteralExpression(n)) { + res.push.apply(res, extractMessages(n)); } else { - return ts.forEachChild(node, find); + return ts.forEachChild(n, find); } } find(node); @@ -69,15 +71,15 @@ function forAllVarDecls(node, cb) { } function findJsxOpeningLikeElementsWithName(node, tagName) { var messages = []; - function findJsxElement(node) { - if (ts.isJsxOpeningLikeElement(node) && - ts.isIdentifier(node.tagName)) { - var childTagName = node.tagName; + function findJsxElement(n) { + if (ts.isJsxOpeningLikeElement(n) && + ts.isIdentifier(n.tagName)) { + var childTagName = n.tagName; if (childTagName.text === tagName) { - messages.push(node); + messages.push(n); } } - return ts.forEachChild(node, findJsxElement); + return ts.forEachChild(n, findJsxElement); } findJsxElement(node); return messages; @@ -106,10 +108,12 @@ function main(contents) { var msg = {}; element.attributes && element.attributes.properties.forEach(function (attr) { - if (!attr.name || !attr.initializer) + var a = attr; + if (!a.name || !a.initializer) { return; - msg[attr.name.text] = - attr.initializer.text || attr.initializer.expression.text; + } + msg[a.name.text] = + a.initializer.text || a.initializer.expression.text; }); return msg; }) diff --git a/lib/index.js.map b/lib/index.js.map index 6b72ad1..b2de06b 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index dfb43f3..567d675 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "scripts": { "start": "tsc -w", - "test": "ava --verbose" + "test": "tsc && tslint -c tslint.json '*.ts' && ava --verbose" }, "repository": { "type": "git", @@ -24,6 +24,7 @@ }, "homepage": "https://github.com/bang88/typescript-react-intl#readme", "dependencies": { + "tslint": "^5.9.1", "typescript": "^2.6.2" }, "devDependencies": { diff --git a/tsconfig.json b/tsconfig.json index ffd7bcf..3f9c19c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,8 @@ "module": "commonjs", "moduleResolution": "node", "noEmitOnError": false, + "noUnusedLocals": true, + "noUnusedParameters": true, "target": "es5", "declaration": true, "noImplicitAny": true, diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..9414a58 --- /dev/null +++ b/tslint.json @@ -0,0 +1,14 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended" + ], + "jsRules": {}, + "rules": { + "no-any": true, + // TODO perhaps we *should* use the 'I' prefix? + "interface-name": [true, "never-prefix"], + "no-unused-expression": [true, "allow-fast-null-checks"] + }, + "rulesDirectory": [] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 9d45e6e..63c6301 100644 --- a/yarn.lock +++ b/yarn.lock @@ -76,6 +76,12 @@ ansi-styles@^3.0.0: dependencies: color-convert "^1.0.0" +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" @@ -600,6 +606,10 @@ balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -645,6 +655,13 @@ brace-expansion@^1.0.0: balanced-match "^0.4.1" concat-map "0.0.1" +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -661,7 +678,7 @@ buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" -builtin-modules@^1.0.0: +builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -727,6 +744,14 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chokidar@^1.4.2: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" @@ -801,6 +826,12 @@ color-convert@^1.0.0: dependencies: color-name "^1.1.1" +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + color-name@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" @@ -811,6 +842,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" +commander@^2.12.1: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + common-path-prefix@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" @@ -957,6 +992,10 @@ diff@^3.0.0, diff@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +diff@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" + dot-prop@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" @@ -1011,6 +1050,10 @@ esprima@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + espurify@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" @@ -1231,6 +1274,17 @@ glob@^7.0.3, glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^9.0.0: version "9.16.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" @@ -1627,6 +1681,13 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" +js-yaml@^3.7.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^3.8.2: version "3.8.4" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" @@ -1870,6 +1931,12 @@ minimatch@^3.0.0, minimatch@^3.0.2: dependencies: brace-expansion "^1.0.0" +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2108,6 +2175,10 @@ path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -2423,6 +2494,12 @@ resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" +resolve@^1.3.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -2450,6 +2527,10 @@ semver-diff@^2.0.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -2606,6 +2687,12 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" +supports-color@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + symbol-observable@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" @@ -2683,6 +2770,33 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tslib@^1.8.0, tslib@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.1.tgz#6946af2d1d651a7b1863b531d6e5afa41aa44eac" + +tslint@^5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" + dependencies: + babel-code-frame "^6.22.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.7.0" + minimatch "^3.0.4" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.12.1" + +tsutils@^2.12.1: + version "2.16.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.16.0.tgz#ad8e83f47bef4f7d24d173cc6cd180990c831105" + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"