Comments (5)
The one from the TS compiler doesn't always work after running through the fairly simple ASP.Net bundling & minification as it can strip the ';' off the end of the generated function's return statement. By that I mean you get
function(){return x.something}
rather than
function(){ return x.something; }
and the ';' makes all the difference
I've slightly tweaked it for my use now, with some brief smoke tests
var nameExtractorRegex = /return (.*);/;
var nameExtractorRegexNoTrailingSemi = /return (.*)/;
/** Get the name using a lambda so that you don't have magic strings */
export function getName(nameLambda: (o?:any) => any) {
var m = nameExtractorRegex.exec(nameLambda + "");
if (m == null) {
m = nameExtractorRegexNoTrailingSemi.exec(nameLambda + "");
if (m == null) {
throw new Error("The function does not contain a statement matching 'return variableName'");
}
}
var access = m[1].split('.');
var name = access[access.length - 1];
//prevent trailing whitespace, '}'
while (name[name.length - 1] === '}' || name[name.length - 1] === ' ') {
name = name.substr(0, name.length - 1);
}
return name;
}
from typescript-book.
Yes that's a better approach 👍
I'll update my code later and report back if I have issues.
from typescript-book.
My RegEx foo leaves a lot to be desired
from typescript-book.
Handy! Thanks :)
from typescript-book.
You can do const nameExtractorRegex = /return (.*);?/;
to say that ;
is optional but still not a part of the capture group 🌹
from typescript-book.
Related Issues (20)
- Suggest type addition: never
- Wrong: All members must conform to the string index signature? HOT 1
- Ebook formats no longer available HOT 4
- Questions about section "Index Signatures"
- Link is broken HOT 1
- improve readability of tip in motivation and samples section of generics.md
- New section on Assertion Functions?
- Build fails at pdf file creation (calibre problem) HOT 4
- style guide doesn't provide a reason for prefering interface for object typing
- Example of "All members must conform to the string index signature" looks wrong to me
- [ FEATURE REQUEST ] TypeScript could fix broken "const" variable declaration in JavaScript HOT 2
- Getting started page "extension i wrote" link is broken
- Truthy conversion: swtich from double negation to Boolean?
- All actions/builds are failing. Cannot download .epub version. HOT 9
- Cannot download PDF version of the ebook HOT 1
- What is place in module lookup HOT 1
- Hi,I have a question about ts equal check. HOT 1
- PDF can not be build HOT 1
- Can we use your ts style guide in our project?
- Review links lead nowhere HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typescript-book.