Skip to content

Commit

Permalink
first implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanMontane committed Oct 13, 2016
2 parents 7735d61 + b363dc7 commit dcdbf7f
Show file tree
Hide file tree
Showing 20 changed files with 1,117 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .babelrc
@@ -0,0 +1,10 @@
{
'presets': [
'es2015',
'stage-0',
'stage-1',
'stage-2',
'stage-3'
],
'plugins': ['transform-runtime', 'transform-decorators-legacy']
}
6 changes: 6 additions & 0 deletions .gitignore
@@ -0,0 +1,6 @@
# Build
dist/
releases/
node_modules/
lib/
.DS_Store
29 changes: 29 additions & 0 deletions Makefile
@@ -0,0 +1,29 @@
BASE=$(shell pwd)
SCRIPTS=$(BASE)/scripts

all: configure pack

# Install the requirements
configure:
npm install

# Build the ES5 script
build:
sh "$(SCRIPTS)/build.sh" $(BASE)

# Builds a ready-to-deploy ZIP file
pack: build
sh "$(SCRIPTS)/release.sh" $(BASE) $(VERSION)

# Install in Paw extensions folder
install: build
sh "$(SCRIPTS)/transfer.sh" $(BASE)

# Validation commands
lint:
sh "$(SCRIPTS)/lint.sh" $(BASE)

test:
sh "$(SCRIPTS)/test.sh" $(BASE)

check: lint test
248 changes: 248 additions & 0 deletions linting/eslint_base.yaml
@@ -0,0 +1,248 @@
---
env:
browser: true
node: true
es6: true
parser: babel-eslint
globals:
ga: true
mixpanel: true
olark: true
Raven: true
ecmaFeatures:
arrowFunctions: true
binaryLiterals: true
blockBindings: true
classes: true
defaultParams: true
destructuring: true
forOf: true
generators: true
modules: true
objectLiteralComputedProperties: true
objectLiteralDuplicateProperties: true
objectLiteralShorthandMethods: true
objectLiteralShorthandProperties: true
octalLiterals: true
regexUFlag: true
regexYFlag: true
spread: true
superInFunctions: true
templateStrings: true
unicodeCodePointEscapes: true
globalReturn: true
jsx: true
rules:
comma-dangle: 2
no-cond-assign: 2
no-console: 2
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-semi: 2
no-func-assign: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-unreachable: 2
use-isnan: 2
valid-jsdoc: 2
valid-typeof: 2
block-scoped-var: 0
complexity: 0
consistent-return: 0
curly: 2
default-case: 2
dot-notation: 2
eqeqeq: 2
guard-for-in: 2
no-alert: 0
no-caller: 2
no-div-regex: 2
no-else-return: 0 # nicer to have strong if/else logic
no-empty-label: 2
no-eq-null: 2
no-eval: 2
no-extend-native: 2
no-extra-bind: 2
no-fallthrough: 2
no-floating-decimal: 2
no-implied-eval: 2
no-iterator: 2
no-labels: 2
no-lone-blocks: 2
no-loop-func: 2
no-multi-spaces: 2
no-multi-str: 2
no-native-reassign: 2
no-new: 2
no-new-func: 2
no-new-wrappers: 2
no-octal: 2
no-octal-escape: 2
no-param-reassign: 2
no-process-env: 0
no-proto: 2
no-redeclare: 2
no-return-assign: 2
no-script-url: 2
no-self-compare: 2
no-sequences: 2
no-throw-literal: 2
no-unused-expressions: 2
no-void: 2
no-warning-comments:
- 0
- terms:
- todo
- fixme
location: start
no-with: 2
radix: 2
vars-on-top: 2
wrap-iife: 2
yoda: 2
strict: 0
no-catch-shadow: 2
no-delete-var: 2
no-label-var: 2
no-shadow: 2
no-shadow-restricted-names: 2
no-undef: 2
no-undef-init: 2
no-undefined: 2
no-unused-vars: 2
no-use-before-define: 2
indent:
- 1
- 4
- SwitchCase: 1
brace-style:
- 1
- stroustrup
- allowSingleLine: true
camelcase: 0
comma-spacing:
- 1
- before: false
after: true
comma-style:
- 1
- last
consistent-this:
- 1
- _this
eol-last: 1
func-names: 0
func-style: 0
key-spacing:
- 1
- beforeColon: false
afterColon: true
max-nested-callbacks:
- 1
- 3
new-cap:
- 1
- newIsCap: true
capIsNew: false
new-parens: 1
newline-after-var: 0
no-array-constructor: 1
no-inline-comments: 1
no-lonely-if: 1
no-mixed-spaces-and-tabs: 1
no-multiple-empty-lines:
- 1
- max: 2
no-nested-ternary: 1
no-new-object: 1
no-spaced-func: 1
no-ternary: 0
no-trailing-spaces: 1
no-underscore-dangle: 0
no-extra-parens: 1
one-var:
- 1
- never
operator-assignment: 0
padded-blocks:
- 1
- never
quote-props:
- 1
- as-needed
quotes:
- 1
- single
semi:
- 1
- "never"
semi-spacing:
- 1
- before: false
after: true
sort-vars: 0
space-after-keywords:
- 1
- always
space-before-blocks:
- 1
- always
space-before-function-paren:
- 1
- anonymous: never
named: never
object-curly-spacing:
- 1
- always
array-bracket-spacing:
- 1
- always
computed-property-spacing:
- 1
- never
space-in-parens:
- 1
- never
space-infix-ops:
- 1
space-return-throw-case:
- 1
space-unary-ops:
- 1
- words: true
nonwords: false
spaced-comment:
- 1
- always
wrap-regex: 0
no-var: 2
generator-star-spacing:
- 2
- before
max-depth:
- 2
- 4
max-len:
- 2
- 80
- 2
max-params:
- 2
- 6
max-statements: 0
no-bitwise: 0
no-plusplus: 2

