UNPKG

feeles-ide

Version:

The hackable and serializable IDE to make learning material

35 lines (26 loc) 1.13 kB
"use strict"; 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; }