https://github.com/hzoo/twpm
:bird: twitter package manager: npx twpm install 712799807073419264 --save left-pad
https://github.com/hzoo/twpm
flavortown twpm
Last synced: about 1 month ago
JSON representation
:bird: twitter package manager: npx twpm install 712799807073419264 --save left-pad
- Host: GitHub
- URL: https://github.com/hzoo/twpm
- Owner: hzoo
- Created: 2016-03-27T00:01:24.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-08T23:44:39.000Z (over 7 years ago)
- Last Synced: 2025-03-18T00:35:44.671Z (about 2 months ago)
- Topics: flavortown, twpm
- Language: JavaScript
- Homepage: https://gist.github.com/rauchg/5b032c2c2166e4e36713
- Size: 231 KB
- Stars: 44
- Watchers: 2
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-list - twpm - -save left-pad | hzoo | 43 | (JavaScript)
README
## twpm (twitter package manager) [](https://www.npmjs.com/package/twpm) [](https://travis-ci.org/hzoo/twpm)
> https://gist.github.com/rauchg/5b032c2c2166e4e36713#gistcomment-1732501
[](https://twitter.com/rauchg/status/712799807073419264)
### Install
> Check out the [setup](#setup) info (need twitter credentials)
```bash
npm i twpm -g# use npx for one-off command
npx twpm install
```#### Installing "packages"
```bash
twpm install https://twitter.com/rauchg/status/712799807073419264 --save left-pad
```### Usage (in code)
> The default package folder/require prefix is `@twpm/`
```js
// usage for `twpm install 712799807073419264 --save left-pad`
const leftPad = require("@twpm/left-pad");
leftPad(1, 5) // "00001"
```### Setup (2 ways)
### Environment Variables
You need to add `TWITTER_CONSUMER_KEY` and `TWITTER_CONSUMER_SECRET` environment variables when running twpm
### Config file (`./twitter-config.js`)
Create a config file at the root of your git repo.
> You can create a Twitter app to get keys at https://apps.twitter.com.
```js
module.exports = {
"consumer_key": "",
"consumer_secret": "",
"app_only_auth": true,
};
```### Commands
#### Install
```bash
# will install to node_modules/@twpm/712799807073419264
twpm install 712799807073419264# will install to node_modules/@twpm/712799807073419264
twpm install https://twitter.com/rauchg/status/712799807073419264`twpm install` creates a `index.js` with transpiled source and a `package.json` with metadata (including the original source).
# Will install to node_modules/@twpm/left-pad
twpm install 712799807073419264 --save left-pad# install everything under `twpm.dependencies` in `package.json`
twpm install# shorthand
twpm i
```#### Search
You can search through tweets that are hashtagged with `#twpm` and install them
```js
# get some random ones
twpm search
# specific keyword search
twpm search left-pad
```### Tweets
Since twpm will be transpiling the code, twpm will strip out the first line if the tweet is multiline and contains the hashtag `#twpm`.
#### Tweet
```js
@_henryzhu //#twpm:left-pad
export default (v, n, c = '0') => String(v).length >= n ? '' + v : (String(c).repeat(n) + v).slice(-n);
```#### Extracted Code
```js
// Input to be transpiled (just the function. otherwise an error will occur with decorators)
export default (v, n, c = '0') => String(v).length >= n ? '' + v : (String(c).repeat(n) + v).slice(-n);
```Currently you will need to use a `export default function() {}` or `export default () => {}` in your tweet.
### Config: `twpm` key in `package.json`
```js
{
"name": "your-app-here",
"twpm": {
"modulesLocation": "node_modules", // default folder
"folderPrefix": "@twpm/", // default prefix
"packageMetadata": [
"name",
"text",
"screen_name",
"id_str",
"retweet_count",
"favorite_count",
"created_at",
"user"
] // default fields to take from twitter status
"dependencies": {
"@twpm/left-pad": "712799807073419264"
"@twpm/sort": "713782217646931968"
}
}
}
```### Example

```bash
# twpm i 712799807073419264 --save left-pad
[email protected] /Users/hzoo/twpm-testTweet 712799807073419264: 359 🔄, 632 💟
@rauchg at Thu Mar 24 00:34:51 +0000 2016
===
// ES6 leftPad
export default (v, n, c = '0') => String(v).length >= n ? '' + v : (String(c).repeat(n) + v).slice(-n);
---
``````
- twpm-test
- node_modules
- @twpm
- left-pad
- index.js # transpiled index.js
- package.json # reformatted twitter data + name field
```