Giter Site home page Giter Site logo

adaro's People

Contributors

adaline avatar aks- avatar aredridel avatar erikmueller avatar gabrielcsapo avatar grawk avatar guifromrio avatar jasisk avatar jeffharrell avatar karolisg avatar lensam69 avatar paulomcnally avatar pvenkatakrishnan avatar rragan avatar shaunwarman avatar sixlettervariables avatar tkambler avatar totherik avatar tschiela avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adaro's Issues

Read me seems out-of-date: {_main}

In the docs: "The layout includes a special partial with the dynamic name {_main}". When I generate a new app using Yeoman, the mechanism for inclusion is {+main}

using dust with express

i couldn't get dust to work with express by calling:

var adaro = require('adaro');
app.engine('dust', adaro());

instead, i needed to call:

app.engine('dust', adaro.dust());

is this a documentation error?

This thing dead?

Since there is no reaction to issues and / or PRs for some months I just wanted to know whether adaro is still being developed.

Windows - utils.nameify() issue when removing view path

Just a quick heads-up in case anyone else falls on the same issue I had.

If you follow the Express doc, your definition of the views folder probably looks something like this : app.set('views', process.cwd() + '/templates');

The string concatenation will ignore platform-specific rules and on Windows, your views path will look like this : c:\project\folder/templates, which means nameify() will be unable to remove it from the file path, leading to errors like
Error: ENOENT, open 'c:\project\folder\templates\project\folder\templates\index.dust'

The easiest way to avoid this is to change
app.set('views', process.cwd() + '/templates');
into
app.set('views', path.join(process.cwd(), 'templates'});, which will ensure your platform conventions will be respected.

NB: obviously you need to require the path node module before your app.set().

Eventually, utils.nameify() might try to catch that kind of issues and warn the user of their mistake.

Add ability to provide a global engine extension through Express settings

Hi,

I reopen a new issue for this, since the previous pull request was not valid (by breaking some test cases).
To summarize: I was trying to add the ability to choose your own custom extension (.html, .dust, etc), but I have finally discovered another issue.
If you initialize two engines:

  • adaro.dust
  • adaro.js

Then, the first one is always used.
If you want to render a template 'hello' with your second engine, instead of loading 'hello.js' it tries to load 'hello.dust'.

I think this is because of this test dust.load.name === 'cabbage' which remains true between two engine instances, so the old reader is still used.

How to get dustjs instance from adaro

We upgrading to Kraken 2.0, in our app we use dustjs to prerender multiple templates from different submodules. Before adaro 1.x we can require dustjs from everywhere and we can use it to render or compile different templates. Now adaro use freshy to create it own, separate instance of dustjs even if dustjs-linkedin installed in Kraken node_modules.

Not sure why it was done, but is there anyway to get adaro's dust instance with all helpers to use in app controller?

Possible incompatibility node-email-templates/consolidate

I was using adaro with express and ran into an issue when I need to render HMTL emails using node-email-templates: https://github.com/niftylettuce/node-email-templates. Adaro/dust works great until after I render a single email. After rendering an email it seems that some global adaro/dust state gets corrupted and it is unable to render any of my regular view templates. node-email-templates uses consolidate so I replaced adaro with consolidate and everything works fine.

The rendering blocks / waits infinitely when using partials inside an helper context

Hi,

I've recently migrated from engine-munger to makara and noticed some of my dust helpers don't work anymore. I've finally ended up in adaro which seems to reproduce my issue:
Here is the test using [email protected] only which works as expected:

var dust = require('dustjs-linkedin');

dust.helpers.foo = function (chunk, ctx, bodies, params) {
    chunk.write('[');
    chunk.render(bodies.block, ctx);
    chunk.write(']');
    return chunk;
};

var helloTmpl = dust.compile('Hello world', 'hello');
dust.loadSource(helloTmpl);

var testTmpl = dust.compile('Test: {@foo}{>"hello"/}{/foo}!', 'test');
dust.loadSource(testTmpl);

dust.render('test', { }, function (err, res) {
    console.log(err, res);
});
// null 'Test: [Hello world]!'

Now with [email protected], I define the two views:

