feeles-ide
Version:
The hackable and serializable IDE to make learning material
65 lines (59 loc) • 1.72 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _getCustomTheme = require("../js/getCustomTheme");
var _Snippet = _interopRequireDefault(require("./Snippet"));
var _default = new Map([['palette', {
test: /^\.palette$/i,
multiple: false,
defaultValue: _getCustomTheme.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'
}], ['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.default(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 && file.is(scope);
}).map(function (scope) {
return snippets[scope];
}).reduce(function (p, c) {
return p.concat(c);
}, []);
};
}
}]]);
exports.default = _default;