Socket
Book a DemoInstallSign in
Socket

twpm

Package Overview
Dependencies
Maintainers
3
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

twpm

twitter package manager

latest
Source
npmnpm
Version
0.0.8
Version published
Maintainers
3
Created
Source

twpm (twitter package manager)

https://gist.github.com/rauchg/5b032c2c2166e4e36713#gistcomment-1732501

Install

Check out the setup info (need twitter credentials)

npm i twpm -g

# use npx for one-off command
npx twpm install

Installing "packages"

twpm install https://twitter.com/rauchg/status/712799807073419264 --save left-pad

Usage (in code)

The default package folder/require prefix is @twpm/

// 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.

module.exports = {
  "consumer_key": "",
  "consumer_secret": "",
  "app_only_auth": true,
};

Commands

Install

# 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

You can search through tweets that are hashtagged with #twpm and install them

# 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

@_henryzhu //#twpm:left-pad
export default (v, n, c = '0') => String(v).length >= n ? '' + v : (String(c).repeat(n) + v).slice(-n);

Extracted Code

// 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

{
  "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

left-pad

# twpm i 712799807073419264 --save left-pad
twpm-left-pad@0.0.0 /Users/hzoo/twpm-test

Tweet 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

Keywords

twpm

FAQs

Package last updated on 08 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts