Skip to content

Latest commit

 

History

History
151 lines (110 loc) · 11.9 KB

File metadata and controls

151 lines (110 loc) · 11.9 KB

🚀 nullmock

English Türkçe Azərbaycanca Русский ქართული

ელვისებურად სწრაფი, ნულოვანი დამოკიდებულების (zero-dependency) მქონე, ფაილურ სისტემაზე დაფუძნებული mock API სერვერი მონაცემთა გენერაციის ჭკვიანი ძრავით.

Nullmock კითხულობს თქვენს .json ფაილებს, იჭერს დინამიკურ URL მარშრუტებს, როგორიცაა /api/users/[id], ესმის მოთხოვნის პარამეტრები (query parameters) და ჯადოსნურად აგენერირებს დიდი რაოდენობით ყალბ (fake) მონაცემებს ჩაშენებული ლექსიკონების ან მონაცემთა ტიპების ჭკვიანი გამოცნობის ძრავის გამოყენებით.

✨ მახასიათებლები

  • ნულოვანი დამოკიდებულება: სუფთა Node.js. არანაირი express, faker ან გადატვირთული node_modules საქაღალდეები.
  • ფაილური სისტემის მარშრუტიზაცია: საქაღალდეები განსაზღვრავს თქვენს API მარშრუტებს (მაგ., mocks/api/users/[id]/GET.json).
  • მონაცემთა ჭკვიანი ძრავი: ავტომატურად იცნობს მონაცემთა ტიპებს JSON-ის გასაღებებიდან (მაგ., ქმნის რეალურ თარიღებს created_at-სთვის, ელ-ფოსტას user_email-სთვის).
  • ჩაშენებული ლექსიკონები (Locales): გამოიყენეთ ტეგები, როგორიცაა {{firstName:ka}} ან {{city:ka}}, რეალისტური ლოკალიზებული მონაცემების შესაქმნელად.
  • Repeat ბრძანება: შექმენით 100 მომხმარებელი მილიწამში, უბრალოდ დაამატეთ "_repeat": 100 თქვენს შაბლონში.
  • ბიბლიოთეკის რეჟიმი: დააიმპორტეთ ძრავი პირდაპირ თქვენს Node.js სკრიპტებში სერვერის გაშვების გარეშე.

📦 ინსტალაცია და სწრაფი დაწყება

გაუშვით შემდეგი ბრძანება თქვენი პროექტის მთავარ საქაღალდეში სტრუქტურის შესაქმნელად:

npx nullmock init

ეს ბრძანება შექმნის შემდეგ სტრუქტურას:

  • mocks/: მთავარი საქაღალდე თქვენი API ენდპოინტებისთვის.
  • mocks/locales/: ჩააგდეთ თქვენი საკუთარი .json ლექსიკონები აქ.
  • mocks/_examples/: შეიცავს 6 ოქროს API შაბლონს დაუყოვნებლივ დასაწყებად.

(მაგალითების გენერირების გამოსატოვებლად, გაუშვით: npx nullmock init --no-examples)

🚦 სერვერის გაშვება

ვარიანტი 1: სწრაფი დაწყება

npx nullmock

ვარიანტი 2: NPM სკრიპტები (რეკომენდებულია) დაამატეთ ეს თქვენს package.json-ში:

"scripts": {
  "mock": "nullmock"
}

შემდეგ გაუშვით: npm run mock


📂 6 ოქროს შაბლონი (_examples)

როდესაც უშვებთ init ბრძანებას, Nullmock გაწვდით ინდუსტრიის სტანდარტების 6 შაბლონს. შეგიძლიათ დააკოპიროთ და ჩასვათ ისინი თქვენს API საქაღალდეებში:

  1. 1_basic_list.json: ელემენტების მარტივი, ბრტყელი მასივი (გამოსადეგია კატეგორიებისთვის, ქვეყნებისთვის).
  2. 2_paginated_list.json: სტანდარტული პაგინაციის (offset pagination) სტრუქტურა (current_page, data, total).
  3. 3_infinite_scroll.json: კურსორზე დაფუძნებული პაგინაციის სტრუქტურა (has_more, next_cursor).
  4. 4_single_resource.json: დეტალური ობიექტი ერთი ელემენტისთვის (მაგ., /users/60).
  5. 5_dashboard_overview.json: ჰიბრიდული სტრუქტურა, რომელიც შეიცავს როგორც შემაჯამებელ მეტრიკებს, ასევე ბოლო აქტივობების მასივებს.
  6. 6_lazy_auto_mock.json: ნულოვანი კონფიგურაციის შაბლონი. უბრალოდ დაწერეთ გასაღებები (მაგ., "user_email": ""), დატოვეთ მნიშვნელობები ცარიელი და Nullmock-ის ჭკვიანი ძრავი თავად გამოიცნობს და შეავსებს მათ!