{! templates/hello.dust !}
Hello world
{! templates/test.dust !}
Test: {@foo}{>"hello"/}{/foo}!

And the test app:

var express = require('express');
var app = express();
var adaro = require('adaro');

var options = {
    cache: false,
    helpers: [
        function (dust) {
            dust.helpers.foo = function (chunk, ctx, bodies, params) {
                chunk.write('[');
                chunk.render(bodies.block, ctx);
                chunk.write(']');
                return chunk;
            }
        }
    ]
};

app.engine('dust', adaro.dust(options));
app.set('view engine', 'dust');
app.set('views', 'templates');
app.get('/*', function (req, res) {
    res.render(req.path.substr(1));
});

server = app.listen(3000, function () {
    console.log('listening');
});
# node test.js
listening
# curl http://localhost:3000/hello
Hello world
# curl http://localhost:3000/test

Here the second request is somehow in a "waiting" state and nothing is sent back
It can only be reproduced when a partial is inside a helper section.

Need for Brook?

What is the need for Brook for the streaming interface? I'm not understanding why we need to wrap a the provided dust Stream with Brook as it's not doing any sort of transformations, just buffering

npm audit detected a vulnerability

Hello,
npm audit detected a vulnerability in adaro:

                      === npm audit security report ===                        
                                                                                
                                                                                
                                 Manual Review                                  
             Some vulnerabilities require your attention to resolve             
                                                                                
          Visit https://go.npm.me/audit-guide for additional guidance           
                                                                                
                                                                                
  Low             Regular Expression Denial of Service                          
                                                                                
  Package         braces                                                        
                                                                                
  Patched in      >=2.3.1                                                       
                                                                                
  Dependency of   adaro                                                         
                                                                                
  Path            adaro > dustjs-linkedin > chokidar > anymatch > micromatch >  
                  braces                                                        
                                                                                
  More info       https://npmjs.com/advisories/786                              
                                                                                
found 1 low severity vulnerability in 6357 scanned packages
  1 vulnerability requires manual review. See the full report for details.

Can the maintainers address this?
cc: @grawk @gabrielcsapo

Documentation is inaccurate / missing

Adaro's documentation needs some serious work, IMO.

For starters - could someone please provide a simple, fully-functional example that demonstrates the use of layouts within the context of an Express application that doesn't use Kraken? Nothing I've tried seems to work.

You start off by talking about requiring adaro and passing it to Express with various options for defining helpers, etc... Great, I'm with you. Afterwards, when you begin discussing layouts, you reference the dust.render() method. Isn't the point of adaro to provide integration with Express via res.render()? And where did the dust var come from to begin with? It's not explained at all. Did you require dustjs-linked? And this layout option... Are we supposed to pass that into the initial factory method - adaro.dust()? Or are we supposed to pass that for each individual render call?

Take this for example:

dust.render('index', { layout: 'myLayout' }, ...);

What exactly is ...? This is not explained. Does the second parameter get passed to the template as a context? Or do we have to pass in another object for that?

Template Not Found when using partial with root-relative link

We are using adaro 2.0.0-4 with dustjs-linkedin 2.7.0 and dustjs-helpers 1.7.0
The webpage we are trying to render is a dust template and it renders fine... until we add a partial like this:
{>"/shared/page_ready" /}

Using the above partial throws the following error:

Template Not Found: /shared/page_ready

Error: Template Not Found: /shared/page_ready
    at runChain (D:\nodeapps\exp0\node_modules\adaro\node_modules\dustjacket\index.js:56:47)
    at args (D:\nodeapps\exp0\node_modules\adaro\node_modules\dustjacket\index.js:75:32)
    at D:\nodeapps\exp0\node_modules\adaro\lib\engine.js:43:17
    at fs.js:265:20
    at FSReqWrap.oncomplete (fs.js:99:15)

Of course, the page_ready.dust file exists in the [views_folder]/shared folder.
Could you give us a hint about why this error is happening?
Thanks a lot
Alex

adaro/lib/patch/index.js:121:21: TypeError: Cannot read property 'name' of undefined

After I updated dustjs modules in my Kraken application, I get following error while rendering the dust page:

