эти функции сделать методами объекта?
function hi() {return 'hi'}
const object = {};
object.hi = hi;
твой способ и так работает. В чем вопрос?
У меня 20 таких функций и добавлять их вручную геморно + эти функции будут добавляться и мне нужно автоматизировать это всё
и как ты себе представляешь автоматизацию? Как объект должен узнать, что ты в него функцию хочешь положить?
А как в lodash такое сделано? В репозитории идут функции, а мы используем объект с методами
const sellFn = () => console.log('sell goods') const makeDiscountFn = () => console.log('discount 10%') const arrayOfFns = [sellFn, makeDiscountFn] const methodsStore = {} arrayOfFns.forEach(fn => { methodsStore[fn.name] = fn }) methodsStore.sellFn() //"sell goods" methodsStore.makeDiscountFn() //"discount 10%"
import * as fns from './functions'
так а посмотреть?
Это так же не избавит от того, что надо руками в массив заносить
import * as fns from '../fn' const fnsArray = Object.entries(fns)
Ну для этого их нужно экспортировать все. Хотя как вариант по сути, если надо будет использовать отдельно и собрать в объект...
да надо. можно еще файл прочитать, получим строку с функциями, а дальше регуляркой const fs = require('fs') const strFns = fs.readFileSync('../fns.js', 'utf-8', (err, data) => { return data })
Хороший способ, но тогда jsdoc не подтягивается. Просто пишу небольшую библиотеку и стараюсь писать документацию, ориентируясь на Lodash, а NodeJS я совсем не знаю
тогда не надо собирать функции в объект. делаем как лодаш = 1 папка с кучей функций. и в package.json не забудь указать sideEffects: "false", чтобы работал tree-shaking https://github.com/lodash/lodash/blob/master/package.json
А как функции использовать то? У меня вот такая вот структура. В lib.js все функции, чтобы генерировать документацию
import { arraySum } from 'MY-LIB/arraySum'
Спасибо. Будет значит так
promisify или обернуть в промис и потом юзать
либу залинкуй в другой проект и проверь https://docs.npmjs.com/cli/v7/commands/npm-link
Обсуждают сегодня