Mustache.js: рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдордИ 2019  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: janl/mustache.js

рдирдорд╕реНрдХрд╛рд░!

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ Mustache.js рдХреЗ ES рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреНрдпреЛрдВ?
рдореИрдВ рдбреЗрдиреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реЛ рд░рд╣реА рд╣реИ (рдбреЗрдиреЛ рдХреЗрд╡рд▓ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рдХреЛрдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рд░реЗрдВрдбрд░рд░ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдХрд┐ рдореВрдВрдЫреЛрдВ рдХреЛ рдбреЗрдиреЛ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреЛрд░реНрдЯ рдХрд╛ рдорддрд▓рдм рдПрдХ рдЕрд▓рдЧ рдХреЛрдб рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬрд┐рд╕реЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ рд╕реАрдзреЗ рдореВрдВрдЫреЛрдВ рдореЗрдВ рд░рдЦрдиреЗ рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдн рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореВрдВрдЫреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░реЗрдкреЛ рдореЗрдВ mustache.mjs рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдпрд╛ рдЗрд╕реЗ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрдВрдЫреЗрдВ рдмрджрд▓реЗрдВред

рддреБрдореНрд╣рд╛рд░реЗ рд╡рд┐рдЪрд╛рд░?

рд░реЗрдлрд░реА: https://github.com/denoland/deno_std/issues/391

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ; рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреАрдЖрд░ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реА esm-ify рд╢рд╛рдЦрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЦреЛрд▓рд╛ рд╣реИ, рдореБрдЭреЗ рдЕрдм рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдорд┐рд▓реЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдХреЗрдЬ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ # 724 рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХрд╛рдврд╝рд╛ рдХрд░рдиреЗ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рдмрд╕ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рд╣реИ рдпрд╛ рдорди рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдмрджрд▓рд╛рд╡ рд╣реИрдВред

рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдЬ рд╣рдореЗрдВ mustache.js рдореЗрдВ рдЬреЛ рдорд┐рд▓рд╛ рд╣реИ рдЙрд╕рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдЙрдард╛рдПрдВ - рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдПрдХ рдЖрдЧрд╛рдореА рдкреАрдЖрд░ рдореЗрдВред

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @zekth!

рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдиреЛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реЛрдорд╛рдВрдЪрдХ рдкреНрд▓рд╛рдиреНрд╕ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реВрдВ, рдФрд░ рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдареЛрд╕ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛?

рдпрд╣рд╛рдБ рдПрдХ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд╕реВрд░рдд) рдкреЛрд░реНрдЯ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рдХрд┐рдпрд╛ рд╣реИ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ) https://github.com/zekth/deno_mustache/blob/master/mod.ts

рдореИрдВрдиреЗ рдЕрднреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдкреЛрд░реНрдЯ рдХрд┐рдП рд╣реИрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореВрдВрдЫ рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИрдВ, рдореБрдЦреНрдп рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рдВрдЧрдд рдПрдХ рдФрд░ mjs рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рднреА рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ :)

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ

рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдбреЗрдиреЛ рдХреЗ рд╕рд╛рде рд╢реВрдиреНрдп рдЕрдиреБрднрд╡ рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЫреЛрдЯреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓ рджреВрдВрдЧрд╛:

  1. рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП deno рдХреЛ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ? рдХреНрдпрд╛ рдЗрд╕реЗ .mjs рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ type="module" рдХреЗ package.json рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ?
  2. рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╛рдордХрд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ?
  3. рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣рд╛рдБ рдХрд┐рд╕реА рддрд░рд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ?

..рдФрд░ рдЗрд╕реА рддрд░рд╣, рдХрд┐рд╕реА рднреА рдбрдореА-рд╕реБрд░рд╛рдЧ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдлрд┐рд▓рд╣рд╛рд▓ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдиреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реА рд╣реИред

  1. рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ ES рдореЙрдбреНрдпреВрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг lodash рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреА рд▓реЛрдбрд┐рдВрдЧ HTTP рдлрд╝реЗрдЪрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдХреЛрдИ рдкреИрдХреЗрдЬ json рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВред
  2. рдХреЛрдИ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдирд╣реАрдВ
  3. рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЗрдиреЛ рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдиреЛ рдореЗрдВ рдореВрдВрдЫреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