TypeError: Cannot read property 'name' of undefined
   at applied (/abc/GitRepo/sampleApp/node_modules/adaro/lib/patch/index.js:121:21)
   at notApplied (/abc/GitRepo/sampleApp/node_modules/adaro/lib/patch/index.js:126:13)
   at Object.apply (/abc/GitRepo/sampleApp/node_modules/adaro/lib/patch/index.js:113:13)
   at View.engine (/abc/GitRepo/sampleApp/node_modules/adaro/lib/engine.js:92:15)
   at View.render (/abc/GitRepo/sampleApp/node_modules/express/lib/view.js:93:8)
   at EventEmitter.app.render (/abc/GitRepo/sampleApp/node_modules/express/lib/application.js:530:10)
   at ServerResponse.res.render (/abc/GitRepo/sampleApp/node_modules/express/lib/response.js:933:7)
   at ServerResponse.res.render (/abc/GitRepo/sampleApp/node_modules/logger/index.js:164:20)
   at ServerResponse._analytics.res.render (/abc/GitRepo/sampleApp/node_modules/analytics-xxx/lib/node-analytics.js:172:16)
   at serverError (/abc/GitRepo/sampleApp/node_modules/kraken-js/middleware/500.js:30:17)

These are my dustjs modules:

"dusthelpers-supplement": "^1.0.0",
    "dustjs-helpers": "^1.7.3",
    "dustjs-linkedin": "^2.7.0",
    "ppdustjs-filters-secure": "0.0.2",
    "grunt-dustjs": "^1.2.1"

My view engine configuration in config.json:

"view engines": {
        "js": {
            "module": "engine-munger",
            "renderer": {
                "method": "js",
                "arguments": [
                    { "cache": true, "helpers": [ "ppdustjs-filters-secure", "dustjs-helpers" ] },
                    {
                        "views": "config:express.views",
                        "view engine": "config:express.view engine",
                        "i18n": "config:i18n"
                    }
                ]
            }
        }
    },

Any idea why adaro is throwing this error? Is there a specific dustjs version which needs to be used to resolve this error?

context arguments to partials with interpolated string literals

In a dust view I am able to something like this:

