A Function.tag proposal?
François REMY
francois.remy.dev at outlook.com
Mon Jun 22 11:02:50 UTC 2020
What exactly are you proposing to do differently than String.raw?
https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/string/raw
Sent from my phone
________________________________
From: es-discuss <es-discuss-bounces at mozilla.org> on behalf of Andrea Giammarchi <andrea.giammarchi at gmail.com>
Sent: Monday, June 22, 2020 12:24:13 PM
To: es-discuss at mozilla.org <es-discuss at mozilla.org>
Subject: A Function.tag proposal?
This is something somehow bothering developers and tools, sooner or later, the need for a no-op template literal tag function that just returns the string as is.
The current workaround to have highlights, proper content minification, etc, is the following one:
```js
import css from 'dummy-tag';
import html from 'dummy-tag';
const style = css`
body {
color: green;
}
`;
const node = html`
<div>hello world</div>
`;
```
but as irrelevant as the dummy-tag code is, in size, it's a dependency, and a function that can't get easily optimized, due the nature of the tag signature.
### Proposal
Provide a static `Function.tag` which internally flattens out any template literal content.
```js
const css = Function.tag;
const html = Function.tag;
const style = css`
body {
color: green;
}
`;
const node = html`
<div>hello world</div>
`;
```
Internally it will place eventual interpolations within template chunks, and return a string.
```js
Function.tag`1${2}3` === '123';
```
That's it. Thoughts?
Best Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20200622/0aff8306/attachment.html>
More information about the es-discuss
mailing list