Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mashelin-guide

Package Overview
Dependencies
Maintainers
2
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mashelin-guide - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

.github/CONTRIBUTING.md

0

.eslintrc.js

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ # Contributor Covenant Code of Conduct

4

package.json
{
"name": "mashelin-guide",
"version": "1.0.1",
"version": "1.0.2",
"description": "",

@@ -31,3 +31,3 @@ "repository": {

"lint": "eslint . --ext .js,.ts",
"start": "ts-node src/index.ts",
"start": "ts-node src/cli.ts",
"start:debug": "node --require ts-node/register --inspect-brk src/index.ts",

@@ -34,0 +34,0 @@ "test": "NODE_ENV=test jest",

@@ -1,1 +0,161 @@

# mashelin-guide
<h1 align="center">
<br />
🍙
<br />
Mashelin Guide
<sup>
<br />
<br />
</sup>
</h1>
<div align="center">
<a href="https://github.com/mash-up-kr/mashelin-guide/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/mash-up-kr/mashelin-guide">
</a>
<br />
<sup>매쉬업 공인 맛집 탐색기 NPM Package and CLI</sup>
<br />
<br />
</div>
# 📖 About
TBD
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Options](#options)
- [Examples](#examples)
- [Set Up Locally](#setup-locally)
- [Programmatic Usage](#programmatic-usage)
- [Roadmap](#roadmap)
- [Known bugs](#known-bugs)
- [Contributing](#contributing)
- [License](#license)
<a name="features"></a>
## ✅ Features
- **맛집 검색:** 매쉬업 멤버들의 맛집 픽을 검색할 수 있습니다.
- **맛집 지도로 보기:** 검색한 맛집 목록을 지도로 바로 볼 수 있습니다.
- **조건부 검색:** 다양한 검색 옵션들을 활용해서 오늘 모임에서 갈만한 맛집을 손쉽게 검색하세요.
- **손쉬운 사용:** 카카오맵, 네이버맵 어플리케이션이 필요 없습니다. 맥북을 켜고 터미널을 열어서 커맨드만 실행하면 됩니다!
- **커뮤니티에 의해 최신화되는 목록:** 맛집 목록은 누구나 추가할 수 있습니다. 부담가지지 말고 언제든지 PR을 올려주세요.
<a name="installation"></a>
## Installation
설치하지 않아도 바로 사용할 수 있습니다! 다음 명령어를 터미널에서 실행해보세요:
```bash
npx mashelin-guide
```
혹은 설치해서 사용하고 싶은 경우:
```bash
npm i -g mashelin-guide
```
<a name="usage"></a>
## 📋 Usage
```bash
npx mashelin-guide
# or just mashelin-guide if installed globally
```
라이브러리로 사용하고 싶으면 [Programmatic Usage](#programmatic-usage) 섹션을 참고해주세요
<a name="options"></a>
## Options
| ARGUMENT | DESCRIPTION |
| ------------- | ------------------------------------ |
| -s, --size | 출력할 맛집 목록의 갯수를 제한합니다 |
| -v, --version | 버전을 표시합니다 |
**Warning:** _이후 릴리즈되는 버전에서 옵션이 바뀔 수 도 있습니다_
<a name="examples"></a>
## Examples
<a name="setup-locally"></a>
## 📟 Set Up Locally
```bash
# -- 레포를 클론해주세요
git clone https://github.com/mash-up-kr/mashelin-guide.git
# -- 디렉토리 내부로 이동합니다
cd mashelin-guide
# -- 의존성을 설치해주세요
pnpm install
# -- 실행!
pnpm run start
```
<a name="programmatic-usage"></a>
## 🧑🏻‍💻 Programmatic Usage
```ts
import { MashelinGuide } from 'mashelin-guide';
// TBD
```
기본적으로 mashelin-guide는 터미널에서 사용하는 커맨드라인 프로그램이지만, 이 기능을 다른 프로젝트에서 import하여 사용하고 싶을 때가 있습니다.
<a name="roadmap"></a>
## 🔮 Roadmap
- [ ] 릴리즈 0.1.0 !
- [ ] 코드 개선
- [ ] 성능 개선
- [ ] 복잡한 쿼리 추가
- [ ] 지도로 보기 추가
- [ ] API, CLI, Interactive CLI 분리
- [ ] Contribution 문서 구체화
- [ ] PR / master merge CI
- [ ] Release 자동화 Github Action
- [ ] 마스터 브랜치의 데이터를 직접 가져오기
<a name="known-bugs"></a>
## 🐞 Known bugs
- Sometimes, CLI is blocked while folder is deleting.
> 버그를 찾게 된다면 주저하지 말고 이슈를 열어주세요 :)
<a name="contributing"></a>
## 💞 Contributing
이 프로젝트에 기여를 하고 싶다면 [CONTRIBUTING.md](.github/CONTRIBUTING.md)을 참고해주세요
<a name="license"></a>
## 📜 License
MIT © [Karl Saehun Chung](https://github.com/minidonut) and [Hyeon Cho](https://github.com/hye-on) and [ Jiwon Park](https://github.com/pjw5521)
🐱🐤

@@ -1,8 +0,83 @@

import { getMashup맛집 } from '.';
// import { getMashup맛집 } from '.';
import readline from 'readline';
import { enterStoreInfo, getMashup맛집, getMashup맛집byType, typeCheck } from '.';
function main() {
console.log('다음은 매쉬업 맛집 목록입니다 ✨');
console.log(getMashup맛집());
}
import { contentsQuestion, storeInfoQuestion } from './question';
main();
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
var question = function (q: string) {
return new Promise((res, rej) => {
rl.question(q, answer => {
res(answer);
});
});
};
//맛집 검색
const typeQ = (answer: string) => {
if (typeCheck(answer)) {
console.log(getMashup맛집byType(answer));
rl.close();
} else {
rl.question('\n양식, 중식, 한식, 일식만 입력하세요! (ꐦ ¯−¯ ) ', typeQ);
}
};
const mashelinChoice = async (answer: string) => {
if (answer === '1') {
//맛집 전체 목록
console.log('매셥 맛집입니다 ~!! ♡〜٩( ˃́▿˂̀ )۶〜♡ \n');
console.log(getMashup맛집());
rl.close();
} else if (answer === '2') {
//맛집 검색
rl.question('\n양식, 중식, 한식, 일식 중에 선택하세요', typeQ);
} else if (answer === '3') {
//맛집 등록
let ans = [];
for (let i = 0; i < storeInfoQuestion.length; i++) {
ans.push(await question(storeInfoQuestion[i]));
}
if (enterStoreInfo(ans)) {
console.log('등록되었습니다.');
rl.close();
} else {
console.log('이미 등록되어 있습니다.');
}
rl.close();
} else {
console.clear();
rl.question('\n1 or 2 or 3 만 입력해요 (ꐦ •᷄ࡇ•᷅) ', mashelinChoice);
}
};
console.clear();
const contents = (): void => {
console.log('<<< (*●⁰ꈊ⁰●)ノ mashelin-guide (*●⁰ꈊ⁰●)ノ >>>');
console.log('\n============================================\n');
for (const q of contentsQuestion) {
//목록, 검색, 등록
console.log(`${q}`);
}
rl.question('Enter only 1 or 2 or 3 : ', mashelinChoice);
};
const answerCallback = (answer: string) => {
if (answer === 'y') {
contents();
} else if (answer === 'n') {
console.log('ヘ(°◇、°)ノ,,, 다음에 찾아주세요~!');
rl.close();
} else {
console.clear();
// console.log('y 또는 n만 입력하세요.');
rl.question('y 또는 n만 입력하세요.\nmashelin-guide를 시작하겠습니까? ', answerCallback);
}
};
//시작
rl.question('mashelin-guide를 시작하겠습니까? (y/n) ', answerCallback);

@@ -0,1 +1,6 @@

import mock from './mock-data.json';
import store from './store.json';
import path from 'path';
import fs from 'fs';
import { types } from './question';
/**

@@ -5,3 +10,55 @@ * 매쉬업 맛집 목록을 가져옵니다.

export function getMashup맛집() {
return [];
//return mock.store_list;
return store;
}
export function getMashup맛집byType(t: string) {
let data = new Array();
for (let i = 0; i < store.length; i++) {
if (store[i].type == t) {
data.push(store[i]);
}
}
return data;
}
export function enterStoreInfo(storeInfo: any[]) {
if (isExists(storeInfo[0], storeInfo[1])) {
return false;
} else {
const storeT = {
name: storeInfo[0],
address: storeInfo[1],
type: storeInfo[2],
};
const filePath = path.join(__dirname, 'store.json');
const fileData = fs.readFileSync(filePath);
const fileJSON = fileData.toString();
const a = JSON.parse(fileJSON);
a.push(storeT);
fs.writeFileSync(filePath, JSON.stringify(a));
}
return true;
}
//가게 이름, 위치로 등록되어 있는지 찾기
export function isExists(name: string, address: string) {
for (let i = 0; i < store.length; i++) {
if (store[0].name === name && store[i].address === address) {
return true; //이미 등록
}
}
return false; //등록 x
}
export function typeCheck(type: string) {
for (const t of types) {
if (t === type) {
return true;
}
}
return false;
}
export function viewMap() {}

@@ -0,0 +0,0 @@ {

@@ -0,0 +0,0 @@ {

@@ -12,2 +12,3 @@ {

"declarationMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,

@@ -14,0 +15,0 @@ "experimentalDecorators": true,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc