feeles-ide
Version:
The hackable and serializable IDE to make learning material
35 lines (26 loc) • 1.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = extractAssetNames;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _includes = _interopRequireDefault(require("lodash/includes"));
var regex = /(rule\.つくる\(|\S\.しょうかんする\(|\S\.へんしんする\(|\.skill = )['"]([^'"]+)['"]/g;
var errorMessage = 'extractAssetNames allows only string at first argument';
function extractAssetNames() {
var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
if (typeof code !== 'string') throw new TypeError(errorMessage);
var assetNames = [];
var result;
regex.lastIndex = 0; // 正規表現のマッチを初期化
while (result = regex.exec(code)) {
var _result = result,
_result2 = (0, _slicedToArray2.default)(_result, 3),
name = _result2[2];
if (name && !(0, _includes.default)(assetNames, name)) {
assetNames.push(name);
}
}
return assetNames;
}