feeles-ide
Version:
The hackable and serializable IDE to make learning material
64 lines (62 loc) • 1.87 kB
JavaScript
import _Object$create from 'babel-runtime/core-js/object/create';
import _Object$assign from 'babel-runtime/core-js/object/assign';
import _Object$keys from 'babel-runtime/core-js/object/keys';
import _Map from 'babel-runtime/core-js/map';
import { defaultPalette } from '../js/getCustomTheme';
import Snippet from './Snippet';
import organization from '../organization';
export default new _Map([['palette', {
test: /^\.palette$/i,
multiple: false,
defaultValue: defaultPalette,
defaultName: '.palette'
}], ['env', {
test: /^\.env$/i,
multiple: false,
defaultValue: {
MODULE: [true, 'boolean', 'A flag to use module bundler']
},
defaultName: '.env'
}], ['babelrc', {
test: /^\.babelrc$/i,
multiple: false,
defaultValue: {
presets: ['es2015']
},
defaultName: '.babelrc'
}], ['ogp', {
test: /^feeles\/ogp\.json$/i,
multiple: false,
defaultValue: organization.placeholder,
defaultName: 'feeles/ogp.json'
}], ['snippets', {
test: /^snippets\/.*\.json$/i,
multiple: true,
defaultValue: {},
defaultName: 'snippets/snippet.json',
bundle: function bundle(files) {
var snippets = files.reduce(function (p, file) {
var name = file.name,
json = file.json;
_Object$keys(json).forEach(function (scope) {
p[scope] = (p[scope] || []).concat(_Object$keys(json[scope]).map(function (key) {
return new Snippet(_Object$assign({
name: name,
fileKey: file.key
}, json[scope][key]));
}));
});
return p;
}, _Object$create(null));
var scopes = _Object$keys(snippets);
return function (file) {
return scopes.filter(function (scope) {
return file.is(scope);
}).map(function (scope) {
return snippets[scope];
}).reduce(function (p, c) {
return p.concat(c);
}, []);
};
}
}]]);