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

am-mocktimes

v4.0.4

Published

Let's enjoy mock creation / pattern management and increase break time.

Downloads

29

Readme

am-mocktimes

am-mocktimes Dev Token

モック生成・パターン管理ツールです。

Sample Page

Recommended environment

| Node.js | npx | npm | | --- | --- | --- | | >= 10.15.3 | >= 6.4.1 | >= 6.4.1 |

start with Vite

npm i am-mocktimes vite @sveltejs/vite-plugin-svelte @rollup/plugin-yaml -D

npx am-mocktimes template # generate template

add vite.mock.config.js

import { defineConfig } from "vite";
import svelte from "@sveltejs/vite-plugin-svelte";
import yaml from "@rollup/plugin-yaml";
import { resolve } from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [svelte(), yaml()],
  build: {
    rollupOptions: {
      input: {
        main: resolve(__dirname, "index.html"),
        patterns: resolve(__dirname, "mock/testbed/index.html"),
        mock: resolve(__dirname, "mock/testbed/mock.html"),
      },
    },
  },
  server: {
    open: "/mock/testbed/index.html",
  },
});

Start

npx vite --config=vite.mock.config.js

How to use

テンプレートファイル生成後、以下のファイルが出来上がります。

# モック
mock/
  mock-config.js # モック画面 - 設定ファイル
  patterns.yml # パターン一覧画面 - 設定ファイル

  testbed/
    index.html # パターン一覧画面
    index.js # パターン一覧画面js
    mock.html # モック画面
    mock.js # モック画面js

# アプリケーション本体
index.html
src/
  main.js

これらのファイルを設定・編集することでパターンが作れます。

config mock/patterns.yml

モック一覧の表示・設定に利用します。

以下が設定例です。

settings:
  url: mock.html
No Plan: []
Plan A:
  func: [setPlan, A]
  switch:
    Earth: [goLocation, Earth]
    Mars: [goLocation, Mars]
    Sun: [goLocation, Sun]
Plan B: [setPlan, B]
plan Z:
  funcs:
    - [setPlan, Z, DragonBall]
    - [dbz.open]

reseved property

settings.url: String

別URLに切り替えたいときは、このpropertyを設定します。 設定したobject配下に適用されます。

settings.target: String

デフォルトは browser になります。この設定により、パターン一覧画面からモックを表示する際に iframe が使われるようになります。 electron に指定すると、モック表示に webview が使われ Node.js を実行出来るようになります。

func: Array

配列の先頭に関数名、2つ目以降は、引数として扱われるものになります。 これを指定することで、固有のURLが作られ、後述するactionを呼び出すトリガーになります。 関数名は ドット . を繋げることで、object 階層を表すことが出来ます。 action propertyに直接この値を定義することで、 func propertyを省略できます。

※ ここの値に # は利用できません。

funcs: Array[func, func, ...]

func を複数定義できます。funcと同様、省略可能です。

switch: Object

スイッチボタンによる、モック切り替えが可能です。 switch配下の設定も、他と同様に reserved propert を使えます。

description: String

モック一覧の横に説明書きとして表示されます。改行可能。

noLink: Boolean

リンク機能をオフにします。子ページだけがアクションを持つときに利用します。

action property

reserved property 以外は全て action property となり、pattern list 表示用に利用されます。

config mock/mock-config.js

モックページで呼び出される、アクションを定義します。

以下が設定例です。

import mock from 'am-mocktimes'

const action = {
  setPlan (name, world = null) { // multiple arguments can be received
    // setPlan
  },
  async goLocation (location) {
    // await go location
  },
  dbz: {
    start () {
      // DragonBall open
    },
    close () {
      // DragonBall close
    }
  }
}

mock(action)

mock(action: MockAction)

この関数を呼び出すことで、モック状態を生成します。

func で定義した関数名を、keyで持つobjectとなります。 objectは階層を持つことが出来ます。その場合の func の指定は、 func: [dbz.start] のように、 . でつなぎます。

addons

  • screenshot - 各モックページのスクリーンショットを保存します。

Development

start

npm start

publish

npm run build
npm version <patch|minor|major|prerelease>
npm publish