{% extends '../base.html.twig' %}

{% block body %}
  <div class="container-fluid">
    <div class="row flex-xl-nowrap">
      {% include '../../documentation/navbar.html.twig' with {
        'route' : nodefony.route
      } %}
      <main class="col-12 col-md-9 col-xl-8 py-md-3 pl-md-5" style="top: 5rem;">
        <h1>Nodefony Library</h1>


        <h2> Use Nodefony as a Library</h2>
        <h3> Initialize a new node.js Project</h3>
        <pre><code class="hljs console" ><span class="unselectable">$ </span>mkdir project

<span class="unselectable">$ </span>cd project/

$ npm init
...

$ ls
-rw-r--r--  1 cci staff  203  3 avr 20:12 package.json

$ npm install nodefony

⸨░░░░░░░░░░░░░░░░░░⸩ ⠋ ...

$ touch index.js

$ ls
-rw-r--r--     1 cci  staff       0  3 avr 20:18 index.js
drwxr-xr-x  1220 cci  staff   39040  3 avr 20:18 node_modules/
-rw-r--r--     1 cci  staff  714132  3 avr 20:18 package-lock.json
-rw-r--r--     1 cci  staff     253  3 avr 20:18 package.json
        </code></pre>

        <h3> Add  start commnand </h3>
        <pre><code class="hljs console" ><span class="unselectable">$</span> vim package.json

{
  "name": "project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    <h3>"start":"node index.js"</h3>
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "nodefony": "^4.3.1"
  }
}
        </code></pre>

        <h3> Add Dependency  nodedony in index.js</h3>
        <pre><code class="hljs console">$ vim index.js

  const nodefony = require("nodefony");
  console.log(nodefony.version);

        </code></pre>

        <h3> Run Script</h3>
        <pre><code class="hljs console">$ npm start

> project@1.0.0 start /Users/cci/repository/project
> node index.js

4.3.1
          </code></pre>
          <h4>If you prefer have an executable File</h4>
          <pre><code class="hljs console">$ chmod +x index.js

// add hashbang #!/usr/bin/env node

$ vim index.js

#!/usr/bin/env node

const nodefony = require("nodefony");
          </code></pre>

        <h3> Now you can use nodefony as Library !</h3>

        <pre><code class="hljs console">$ vim index.js
          
#!/usr/bin/env node
const nodefony = require("nodefony");

const project = new nodefony.cli("project", {
  version: nodefony.version,
  onStart: (cli) => {
    cli.showBanner();
    cli.log("start");
  }
});
        </code></pre>
        <pre><code class="hljs console">$ npm start
                                         _                 _
                _ __    _ __    ___     (_)   ___    ___  | |_
               | '_ \  | '__|  / _ \    | |  / _ \  / __| | __|
               | |_) | | |    | (_) |   | | |  __/ | (__  | |_
               | .__/  |_|     \___/   _/ |  \___|  \___|  \__|
               |_|                    |__/

            Version : 4.3.1 Platform : darwin Process : project PID : 40258


   Wed Apr 03 2019 21:43:11 INFO project : start
$
        </code></pre>

      </main>
    </div>
  </div>
{% endblock %}