import * as mustache from 'https://raw.githubusercontent.com/janl/mustache.js/master/mustache.js'
mustache.render(......

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд░рдпрд╛рди рд╕реЗ рдЗрд╕ рд╡рд╛рд░реНрддрд╛ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://www.youtube.com/watch?v=z6JRlx5NC9E

рдардВрдбрд╛!

рддреЛ рдпрд╣рд╛рдБ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдФрд░ рд╕рдВрджрд░реНрдн рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ export рдПрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдпрд╣ рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддрд┐рдпреЛрдВ рдЬреИрд╕реЗ рдХреЙрдордирдЬреЗрдПрд╕, рдПрдПрдордбреА рдЖрджрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ рдЬреЛ рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╣реИред

рдЗрд╕ рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЖрдЬ рднреА рдЖрдИрдЖрдИрдПрдлрдИ рдХреЛ рдореВрдВрдЫ рдХреЗ рд╢рд░реАрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЧрд▓рдд рд╣реВрдВ!

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ .js | .mjs | .ts рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рджрд╛ рдФрд░ рд╕рд░рд▓ export ... рдЬреИрд╕реЗ рдЖрдкрдХреЗ рдкреЛрд░реНрдЯ рдореЗрдВ рд╣реИ: zekth/deno_mustache/mod.ts#L689 ред

рдордЬрд╝рд╛ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рднреА рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЖрдИрдЖрдИрдПрдлрдИ рд░реИрдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕реЛрдЪ: рдФрд░ рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╕рд░реНрд╡рд░ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ + рдмрд╛рдХреА) рдХреЛ рд╕рд┐рдВрдХ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд┐рд▓реНрдб рдЪрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рд╣рдордиреЗ ES рдореЙрдбреНрдпреВрд▓ рд╢реИрд▓реА рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдПрдХ рдмрд┐рд▓реНрдб рдЪрд░рдг рдЗрд╕реЗ рдЧреИрд░-ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдЬ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИред рдпрд╛ рджреВрд╕рд░реА рддрд░рдл рдЕрдЧрд░ рд╡рд╣ рдХрдо рдШреБрд╕рдкреИрда рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рдЫреЛрдЯреЗ рдХрджрдо рдЙрдард╛рдиреЗ рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рдпрджрд┐ рд╣рдо ES рдореЙрдбреНрдпреВрд▓ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдирд┐рд░реНрдпрд╛рдд рдЯрд╛рдЗрдкрдкреАрдл рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдпрд╛ рди рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреМрд░ рдХрд░рддреЗ рд╣реИрдВ?

рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╕реБрдзрд╛рд░ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рд╣реИрдВ, рдкрд╣рд▓рд╛ рдХрджрдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреИрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрдордирдЬ / ES5 / ES6 рдЬреИрд╕реА рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реА рддрд░рд╣ ( https://www.typescriptlang.org/docs/handbook/compiler-options .рдПрдЪрдЯреАрдПрдордПрд▓)ред TS рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо ES6 рдХреЛрдб рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдУрд╣ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ! рдЯреАрдПрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдИрдПрд╕ -> рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рд╢рдВрд╕рдиреАрдп рдЯреАрдПрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдмрд╛рдж рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдмрдирд╛ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдПрдХ рд╢реЙрдЯ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ? рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдХрдо рд╕реЗ рдХрдоред рднрд╡рд┐рд╖реНрдп рдХреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдареЛрд╕ рд╣реЛрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

рдореИрдВ рдПрдХ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдореЗрд░рд╛ рдкреНрд░рдорд╛рдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ (рдпрд╛ рдмреЗрдмреЗрд▓) рдХреЗ рдмрдЬрд╛рдп рд░реЛрд▓рдЕрдк.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реБрдЖ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдпреВрдПрдордбреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХрд╛рд░рдг - рд╣рдореЗрдВ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рдЖрдк рдЗрд╕реЗ рдбреЗрдиреЛ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рд░рди рджреЗрдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? phillipj/mustache.js#esm-ify Mustache.mjs

@phillipj рдХрд░реЗрдВрдЧреЗ!

рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╣реИрдВ:

error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ file:///Users/vlegoff/projects/genesys/github/telemetry/t/mustache.ts:10:23

10 var output = mustache.render('{{title}} spends {{calc}}', view);
                         ~~~~~~

error TS2554: Expected 2 arguments, but got 1.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:525:52

525   var context = (view instanceof Context) ? view : new Context(view);
                                                       ~~~~~~~~~~~~~~~~~

  An argument for 'parentContext' was not provided.

    тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:377:25

    377 function Context (view, parentContext) {
                                ~~~~~~~~~~~~~


error TS2339: Property 'escape' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:640:21

640     return mustache.escape(value);
                        ~~~~~~

error TS2339: Property 'clearCache' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:659:10

659 mustache.clearCache = function clearCache () {
             ~~~~~~~~~~

error TS2339: Property 'parse' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:668:10

668 mustache.parse = function parse (template, tags) {
             ~~~~~

error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:678:10

678 mustache.render = function render (template, view, partials, tags) {
             ~~~~~~

error TS2339: Property 'to_html' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:690:10

690 mustache.to_html = function to_html (template, view, partials, send) {
             ~~~~~~~

error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:693:25

693   var result = mustache.render(template, view, partials);
                            ~~~~~~

error TS2339: Property 'escape' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:704:10

704 mustache.escape = escapeHtml;
             ~~~~~~

error TS2339: Property 'Scanner' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:707:10

707 mustache.Scanner = Scanner;
             ~~~~~~~

error TS2339: Property 'Context' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:708:10

708 mustache.Context = Context;
             ~~~~~~~

error TS2339: Property 'Writer' does not exist on type '{ name: string; version: string; tags: string[]; }'.

тЦ║ https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:709:10

709 mustache.Writer = Writer;
             ~~~~~~


Found 12 errors.

рдХреЛрдб:

import mustache from 'https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs';

var view = {
  title: 'Joe',
  calc: function() {
    return 2 + 4;
  },
};

var output = mustache.render('{{title}} spends {{calc}}', view);

console.log(output);

рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреА .mjs рдлрд╝рд╛рдЗрд▓ рдкрд░ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдм рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдВрджрд░реНрдн рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдереА, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╢реБрд░реБрдЖрддреА рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рднреА рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ, рдХреБрдЫ рд╣рдж рддрдХ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдиред рдлрд┐рд░ рднреА рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕рдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЙрд╕рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдерд╛ред

рдЬрд┐рд╕ рдмрд╛рдд рд╕реЗ рдореИрдВ рдЦреБрд╢ рдирд╣реАрдВ рдерд╛, рд╡рд╣ рдпреВрдПрдордбреА рдХреЛрдб рдерд╛ рдЬреЛ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рддреЗрдВ:

  1. рдЗрд╕рдореЗрдВ рдкреИрдХреЗрдЬ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рд╣реИ (рд╕реЛрдЪреЗрдВ window.Mustache )ред рдпрд╣ рд╣рдорд╛рд░реЗ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИред
  2. CommonJS рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдЗрд╕ рдкреИрдХреЗрдЬ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖ рд░рд╣рд╛ рд╣реИ module.exports.default рдмрдЬрд╛рдп module.exports ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд╣реА рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм CommonJS require() рдПрдХ ES рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдпрд╣ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдмрдЪрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рдирд╛, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкрд╛рдЗрд▓рд░/рдмрдВрдбрд▓рд░ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рджреЛ рдЪреБрдиреМрддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдХреА рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рд░реЛрд▓рдЕрдк.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдпрд╣ рдпреВрдПрдордбреА рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рд╕реВ; рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рд╕рдордп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рдереА рдХрд┐ рд╣рдо рдЕрднреА рддрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХреНрд░рдордг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ deno рдорджрдж рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рднреА рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ ES рдореЙрдбреНрдпреВрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рд╕рдордЭрд╛ рд╣реЛрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдБ рдХреА рддрд░рд╣ рдореВрдВрдЫреЛрдВ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рд╣реИ:
https://github.com/janl/mustache.js/blob/master/mustache.js#L14

рдФрд░ рдпрд╣ рднреА: https://github.com/janl/mustache.js/blob/master/mustache.js#L536
new Context(view, null) рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдирд╣реАрдВ рд▓рдЧрддрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдореВрдВрдЫреЛрдВ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рд╣реИ ..

рдЖрдк рд╢рд╛рдпрдж рд╕рд╣реА рд╣реИред .mjs рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдпреВрдПрдордбреА рд░реИрдкрд░ рд╕реЗ рдкрд╛рд░рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдо рд╕реЗ рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:

var mustache = {
  name: 'mustache.js',
  version: version,
  tags: [ '{{', '}}' ]
}

рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рджреЗрдЦрдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреЛ рдЙрди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ ЁЯСН

рдирдП рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ, рдЕрд╢рдХреНрдд)

рд▓рдЧрднрдЧ .. new Context(view, undefined) рдПрдХ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ?

рд╣рд╛рдБ new Context рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИ

рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ :)

рдпрд╣рд╛рдВ рдкреАрдЖрд░ рд╣реИ: https://github.com/phillipj/mustache.js/pull/1
рд╕реАрдЖрдИ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЙрди рд▓рд╛рдЗрдирд┐рдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдорд┐рд▓рд╛

рдмрдврд╝рд┐рдпрд╛, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╡реНрдпрд╕реНрдд рд╣реВрдВ, рдореИрдВ рд╕рдкреНрддрд╛рд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ; рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреАрдЖрд░ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реА esm-ify рд╢рд╛рдЦрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЦреЛрд▓рд╛ рд╣реИ, рдореБрдЭреЗ рдЕрдм рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдорд┐рд▓реЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдХреЗрдЬ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ # 724 рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХрд╛рдврд╝рд╛ рдХрд░рдиреЗ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рдмрд╕ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рд╣реИ рдпрд╛ рдорди рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдмрджрд▓рд╛рд╡ рд╣реИрдВред

рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдЬ рд╣рдореЗрдВ mustache.js рдореЗрдВ рдЬреЛ рдорд┐рд▓рд╛ рд╣реИ рдЙрд╕рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдЙрдард╛рдПрдВ - рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдПрдХ рдЖрдЧрд╛рдореА рдкреАрдЖрд░ рдореЗрдВред

728 рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЦреЛрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