UNPKG

stage-js

Version:

2D HTML5 Rendering and Layout

25 lines (24 loc) 457 B
export default function (create) { const memo = {}; function fn(key) { if (Array.isArray(key)) { return list(key); } else { return key in memo ? get(key) : neo(key); } } function neo(id) { return (memo[id] = create(id)); } function get(id) { return memo[id]; } function list(ids) { if (Array.isArray(ids)) { return ids.map(function (id) { return memo[id]; }); } } return fn; }