npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

addrun-plug

v0.0.1

Published

Menambahkan fitur dan mendesain sistem yang sangat modular dengan menggunakan pendekatan berbasis plugin.

Downloads

70

Readme

Untuk memungkinkan pengguna menambahkan fitur atau memodifikasi fungsionalitas aplikasi tanpa mengubah kode inti, Anda bisa mendesain sistem yang sangat modular. Salah satu cara untuk melakukannya adalah dengan menggunakan pendekatan berbasis plugin, yang memungkinkan pengguna untuk menambahkan plugin baru yang akan diintegrasikan ke dalam aplikasi tanpa memodifikasi kode inti.

Dengan menggunakan universal-plugin-system, kita dapat membuat aplikasi yang dapat diperluas dengan menambahkan plugin baru tanpa merubah kode inti aplikasi.

Berikut adalah langkah-langkah dan contoh untuk mengimplementasikan sistem yang memungkinkan pengguna menambahkan fitur baru dengan plugin tanpa mengubah kode inti:

Langkah 1: Menyediakan API untuk Menambahkan Plugin

Agar pengguna bisa menambahkan fitur baru tanpa mengubah kode inti, Anda harus menyediakan API yang memungkinkan mereka untuk mendaftarkan plugin mereka. Dalam hal ini, kita akan menggunakan universal-plugin-system untuk mengelola plugin.

Berikut adalah contoh bagaimana API ini bisa disusun:

core.js (Kode Inti):

import ups from 'universal-plugin-system';

// Instance untuk aplikasi inti
const system = ups();

// Fungsi untuk menambahkan plugin
const addPlugin = (plugin) => {
    system.use(plugin);
};

// Fungsi untuk menjalankan plugin
const runPlugin = () => {
    system.run(() => {
        console.log('Semua plugin selesai dijalankan!');
    });
};

// Ekspor fungsi-fungsi untuk digunakan di luar
export { addPlugin, runPlugin };

Langkah 2: Membuat Plugin Kustom

Setiap plugin bisa menambahkan fungsionalitas baru dengan cara yang tidak memengaruhi kode inti aplikasi. Pengguna hanya perlu membuat plugin mereka dan mendaftarkannya menggunakan API yang telah disediakan (addPlugin).

user-plugin.js (Plugin Kustom Pengguna):

const userPlugin = {
    run: async () => {
        console.log('Plugin Pengguna mulai...');
        await new Promise((resolve) => setTimeout(resolve, 1000)); // Simulasi penundaan
        console.log('Plugin Pengguna selesai!');
    },
};

// Ekspor plugin pengguna
export default userPlugin;

Langkah 3: Menggunakan Plugin Kustom

Pengguna dapat menambahkan plugin mereka ke dalam aplikasi dengan mengimpor addPlugin dari core.js dan menambahkan plugin mereka.

main.js (Menggunakan Plugin Kustom):

import { addPlugin, runPlugin } from './core.js'; // Mengimpor API dari aplikasi inti
import userPlugin from './user-plugin.js'; // Mengimpor plugin kustom pengguna

// Menambahkan plugin pengguna ke system
addPlugin(userPlugin);

// Menjalankan plugin
runPlugin();

Langkah 4: Menambahkan Fitur Baru Tanpa Mengubah Kode Inti

Dengan cara ini, pengguna hanya perlu membuat file plugin mereka (seperti user-plugin.js) dan menambahkannya ke system menggunakan fungsi addPlugin. Mereka tidak perlu mengubah kode inti (core.js), cukup menggunakan API yang sudah disediakan untuk menambahkan plugin mereka sendiri.

Contoh Penambahan Fitur Tanpa Merubah Kode Inti:

  1. Plugin Pengguna: Pengguna bisa membuat plugin seperti user-plugin.js dengan logika tambahan, misalnya menambah notifikasi, validasi, atau bahkan fungsionalitas baru lainnya.

  2. Menambahkan Plugin: Pengguna hanya perlu mengimpor dan menambahkan plugin ke system menggunakan addPlugin(userPlugin) dalam file mereka tanpa merubah kode utama.

  3. Fleksibilitas: Setiap kali pengguna ingin menambahkan fitur baru, mereka hanya perlu menulis plugin baru dan menambahkannya ke system, menjaga kode inti tetap bersih dan terpisah.

Keuntungan:

  • Modularitas: Pengguna dapat menambahkan atau mengganti fungsionalitas tanpa memengaruhi kode inti. Kode utama hanya perlu menyediakan API untuk menambahkan plugin.
  • Fleksibilitas: Pengguna dapat mengubah atau menambah fungsionalitas dengan membuat plugin baru sesuai kebutuhan mereka.
  • Keamanan dan Pemeliharaan: Fitur baru atau perubahan tidak merusak aplikasi utama, sehingga aplikasi lebih stabil dan mudah dipelihara.

Dengan pendekatan ini, aplikasi menjadi lebih mudah untuk diperluas, dan setiap fitur tambahan dapat ditambahkan melalui plugin tanpa merusak atau mengubah kode inti aplikasi.