Skip to content

Commit

Permalink
add new entry point for sibilant
Browse files Browse the repository at this point in the history
(sibilant “(sibilant-code here)”)
(sibilant “(sibilant-code here)” { map: true })
(sibilant { map: true, file: “./some-file.sibilant” })
(sibilant { map: true, source: “(sibilant-code here)” })

each of these returns an object with keys
`{ ast, output, js, map, dependencies }`
  • Loading branch information
jbr committed Feb 5, 2016
1 parent 3ff0f25 commit f701d6d
Show file tree
Hide file tree
Showing 28 changed files with 8,317 additions and 230 deletions.
12 changes: 12 additions & 0 deletions include/functional.sibilant
Expand Up @@ -55,13 +55,22 @@
(var args [ items fn ])
(select items (thunk (not (apply fn arguments)))))


(def compact (arr)
(select arr (#(item)
(and
(!= null item)
(!= false item)
(defined? item)))))

(def unique (arr)
(inject [] arr
(#(coll item)
(if (includes? coll item)
coll
(coll.concat [item])))))


(def interleave (glue arr)
(when (and (string? arr) (list? glue))
(var temp glue)
Expand Down Expand Up @@ -103,6 +112,9 @@
(set collector key (get object key))
collector)))

(def values (object)
(|> object keys (map (#> (get object #0)))))

(def map-values (object fn)
(inject {} (keys object)
(#(collector key index)
Expand Down
11 changes: 6 additions & 5 deletions include/macros.sibilant
Expand Up @@ -1562,11 +1562,12 @@ which introduces the `react` macro namespace."
(pipe files
(.map (#(file)
(sibilant.with-default-search-path
(#> (pipe file
transpile
output-formatter
eval
sibilant.include)))))
(#>
(pipe file
transpile
output-formatter
eval
sibilant.include)))))
(interleave "\n")))

(macro docs (...options)
Expand Down
128 changes: 88 additions & 40 deletions lib/browser.js
Expand Up @@ -130,16 +130,31 @@ this.sibilant = (function() {
}));
});
var compact = (function compact$(arr) {
/* compact include/functional.sibilant:58:0 */
/* compact include/functional.sibilant:59:0 */

return select(arr, (function(item) {
/* include/functional.sibilant:59:17 */
/* include/functional.sibilant:60:17 */

return (null !== item && false !== item && typeof item !== "undefined");
}));
});
var unique = (function unique$(arr) {
/* unique include/functional.sibilant:66:0 */

return inject([], arr, (function(coll, item) {
/* include/functional.sibilant:68:13 */

return (function() {
if (coll.indexOf(item) !== -1) {
return coll;
} else {
return coll.concat([ item ]);
}
}).call(this);
}));
});
var interleave = (function interleave$(glue, arr) {
/* interleave include/functional.sibilant:65:0 */
/* interleave include/functional.sibilant:74:0 */

(function() {
if ((typeof arr === "string" && ((glue) && typeof (glue) === "object" && (glue).constructor.name === "Array"))) {
Expand All @@ -151,26 +166,26 @@ this.sibilant = (function() {
return (function() {
if (((glue) && typeof (glue) === "object" && (glue).constructor.name === "Array")) {
return inject([], arr, (function(collector, item, index) {
/* include/functional.sibilant:71:13 */
/* include/functional.sibilant:80:13 */

return collector.concat([ item, glue[index] ]);
}));
} else {
return inject([ arr[0] ], arr.slice(1), (function(collector, item, index) {
/* include/functional.sibilant:75:13 */
/* include/functional.sibilant:84:13 */

return collector.concat([ glue, item ]);
}));
}
}).call(this);
});
var flatten = (function flatten$(items) {
/* flatten include/functional.sibilant:78:0 */
/* flatten include/functional.sibilant:87:0 */

var items = Array.prototype.slice.call(arguments, 0);

return inject([], items, (function(collector, item) {
/* include/functional.sibilant:80:10 */
/* include/functional.sibilant:89:10 */

return collector.concat((function() {
if (((item) && typeof (item) === "object" && (item).constructor.name === "Array")) {
Expand All @@ -182,12 +197,12 @@ this.sibilant = (function() {
}));
});
var recurseMap = (function recurseMap$(item, fn) {
/* recurse-map include/functional.sibilant:87:0 */
/* recurse-map include/functional.sibilant:96:0 */

return (function() {
if (((item) && typeof (item) === "object" && (item).constructor.name === "Array")) {
return map(item, (function(subitem) {
/* include/functional.sibilant:88:32 */
/* include/functional.sibilant:97:32 */

return recurseMap(subitem, fn);
}));
Expand All @@ -197,46 +212,55 @@ this.sibilant = (function() {
}).call(this);
});
var pluck = (function pluck$(items, attribute) {
/* pluck include/functional.sibilant:91:0 */
/* pluck include/functional.sibilant:100:0 */

return map(items, (function(item) {
/* include/functional.sibilant:92:16 */
/* include/functional.sibilant:101:16 */

return item[attribute];
}));
});
var mergeInto = (function mergeInto$(into, from) {
/* merge-into include/functional.sibilant:94:0 */
/* merge-into include/functional.sibilant:103:0 */

Object.keys(from).forEach((function(key) {
/* include/functional.sibilant:95:5 */
/* include/functional.sibilant:104:5 */

return into[key] = from[key];
}));
return into;
});
var clone = (function clone$(object) {
/* clone include/functional.sibilant:98:0 */
/* clone include/functional.sibilant:107:0 */

return inject({ }, Object.keys(object), (function(collector, key) {
/* include/functional.sibilant:100:13 */
/* include/functional.sibilant:109:13 */

collector[key] = object[key];
return collector;
}));
});
var values = (function values$(object) {
/* values include/functional.sibilant:113:0 */

return map(Object.keys(object), (function() {
/* include/functional.sibilant:114:26 */

return object[arguments[0]];
}));
});
var mapValues = (function mapValues$(object, fn) {
/* map-values include/functional.sibilant:104:0 */
/* map-values include/functional.sibilant:116:0 */

return inject({ }, Object.keys(object), (function(collector, key, index) {
/* include/functional.sibilant:106:13 */
/* include/functional.sibilant:118:13 */

collector[key] = fn(object[key], key);
return collector;
}));
});
var mergeWith = (function mergeWith$(into, from) {
/* merge-with include/functional.sibilant:110:0 */
/* merge-with include/functional.sibilant:122:0 */

return mergeInto(clone(into), from);
});
Expand Down Expand Up @@ -642,16 +666,31 @@ this.sibilant = (function() {
}));
});
var compact = (function compact$(arr) {
/* compact include/functional.sibilant:58:0 */
/* compact include/functional.sibilant:59:0 */

return select(arr, (function(item) {
/* include/functional.sibilant:59:17 */
/* include/functional.sibilant:60:17 */

return (null !== item && false !== item && typeof item !== "undefined");
}));
});
var unique = (function unique$(arr) {
/* unique include/functional.sibilant:66:0 */

return inject([], arr, (function(coll, item) {
/* include/functional.sibilant:68:13 */

return (function() {
if (coll.indexOf(item) !== -1) {
return coll;
} else {
return coll.concat([ item ]);
}
}).call(this);
}));
});
var interleave = (function interleave$(glue, arr) {
/* interleave include/functional.sibilant:65:0 */
/* interleave include/functional.sibilant:74:0 */

(function() {
if ((typeof arr === "string" && ((glue) && typeof (glue) === "object" && (glue).constructor.name === "Array"))) {
Expand All @@ -663,26 +702,26 @@ this.sibilant = (function() {
return (function() {
if (((glue) && typeof (glue) === "object" && (glue).constructor.name === "Array")) {
return inject([], arr, (function(collector, item, index) {
/* include/functional.sibilant:71:13 */
/* include/functional.sibilant:80:13 */

return collector.concat([ item, glue[index] ]);
}));
} else {
return inject([ arr[0] ], arr.slice(1), (function(collector, item, index) {
/* include/functional.sibilant:75:13 */
/* include/functional.sibilant:84:13 */

return collector.concat([ glue, item ]);
}));
}
}).call(this);
});
var flatten = (function flatten$(items) {
/* flatten include/functional.sibilant:78:0 */
/* flatten include/functional.sibilant:87:0 */

var items = Array.prototype.slice.call(arguments, 0);

return inject([], items, (function(collector, item) {
/* include/functional.sibilant:80:10 */
/* include/functional.sibilant:89:10 */

return collector.concat((function() {
if (((item) && typeof (item) === "object" && (item).constructor.name === "Array")) {
Expand All @@ -694,12 +733,12 @@ this.sibilant = (function() {
}));
});
var recurseMap = (function recurseMap$(item, fn) {
/* recurse-map include/functional.sibilant:87:0 */
/* recurse-map include/functional.sibilant:96:0 */

return (function() {
if (((item) && typeof (item) === "object" && (item).constructor.name === "Array")) {
return map(item, (function(subitem) {
/* include/functional.sibilant:88:32 */
/* include/functional.sibilant:97:32 */

return recurseMap(subitem, fn);
}));
Expand All @@ -709,46 +748,55 @@ this.sibilant = (function() {
}).call(this);
});
var pluck = (function pluck$(items, attribute) {
/* pluck include/functional.sibilant:91:0 */
/* pluck include/functional.sibilant:100:0 */

return map(items, (function(item) {
/* include/functional.sibilant:92:16 */
/* include/functional.sibilant:101:16 */

return item[attribute];
}));
});
var mergeInto = (function mergeInto$(into, from) {
/* merge-into include/functional.sibilant:94:0 */
/* merge-into include/functional.sibilant:103:0 */

Object.keys(from).forEach((function(key) {
/* include/functional.sibilant:95:5 */
/* include/functional.sibilant:104:5 */

return into[key] = from[key];
}));
return into;
});
var clone = (function clone$(object) {
/* clone include/functional.sibilant:98:0 */
/* clone include/functional.sibilant:107:0 */

return inject({ }, Object.keys(object), (function(collector, key) {
/* include/functional.sibilant:100:13 */
/* include/functional.sibilant:109:13 */

collector[key] = object[key];
return collector;
}));
});
var values = (function values$(object) {
/* values include/functional.sibilant:113:0 */

return map(Object.keys(object), (function() {
/* include/functional.sibilant:114:26 */

return object[arguments[0]];
}));
});
var mapValues = (function mapValues$(object, fn) {
/* map-values include/functional.sibilant:104:0 */
/* map-values include/functional.sibilant:116:0 */

return inject({ }, Object.keys(object), (function(collector, key, index) {
/* include/functional.sibilant:106:13 */
/* include/functional.sibilant:118:13 */

collector[key] = fn(object[key], key);
return collector;
}));
});
var mergeWith = (function mergeWith$(into, from) {
/* merge-with include/functional.sibilant:110:0 */
/* merge-with include/functional.sibilant:122:0 */

return mergeInto(clone(into), from);
});
Expand Down Expand Up @@ -833,7 +881,7 @@ this.sibilant = (function() {
}).call(this);
context.position += length;
return remainingInput = (function() {
if (remainingInput.length) {
if ((remainingInput && remainingInput.length)) {
return remainingInput.slice(length);
} else {
return "";
Expand Down Expand Up @@ -7022,7 +7070,7 @@ this.sibilant = (function() {
})), "\n");
});
sibilant.macros.namespaces.core.docs = (function docs$(options) {
/* docs include/macros.sibilant:1560:0 */
/* docs include/macros.sibilant:1561:0 */

var options = Array.prototype.slice.call(arguments, 0);

Expand All @@ -7040,12 +7088,12 @@ this.sibilant = (function() {
}
}).call(this);
bulkMap(options, (function(key, value) {
/* include/macros.sibilant:1571:23 */
/* include/macros.sibilant:1572:23 */

return optionsHash[outputFormatter(transpile(key))] = value;
}));
[ "examples", "references" ].forEach((function(listAttribute) {
/* include/macros.sibilant:1574:5 */
/* include/macros.sibilant:1575:5 */

return (function() {
if ((optionsHash.hasOwnProperty(listAttribute) && node__QUERY(optionsHash[listAttribute], "bracket"))) {
Expand Down

0 comments on commit f701d6d

Please sign in to comment.