acyort-extend

Extends for AcyOrt

Usage no npm install needed!

<script type="module">
  import acyortExtend from 'https://cdn.skypack.dev/acyort-extend';
</script>

README

acyort-extend

Build Status codecov

Extends for AcyOrt

Install

$ npm i acyort-extend -S

Usage

scripts

// scripts/export.js
module.exports = { a: 1 }

// scripts/init.js
const data = require(require.resolve('./export'))
acyort.logger.info(acyort.config.scripts_dir)

// scripts/promise.js
acyort.scripts.push(
  data => {
    return new Promise(reslove => {
      setTimeout(() => {
        acyort.logger.info(data)
        reslove()
      }, 1000)
    })
  }
)

plugins

// package.json
{
  "name": "module",
  "version": "0.0.0",
  "main": "index.js"
}

// index.js
const path = require('path')
 acyort.logger.info(path.join(process.cwd(), 'change'))

run

const Extend = require('acyort-extend')
const Logger = require('acyort-logger')

const config = {
  scripts_dir: 'scripts',
  base: process.cwd(),
  scripts: [
    'init.js',
    'promise.js'
  ],
  plugins: [
    'module'
  ]
}

class Acyort {
  constructor() {
    this.logger = new Logger()
    this.config = config
    this.scripts = []
    this.extend = new Extend(this, ['logger', 'config', 'scripts'])
  }
}

function run(scripts, data) {
  return Promise.all(scripts.map(script => script(data))).then(() => data)
}

const acyort = new Acyort()

acyort.extend.init()
  .then(() => run(acyort.scripts, 'promise'))

/*
log result:

scripts
.../acyort-extend/change
promise
*/