Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Adds the TypeScript transformer - #7191

Merged
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts
Mar 18, 2016
Merged

Adds the TypeScript transformer#7191
Ron Buckton (rbuckton) merged 67 commits into
transforms-printerfrom
transforms-transformer-ts

Conversation

@rbuckton

Copy link
Copy Markdown
Contributor

The TypeScript transformer is designed to remove or transform most TypeScript-specific syntax.

This transformer elides TypeScript-specific nodes such as:

  • Interfaces
  • Type Aliases
  • Type Annotations
  • Ambient Declarations
  • TypeScript-specific modifiers (e.g. abstract, public, private, etc.)
  • implements heritage clauses on classes
  • Type assertions
  • Type parameter lists
  • Type argument lists

In addition, it transforms TypeScript-specific syntax into compatible down-level syntax, including:

  • Decorators
  • Async Functions
  • Property Declarations
  • Parameter property initializers
  • Enums
  • Namespaces
  • Exported declarations inside of a Namespace.

Some TypeScript-specific syntax will remain, specifically import and export declarations that will be handled directly by a later module transformation.

Related Pull Requests:

Review on Reviewable

@rbucktonRon Buckton (rbuckton) changed the title Adds a TypeScript to ES7 transformerAdds the TypeScript transformerFeb 23, 2016
@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed.


src/compiler/transformers/destructuring.ts, line 23 [r1] (raw file):
"highlight" is vague, I can't tell if this is for a future correspondence between transformations or sourcemaps or something else


src/compiler/transformers/destructuring.ts, line 28 [r1] (raw file):
This gets a little hard to read. Please use complete sentences.


src/compiler/transformers/destructuring.ts, line 40 [r1] (raw file):
I don't see the definition of inlineExpressions.


src/compiler/transformers/destructuring.ts, line 231 [r1] (raw file):
Cache length, use below


src/compiler/transformers/destructuring.ts, line 267 [r1] (raw file):
You already have numElements above


src/compiler/transformers/destructuring.ts, line 279 [r1] (raw file):
numElements


src/compiler/transformers/destructuring.ts, line 300 [r1] (raw file):
These are getting somewhat difficult to reason about. The variable is named object, but that's vague enough that I though this was an object literal or binding pattern for whatever reason.


src/compiler/sourcemap.ts, line 70 [r1] (raw file):
I don't know what this is, leave a hefty comment on what it is and why I need it.


src/compiler/transformer.ts, line 29 [r1] (raw file):
Should we conditionally transform modules? Or is it better to unconditionally transform just in case?


Comments from the review on Reviewable.io

@DanielRosenwasser

Copy link
Copy Markdown
Member

Review status: 0 of 12 files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.


src/compiler/transformers/ts.ts, line 210 [r4] (raw file):
Just write "they will be emitted as part of transformClassDeclaration"

If these constructs are taken care of by transformClassDeclaration, shouldn't these branches be unreachable?


Comments from the review on Reviewable.io

Ron Buckton (rbuckton)and others added 26 commits March 1, 2016 15:59
Ron Buckton (rbuckton) added a commit that referenced this pull request Mar 18, 2016
@rbuckton
Ron Buckton (rbuckton) merged commit ca9148e into transforms-printerMar 18, 2016
@rbuckton
Ron Buckton (rbuckton) deleted the transforms-transformer-ts branch March 18, 2016 23:31
@microsoftMicrosoft (microsoft) locked and limited conversation to collaborators Jun 19, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rbuckton@DanielRosenwasser@msftclas