@allquire/core
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

AllQuire

Require from Anywhere & Typescript Dynamic Require

npm

Language I18N PRs Welcome License

Require from anywhere & Typescript dynamic require.

🌟 Features

  • Require from anywhere.

Feel free to require even the module hasn't been installed. Packages will be installed when the allquire() calls for the first time.

Why should packages be installed during runtime?

This greatly increases the convenience for users to use the program. Imagine a scenario that a system has many extensible plugins, but users only want to use a few plugins usually. In this case, it is not appropriate to include all plugins in the application package.

AllQuire is an excellent solution to this problem. You can let users provide a list of plugins with options into a config file, and import it using cosmiconfig, or use the companion GUI to generate the list for your application.

An example working in progress is VkiQ.

  • Typescript dynamic require.

Typescript is not as flexible as JavaScript because it does not support changing the module ID of require at runtime. Use AllQuire to dynamically provide module ID and require the module you want.

Why I need dynamic require in Typescript?

Imagine a scenario that your Typescript backend service needs to dynamically import all routes from the api folder and apply them when it starts. At this time, you may need to use for.. of to traverse each route, but Typescript does not support dynamically providing the module ID that needs to be required.

AllQuire can solve this problem. Just use allquire(route) to require them.

💨 Install

Install with yarn:

yarn add @allquire/core

Install with npm:

npm i -S @allquire/core

👉 Usage

Use with JavaScript:

const allquire = require('@allquire/core')
const greeting = await allquire(
  'https://npmjs.com/package/@allquire/hello-world'
)
console.log(greeting()) // Hello World!

Use with TypeScript:

import allquire from '@allquire/core'
const greeting: HelloWorld = await allquire(
  'https://npmjs.com/package/@allquire/hello-world'
)
console.log(greeting()) // Hello World!

💬 BUGs & Issues

Feel free to open issues.

💻 Contributions

PRs are welcome! Feel free to contribute on this project.

Plugin Contributions

Feel free to make AllQuire Plugins and add a line in plugins.js!

LICENSE

MIT

Package Sidebar

Install

npm i @allquire/core

Weekly Downloads

2

Version

0.1.5

License

MIT

Unpacked Size

7.82 kB

Total Files

6

Last publish

Collaborators

  • afanyiyu