2 changes: 2 additions & 0 deletions linting/prod.yaml
@@ -0,0 +1,2 @@
---
extends: ./eslint_base.yaml
33 changes: 33 additions & 0 deletions package.json
@@ -0,0 +1,33 @@
{
"version": "0.1.0",
"dependencies": {
"babel-plugin-transform-flow-strip-types": "6.3.15",
"babel-polyfill": "6.3.14",
"babel-runtime": "6.3.19",
"randexp": "^0.4.3"
},
"devDependencies": {
"immutable": "3.7.6",
"babel-cli": "6.6.5",
"babel-core": "6.4.0",
"babel-eslint": "4.1.8",
"babel-loader": "6.2.0",
"babel-plugin-rewire": "1.0.0-beta-3",
"babel-plugin-transform-class-properties": "^6.6.0",
"babel-plugin-transform-decorators": "6.3.13",
"babel-plugin-transform-decorators-legacy": "1.3.2",
"babel-plugin-transform-runtime": "6.3.13",
"babel-preset-es2015": "6.3.13",
"babel-preset-stage-0": "6.3.13",
"babel-preset-stage-1": "6.3.13",
"babel-preset-stage-2": "6.3.13",
"babel-preset-stage-3": "6.3.13",
"babel-register": "6.3.13",
"chai": "3.4.1",
"eslint": "1.3.1",
"eslint-loader": "1.0.0",
"json-loader": "^0.5.4",
"mocha": "2.3.4",
"webpack": "1.12.9"
}
}
4 changes: 4 additions & 0 deletions scripts/build.sh
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
base=$1
rm -rf "$base/dist"
node "$base/node_modules/webpack/bin/webpack.js"
3 changes: 3 additions & 0 deletions scripts/lint.sh
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
base=$1
node "$base/node_modules/eslint/bin/eslint.js" -c "$base/linting/prod.yaml" "$base/src/"
17 changes: 17 additions & 0 deletions scripts/release.sh
@@ -0,0 +1,17 @@
#!/usr/bin/env sh
base=$1
version=$2
mkdir -p "$base/releases";
cd "$base/dist/";
files=./*
for file in $files
do
echo "working on folder -> $file"
package=$(ls "./$file" | sed "s/.js$/$version.zip/");
echo "pacakge is $package";
cp "$base/README.md" "$base/dist/$file/";
cp "$base/LICENSE" "$base/dist/$file/";
zip -r "$package" "$file/";
mv "$package" "$base/releases/"
done;
cd $base;
2 changes: 2 additions & 0 deletions scripts/test.sh
@@ -0,0 +1,2 @@
base=$1
node "$base/node_modules/.bin/mocha" --require mocha --compilers js:babel-register --reporter spec "$base/src/**/__tests__/*-test.js"
6 changes: 6 additions & 0 deletions scripts/transfer.sh
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
base=$1
extensions_dir="$HOME/Library/Containers/com.luckymarmot.Paw/Data/Library/Application Support/com.luckymarmot.Paw/Extensions/"

mkdir -p "$extensions_dir"
cp -r "$base/dist/" "$extensions_dir"

0 comments on commit dcdbf7f

Please sign in to comment.