🌍 ჩაშენებული ლექსიკონები (Locales)

Nullmock-ს მოყვება ჩაშენებული ლოკალიზებული მონაცემები სწრაფი პროტოტიპირებისთვის. გამოიყენეთ {{category:lang}} სინტაქსი თქვენს JSON ფაილებში.

მხარდაჭერილი ჩაშენებული ენები:

  • en (ინგლისური)
  • tr (თურქული)
  • az (აზერბაიჯანული)
  • ru (რუსული)
  • ka (ქართული)

გამოყენების მაგალითი:

{
  "name": "{{firstName:ka}} {{lastName:ka}}",
  "location": "{{city:ka}}"
}

პერსონალური ლექსიკონები: გსურთ თქვენი საკუთარი მონაცემების გამოყენება? უბრალოდ შექმენით ka.json ან my_data.json ფაილი mocks/locales/ საქაღალდეში. Nullmock ავტომატურად მიანიჭებს პრიორიტეტს თქვენი პროექტის ლექსიკონებს ჩაშენებულებთან შედარებით.


🌐 ქსელის სიმულაცია (დაყოვნება და შეცდომები)

მარტივად გატესტეთ თქვენი frontend-ის ჩატვირთვის (loading) მდგომარეობები და შეცდომების მართვა. შეგიძლიათ მოახდინოთ ქსელის დაყოვნების და HTTP სტატუსის კოდების სიმულაცია ორი გზით:

1. URL პარამეტრების საშუალებით (დინამიკური ტესტი) არ არის საჭირო თქვენი mock ფაილების შეცვლა! უბრალოდ დაამატეთ პარამეტრები თქვენს fetch URL-ს:

  • გატესტეთ ჩატვირთვის მდგომარეობა: /api/users?_delay=2000 (იცდის 2 წამი)
  • გატესტეთ არაავტორიზებული წვდომა: /api/users?_status=401
  • გააერთიანეთ ისინი: /api/users?_delay=1000&_status=500

2. JSON კონფიგურაციის საშუალებით (მუდმივი) დაამატეთ _delay და _status გასაღებები პირდაპირ თქვენს JSON ფაილში. Nullmock გამოიყენებს მათ და წაშლის პასუხის კლიენტისთვის გაგზავნამდე:

{
  "_status": 404,
  "_delay": 1500,
  "error": "მომხმარებელი არ მოიძებნა"
}

🔢 ჭკვიანი რიცხვების დიაპაზონები

გჭირდებათ შემთხვევითი რიცხვები კონკრეტულ დიაპაზონში ფასებისთვის, ასაკისთვის ან საფულის ბალანსისთვის? უბრალოდ გამოიყენეთ {{number:min-max}} ტეგი თქვენი სტრიქონების (string) ნებისმიერ ადგილას!

{
  "price": "{{number:10-500}}",
  "age": "{{number:18-65}}"
}

🧠 Nullmock-ის, როგორც ბიბლიოთეკის გამოყენება (Import)

თქვენ არ გჭირდებათ Nullmock-ის მხოლოდ სერვერად გამოყენება. შეგიძლიათ დააიმპორტოთ მისი ძლიერი გენერაციის ძრავი პირდაპირ თქვენს backend სკრიპტებში, ტესტებში ან seeder-ებში!

const { deepScanAndRepeat } = require('nullmock');

const myTemplate = {
  "_repeat": 3,
  "id": "{{id}}",
  "email": "", // ჭკვიანი გამოცნობა
  "name": "{{firstName:ka}}"
};

// შექმენით მონაცემები წამიერად! (გადავცემთ { id: 10 } როგორც დინამიკურ პარამეტრს)
const fakeData = deepScanAndRepeat(myTemplate, { id: 10 });

console.log(fakeData);

🤝 პროექტში წვლილის შეტანა

თქვენი წვლილი ყოველთვის დასაფასებელია! გთხოვთ, შექმნათ თქვენი Pull Request-ები develop შტოზე (branch).

📄 ლიცენზია

MIT © modoldern