{>"widgets/sample":user/}
(pass the user variable to with partial at widgets/sample.

But I would like to do something like this:
{#zone_b}
{>"widgets/{.}":user/}
{/zone_b}
pass the user variable as the context into an iterpolated view.

Is there a way to acheive this?

Unable to use latest dustjs version due to package.json conflict adaro

I receive a version conflict error when deploying to Heroku.

When I specify the latest dustjs-linkedin version (2.3.x as of this writing) in my package.json, the build fails due to a conflicting version being specified in/required by Adaro (and Makara). Both of those require 2.0.x and prevent using the latest versions in context of a deployed heroku app.

Adaro working example

Thank you for Kraken & Adaro. We are trying to migrate our stack.

A working "hello" example for Adaro would be really helpful. It would have helped me.

Also a notice on README about the problem with Dust 2.7.0 -- which I thankfully bumped into while reading every issue, open and close, hoping to find clues.

In my case I tried last week and wasted an hour trying to get Adaro to work and switched to Hoffman. Now that we have migrated to Dust we are looking at Kraken which meant I had to find out what I didn't "get" with Adaro. It took me another hour of frustration to ready every issue ever in Adaro, where, thankfully, I found #50.

It is not intuitive to think the problem is with the Dust library.

I am posting this issue to try and help the next developer.

Also, links on README to closed, but insightful issues are a big help. I think every project should have a list of "Interesting Issues". The don't even need to be introduced; just the links.

Thanks!

Docs seems outdated

Hi

Docs say you can do

var adaro = require('adaro'),
instance = adaro(options);

and those options can pass helpers. But it's not a case anymore, as export from adaro module is not a function. Either this

adaro.dust({ ... })

won't pass helpers, only way that seems working for me is

var dust = adaro.dust({});
dust.dust.helpers = ...

Won't refresh views

After running npm update on my project a week or two ago i've been experiencing abnormalities with adaro cache, it simply won't refresh the views files after changes being made to them although it does refresh but only after stopping and starting nodejs again. I'm quite a amateur with nodejs and i'm confused where to start diagnosing for the issue's root.

Here's how adaro is configured on my project, already ensured that env is in development mode;

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'dust');
app.engine('dust', dustjs.dust({ cache: (app.get('env') == "production") ? true : false }));

express 4.12.2
adaro 2.0.0-1

TypeError: Cannot read property 'substr' of undefined

We have [email protected] with adaro@1.0.0-2 0.1.10 and [email protected]

On production, with pre compiled templates we have this error on some pages:

TypeError: Cannot read property 'substr' of undefined
    at peg$parseraw (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/parser.js:2152:16)
    at peg$parsepart (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/parser.js:410:12)
    at peg$parsebody (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/parser.js:393:12)
    at peg$parsestart (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/parser.js:383:12)
    at parse (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/parser.js:2691:18)
    at Object.compiler.compile (/home/gits/websites/antero/node_modules/dustjs-linkedin/lib/compiler.js:30:27)
    at /home/gits/websites/antero/node_modules/adaro/lib/patch/index.js:82:64
    at /home/gits/websites/antero/node_modules/adaro/lib/reader/js.js:39:13
    at fs.js:336:14
    at /home/gits/websites/antero/node_modules/engine-munger/node_modules/graceful-fs/graceful-fs.js:104:5

Here is template:

{>"layouts/masterNew" /}
{<css_local}
  <link rel="stylesheet" href="/css/bootstrap-datetimepicker.min.css">
{/css_local}
{<body}
{#item}
 .... removed ...
{/item}
{/body}
{<scripts_local}
   .... removed ...  
{/scripts_local}

The problem in those lines

{<css_local}
  <link rel="stylesheet" href="/css/bootstrap-datetimepicker.min.css">
{/css_local}

if I change there word: stylesheet to stylesheets error wont happen.

Again, this only happens with templates after they compiled, in dev env no errors.

Please help.

uncaughtException Can't set headers after they are sent.

Is there a way to improve the stack trace in adaro? I am not able to determine what causing my issue? This only occurs once deployed and not locally.

Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
at ServerResponse.res.setHeader (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/connect-mongodb/node_modules/connect/lib/patch.js:62:20)
at ServerResponse.header (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/express/lib/response.js:717:10)
at ServerResponse.send (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/express/lib/response.js:146:12)
at fn (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/express/lib/response.js:951:10)
at Stub.callback (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/adaro/lib/engine.js:126:22)
at Stub.flush (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/dustjs-linkedin/lib/dust.js:457:10)
at Chunk.end (/var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/dustjs-linkedin/lib/dust.js:567:15)
at /var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/adaro/lib/patch/index.js:85:53
at /var/lib/openshift/53f40f114382ec37cc0005e8/app-root/runtime/repo/node_modules/adaro/lib/reader/js.js:39:13

@eq does not work without @select

We use latest dust (2.6.2) and dust helpers (1.6.2) with adaro (0.1.8) in krakenjs (1.0.3)
When dust template has @eq helper without @select html output nothing:

Data:

sessionHelper = {
  "seo": false,
  "timestamp": 1428589929727,
  "port": 3000,
  "user": {}
}

This is works as expected:

{@select key=sessionHelper.seo}
{@eq value="false" type="boolean"}
    <h1>Select + EQ: The this right</h1>
{:else}
    <h1>Select + EQ: This this wrong</h1>
{/eq}
{/select}

output:
<h1>Select + EQ: The this right</h1>

And this DOES NOT output anything:

{@eq key=sessionHelper.seo value="false" type="boolean"}
  <h1>EQ only: The this right</h1>
  {:else}
  <h1>EQ only: This this wrong</h1>
{/eq}

I thought this a dust issue, but rendering same code from controller with dust.comple and dust.render will output correct lines in both versions.

Also, I was trying to update adaro to latest 2.0.0-x but it wont work with engine-munger that requires "adaro": "~0.1.5"

Here is an example of working code in pure dust, it works as expected: http://jsfiddle.net/7x4z3766/

Looping issue when rendering an object hierarchy to ul/li tags

Hi, sorry this is probably user error rather than an adaro problem with but I'm struggling to make it work, and might be a simple thing I'm missing.

I'm trying to render an object structure such as

{
   name:"Home Page",
   url: "/",
   "sub-page1": {
        name: "Sub Page 1",
        url: "/sub-page1",
        "sub-sub-page1": {
             "name": "Sub Sub Page1",
             "url": "/sub-page1/sub-sub-page1"
        }
    }
}

to something like

  • Home Page
    • ... etc
      with a recursive partial, but I can't seem to loop through the variably named objects without causing an infinite loop.

      My current attempt looks like this, calling itself:

      <li>
          <a href="{url}">{name}</a>{#.}<ul>{>"components/menu/recurlist"/}</ul>{/.}
      </li>
      

Possible to stream without repeated code?

If I understand correctly, if I want to stream my views, I have to do the following:

res.render('index', {
    "async": doSomethingAsync
}, function (err, stream) {
    stream.pipe(res);
});

is there anyway the 3rd argument can be moved elsewhere so I don't have to repeat it for every time I call res.render?

when render data has properties like "views,settings,ext", it will throw errors

when call like this in controller,

var data = {
    "key is not views,settings,ext":"run ok "
   };
    res.render('index', data);

if data has no properties like "views,settings,ext", it can run ok,

BUT,when data has these properties,like this

var data = {
    name: 'test',
    views: 'this is test string!',
    settings: 'this is the data from models',
    ext:'but it will not ok!'
  };
  res.render('index', data);

the programe will throw errors of 503.

I find these errors is caused by adaro\lib\engine.js,adaro\lib\utils.js, in which the above three properties is used as important parameters.

But these properties name can also be used as data for render. When your data has "views,settings,ext" properties name, the programe will core.

You can git checkout my test case to verify it.

where is dustjs defined?

In the README.MD under the
cache (optional, defaults to true) Boolean
it reads:

app.engine('dust', dustjs.dust({ cache: false }));
app.set('view engine', 'dust');

However dustjs is not defined anywhere. Is that a typo and should it be
adaro.dust({ cache: false })

Cannot read property 'replace' of undefined

We are using the following kraken version: "kraken-js": "^1.0.3",

And we are seeing the following error:

2014-12-31 15:06 -06:00: TypeError: Cannot read property 'replace' of undefined
    at Object.nameify (/opt/pm2/lq-mserver/source/node_modules/adaro/lib/utils.js:44:16)
    at engine (/opt/pm2/lq-mserver/source/node_modules/adaro/lib/engine.js:116:22)
    at View.proto.render (/opt/pm2/lq-mserver/source/node_modules/engine-munger/lib/expressView.js:45:9)
    at EventEmitter.app.render (/opt/pm2/lq-mserver/source/node_modules/express/lib/application.js:530:10)
    at ServerResponse.res.render (/opt/pm2/lq-mserver/source/node_modules/express/lib/response.js:904:7)
    at serverError (/opt/pm2/lq-mserver/source/node_modules/kraken-js/middleware/500.js:30:17)
    at serverError (eval at createToggleWrapper (/opt/pm2/lq-mserver/source/node_modules/kraken-js/node_modules/meddleware/index.js:1:0), <anonymous>:1:77)
    at Layer.handle_error (/opt/pm2/lq-mserver/source/node_modules/express/lib/router/layer.js:58:5)
    at trim_prefix (/opt/pm2/lq-mserver/source/node_modules/express/lib/router/index.js:269:13)
    at /opt/pm2/lq-mserver/source/node_modules/express/lib/router/index.js:238:9

I took a look at the code

exports.nameify = function nameify(file, views, ext) {
    // Windows. Ugh.
    views = views && views.replace(CRAZY_SLASHES, '\\\\');

    // Escape special characters in path
    views = views && views.replace(REGEX_SPECIAL_CHARACTERS, "\\$&");

    // Remove absolute path (if necessary)
    file = file.replace(new RegExp('^' + views), '');

    // Remove file extension
    file = file.replace(ext, '');

    // Remove leading slash or drive (platform-dependent, e.g. `c:\\` or '/');
    file = exports.isAbsolutePath(file) ? file.replace(ROOT_DIR, '') : file;

    // Remove remaining leading slashes (if not abs path).
    file = file.replace(LEADING_SEPARATOR, '');

    // Ensure path separators in name are all forward-slashes.
    file = file.replace(ALL_SEPARATORS, '/');

    return file;
};

and the line in question is

file = file.replace(new RegExp('^' + views), '');

So it appears that the file being passed in is undefined.

Any ideas how to further debug this?

Thanks,

bart

Invalid template error

I am facing this error while trying to access my application.
Whats going wrong?

error trace

Error:Invalid template [layouts/master]
Error: Invalid template [errors/500]
at /home/ubuntu/Desktop/click2call/node_modules/adaro/lib/reader/js.js:51:18
at /home/ubuntu/Desktop/click2call/node_modules/makara/lib/cache.js:68:13
at fs.js:266:14
at /home/ubuntu/Desktop/click2call/node_modules/makara/node_modules/graceful-fs/graceful-fs.js:103:5
at Object.oncomplete (fs.js:107:15)

whitespace config option does not work?

app.engine('dust', adaro.dust({
    'whitespace': true
}));
app.set('view engine', 'dust');

This should disable whitespace compression, correct? Isn't doing so for me.

TypeError: Cannot read property 'name' of undefined

Hi all,
I cloned my app which runs fine, on a new server, and I get the following error on npm start, any idea where it could come from?

TypeError: Cannot read property 'name' of undefined at applied (/myApp/node_modules/adaro/lib/patch/index.js:121:21) at notApplied (/myApp/node_modules/adaro/lib/patch/index.js:126:13) at Object.apply (/myApp/node_modules/adaro/lib/patch/index.js:113:13) at View.engine (/myApp/node_modules/adaro/lib/engine.js:96:15) at View.render (/myApp/node_modules/express/lib/view.js:93:8) at EventEmitter.app.render (/myApp/node_modules/express/lib/application.js:566:10) at ServerResponse.res.render (/myApp/node_modules/express/lib/response.js:938:7) at /myApp/controllers/index.js:16:13 at Layer.handle [as handle_request] (/myApp/node_modules/express/lib/router/layer.js:82:5) at next (/myApp/node_modules/express/lib/router/route.js:110:13)

The line mentioned in index.js is :

res.render('index', model);

Tutorials, docs, or code samples of Adaro

I'm building an app using Express/Dust, and am trying to utilize Dust's asynchronous streaming interface. I discovered that Express and Dust don't play well together when it comes to asynchronous rendering, which where Adaro can help.

I'm now trying to implement Adaro into my app. However, I can't find any good examples of how to use Adaro. Are there any resources you could point me to, or could you provide any code samples?

TypeError: require.cache.hasOwnProperty is not a function

This line in my code throws:

app.engine('dust', adaro.dust({}));

Error:

  โ— Test suite failed to run

    TypeError: require.cache.hasOwnProperty is not a function

      at unload (node_modules\freshy\index.js:54:23)
      at getFresh (node_modules\freshy\index.js:20:5)
      at node_modules\freshy\index.js:94:19
      at exports.create (node_modules\adaro\lib\engine.js:43:16)
      at Object.<anonymous> (app.js:53:26)
      at Object.<anonymous> (__tests__\one.test.js:8:11)

Why does it happen? How to solve?

DustJS Requirment

Perhaps package.json should include "dustjs-linkedin" and "dustjs-helpers" as dependencies, these are needed to use the module.

Or is it assumed people will add these dependencies themselves when they use adaro?

Adding dust helpers

Hi,

I am not sure I am looking your documentation correctly for adding a new helper, do you have any examples from Kraken where I would be able to see a helper being added?

Thanks

Localized email templates

I am trying to render localized email templates but its not working for me.

I have had a look at: krakenjs/kraken-js#157

Here is my code based on that issue.

var adaro = require('adaro');

adaro.render('./public/templates/emails/activation', {}, function(error, output){
   if(error){
      console.log(error);
   }
   else{
      console.log(output);
   }
});

The above code does not echo any result on the console.

Detailed answer would help :(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.