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

pipescript-dev-kit

v1.6.0

Published

A programming language that revolves around piping

Downloads

12

Readme

Pipe Script

A programming language that revolves around piping.

Pipescript is functional, high-level, interpreted/compiled, indented, single threaded, dynamically typed programming language.

Pipescript can be interpreted directly or be compiled into javascript.

Believes

  1. commands for everything
  2. human readable code
  3. using piping for everything posible
  4. using less symbols

check it out

install pipe scipt development kit from npm npm install -g pipescript-dev-kit which comes with pipescript interpreter (command - pipescript) and pipescript compiler (command - psc) plz report any bugs by opening a issue

Documentation

Variables

Variables are declared using set command. use $ to use Variables. use -$ sign to get negative

# setting variable
set var 10

# using variables
log $var
log -$var

Comments

use # to write comments and ## to write multi-line comments

# this is comment

##
this is a comment
this also is a comment
##

Piping

use | to use output of one command as input of another

log | add 1 1

# how it is processed

log | add 1 1
log 2

set n | add 1 | multiply 1 2
set n | add 1 2
set n 3

Code Block

[ ] are used encapsulate code

log [add 1 1]

# how it is processed
log [add 1 1]
log 2

log [add 1 1] [add 1 1]
log 2 2

Function

functions as usual

function <name> $arg1 $arg2
  return $arg1

function example $n
  return | add $n 10

Commands

mostly every thing in pipescript is done using commands. command takes arguments and return a output.

set

used for setting variables

set <name> <value>

set n 100

return value : null arguments : var-name, value

get

get index or key of refrence types

get <refrence-type> <keys/indexs>

example

# pipescript form
1. get $array 0
2. get $array 0 10 'key'

# javascript form
1. array[0]
2. array[0][10]['key']

return value : target value arguments : refrence-type, multiple key/index

log

log multiple inputs to console

log <input> ...

log 'this string will get logged'
log 100 100 # 100100

return value : null arguments : input, input ...

call

calling a function

call <function_name> <arg>

call process 10 10

function process $a $b
  return | add $a $b

return value : the return value from called function arguments : function-name, args for function

exit

exit interpreting script

exit

return value : null arguments : none

Arithmetic

Arithmetic commands

Operators

| command | definition | args no | js equivalent | | -------- | --------------------------- | -------- | ------------- | | add | adds multiple inputs | multiple | + | | divide | divde multiple inputs | multiple | / | | multiply | multiply multiple inputs | multiple | * | | neg | return $1 multiply by -1 | 1 | -1 * input | | reminder | reminder of first / secound | 2 | % |

Functions

| command | definition | args no | js equivalent | | ------- | --------------------------- | ------- | ------------- | | floor | floor the number | 1 | Math.floor() | | pow | power of $1 raised to $2 | 2 | Math.pow() | | random | random number between 0 & 1 | 0 | Math.random() | | round | round the number | 1 | Math.round() |

Logic Operators

| command | definition | args no | js equivalent | | ------- | --------------------- | ------- | ------------- | | boolean | change to boolean | 1 | Boolean() | | eq | equal to | 2 | == | | ge | greater than or equal | 2 | >= | | gt | greater than | 2 | > | | le | less than or equal | 2 | <= | | lt | less than | 2 | < | | not | not operator | 1 | ! | | ternary | ternary operator | 3 | $1 ? $2 : $3 |

Data Types

Primitive

Number

Number include integer and floats

Word

basically string without spaces and quotes

log word

NOTE word type is not supported by the compiler. using word is not recommended

Boolean

boolean as usual

Null

null as usual fun fact, function return null when return statement is not mentioned

Undefined

undefined as usual;

Refrence

refrence types have pointers that point to a js object, array, string. to see the pointer

log | new Array
# output -> %array%@1 : []

%array%@1 is example for a pointer

Array

use the new command to create a array

set arr | new Array

# example
log | new Array 1 2 'element'
output -> [1,2,'element']

Array Commands

array commands take array as first argument

| command | definition | args no | js equivalent | | -------- | ------------------------- | ------- | ----------------- | | pop | pop last element | 1 | .pop() | | shift | pop first element | 1 | .shift() | | indexof | get index of element | 2 | .indexOf() | | length | length of array | 1 | .length | | reverse | reverse the array | 1 | .reverse() | | last | last element of array | 1 | arr[arr.length-1] | | push | push $1 to end of array | 2 | .push() | | unshift | push $1 to start of array | 2 | .unshift() | | includes | check if includes $1 | 2 | .includes() |

Object

use the new command to create a array

set obj | new Object

Object Commands

object command takes target object as argument

| command | definition | args no | js equivalent | | ------- | ---------- | ------- | ------------- |

String

single quotes ' ' are used to declare string

log 'this is a string'

String Commands

string command takes target string as first argument

| command | definition | args no | js equivalent | | -------- | ----------------------- | ------- | ------------- | | includes | check for search string | 2 | .includes() | | indexof | get index of string | 2 | .indexOf() |

Conditional Flow

"do this" or "do that" based on some condition.

If Statements

if statements as usual

if <boolean>
  # do something
elseif <boolean>
  # do something
else
  # do something

learn more about Logical Operators

example

if | eq $n 0
  log 'equal to 0'
elseif | lt $n 0
  log 'less than 0'
else
  log 'something else'

Switch Case

switch case as usual.

NOTE pipescript interpreter support multiple default blocks at diffrent levels but the compiler doesnot. the compiler collects all default blocks and puts all of them in single default block at the end of switch block

switch <input>
  case <value>
    # do something
    # break to stop here
  case <value>
    # do something
    # break to stop here
  default
    # do something

learn more about Arithmetic commands

example

set n 10

switch $n
  case 10
    log 10
    break
  case | add 1 1
    log 1
  default
    log 'default'

Iteration

learn more about Logical Operators

While Loop

while loop as usual

while <condition>
  # do something
  # break to stop

example

set n 0

while | ge 10 $n
  set n | add $n 1
  log $n

Basic Loop

loop for certain times

loop <number>
  # do something
  # break to stop

example

loop 10
  log 'still looping'

Foreach Loop

loop through items in something iterable ( arrays, objects, string)

foreach <var> <something iterable>
  # do something
  # break to stop

example

set array | new Array

foreach $value $array
  log $value