Size: a a a

2021 March 19

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
Можно было бы сохранять в чистом виде все имена на ноде, а из инспектора показывать требуемую детализацию
информации довольно много, сейчас эффектор сохраняет далеко не всё
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
причём цепочка имён фабрик на самом деле состоит из пар строк — название вызванной фабрики и имя результата

[$reqStatus, createStatus] / [postRequestFx, createRequest] / [restApi, createRestApi]
это всё информация получаемая для такого кода:

const root = createDomain()
const apiDomain = root.createDomain()

function createStatus() {
 return apiDomain.createStore('idle')
}

function createRequest() {
 const $reqStatus = createStatus()
 const fx = apiDomain.createEffect()
 return fx
}

function createRestApi() {
 const postRequestFx = createRequest()
 const getRequestFx = createRequest()
 return {post: postRequestFx, get: getRequestFx}
}

const restApi = createRestApi()
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
это всё информация получаемая для такого кода:

const root = createDomain()
const apiDomain = root.createDomain()

function createStatus() {
 return apiDomain.createStore('idle')
}

function createRequest() {
 const $reqStatus = createStatus()
 const fx = apiDomain.createEffect()
 return fx
}

function createRestApi() {
 const postRequestFx = createRequest()
 const getRequestFx = createRequest()
 return {post: postRequestFx, get: getRequestFx}
}

const restApi = createRestApi()
скомпилируется примерно в такое:

const root = createDomain({name: 'root', sid: '1'})
const apiDomain = root.createDomain({name: 'apiDomain', sid: '2'})

function createStatus() {
 return apiDomain.createStore('idle', {sid: '3'})
}

function createRequest() {
 const $reqStatus = withFactory({
   name: '$reqStatus',
   method: 'createStatus',
   sid: '4',
   fn: () => createStatus()
 })
 const fx = apiDomain.createEffect({name: 'fx', sid: '5'})
 return fx
}

function createRestApi() {
 const postRequestFx = withFactory({
   name: 'postRequestFx',
   method: 'createRequest',
   sid: '6',
   fn: () => createRequest()
 })
 const getRequestFx = withFactory({
   name: 'getRequestFx',
   method: 'createRequest',
   sid: '7',
   fn: () => createRequest()
 })
 return {post: postRequestFx, get: getRequestFx}
}

const restApi = withFactory({
 name: 'restApi',
 method: 'createRestApi',
 sid: '8',
 fn: () => createRestApi()
})
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
скомпилируется примерно в такое:

const root = createDomain({name: 'root', sid: '1'})
const apiDomain = root.createDomain({name: 'apiDomain', sid: '2'})

function createStatus() {
 return apiDomain.createStore('idle', {sid: '3'})
}

function createRequest() {
 const $reqStatus = withFactory({
   name: '$reqStatus',
   method: 'createStatus',
   sid: '4',
   fn: () => createStatus()
 })
 const fx = apiDomain.createEffect({name: 'fx', sid: '5'})
 return fx
}

function createRestApi() {
 const postRequestFx = withFactory({
   name: 'postRequestFx',
   method: 'createRequest',
   sid: '6',
   fn: () => createRequest()
 })
 const getRequestFx = withFactory({
   name: 'getRequestFx',
   method: 'createRequest',
   sid: '7',
   fn: () => createRequest()
 })
 return {post: postRequestFx, get: getRequestFx}
}

const restApi = withFactory({
 name: 'restApi',
 method: 'createRestApi',
 sid: '8',
 fn: () => createRestApi()
})
все строки на экране стакаются вместе по мере вызова фабрик, ичсх, с каждым шагом число родителей растёт
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
поэтому желательно просто заранее решить, что должен вывести логгер для такого кода а потом уже выбрать как хранить
источник

c⁣

createStore<🦉>... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
скомпилируется примерно в такое:

const root = createDomain({name: 'root', sid: '1'})
const apiDomain = root.createDomain({name: 'apiDomain', sid: '2'})

function createStatus() {
 return apiDomain.createStore('idle', {sid: '3'})
}

function createRequest() {
 const $reqStatus = withFactory({
   name: '$reqStatus',
   method: 'createStatus',
   sid: '4',
   fn: () => createStatus()
 })
 const fx = apiDomain.createEffect({name: 'fx', sid: '5'})
 return fx
}

function createRestApi() {
 const postRequestFx = withFactory({
   name: 'postRequestFx',
   method: 'createRequest',
   sid: '6',
   fn: () => createRequest()
 })
 const getRequestFx = withFactory({
   name: 'getRequestFx',
   method: 'createRequest',
   sid: '7',
   fn: () => createRequest()
 })
 return {post: postRequestFx, get: getRequestFx}
}

const restApi = withFactory({
 name: 'restApi',
 method: 'createRestApi',
 sid: '8',
 fn: () => createRestApi()
})
Пока читал этот пример, возник вопрос.
Если я описал фабрику и использую ее в том же файле, получается она не будет завернута в withFactory?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
Пока читал этот пример, возник вопрос.
Если я описал фабрику и использую ее в том же файле, получается она не будет завернута в withFactory?
да. этот эдж кейс не поддерживается потому что с большой долей вероятности для бабеля изнутри файла имя модуля будет значительно отличаться от публичного
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
проще говоря, нет возможности узнать что ты находишься в модуле @utils/store
источник

c⁣

createStore<🦉>... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
да. этот эдж кейс не поддерживается потому что с большой долей вероятности для бабеля изнутри файла имя модуля будет значительно отличаться от публичного
А также если у меня в модуле помеченном factories лежат не только фабрики эффектора, то все завернется в withFactory? Хуки реакта, например
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
да, лучше фабрики ни с чем не смешивать
источник

S

Sergey in ☄️ effector
Добрый вечер ребят, решил заценить effector/inspector, столкнулся с проблемой, будто стили не подгружаются  
Наверное я как обычно делаю что-то не так.
источник

S

Sergey in ☄️ effector
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
А также если у меня в модуле помеченном factories лежат не только фабрики эффектора, то все завернется в withFactory? Хуки реакта, например
но от того что функция завернётся в withFactory ей ничего не будет, withFactory в котором ничего не происходит ничего и не делает, no-op
источник

NN

Nikita N. in ☄️ effector
ворвусь со своими бесполезными проблема.
Есть вот такой код. creareSendGQL это функция которая создает эффект который посылает запросы на основе урла который прилетает из стора.
Я тут осознал, что невозможно описать гейт так, чтоб в нем изначально были данные?
источник

c⁣

createStore<🦉>... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
но от того что функция завернётся в withFactory ей ничего не будет, withFactory в котором ничего не происходит ничего и не делает, no-op
Это радует
источник

c⁣

createStore<🦉>... in ☄️ effector
А вот локальные фабрики хочется детектить, я их часто юзаю
источник

c⁣

createStore<🦉>... in ☄️ effector
Ошибок нет?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
А вот локальные фабрики хочется детектить, я их часто юзаю
import {foo as _foo} from './foo'

export function foo() {}

export function bar() {return _foo()}


🥶
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita N.
ворвусь со своими бесполезными проблема.
Есть вот такой код. creareSendGQL это функция которая создает эффект который посылает запросы на основе урла который прилетает из стора.
Я тут осознал, что невозможно описать гейт так, чтоб в нем изначально были данные?
createGate({defaultState: {name: 'guest}})
источник

NN

Nikita N. in ☄️ effector
Nikita N.
ворвусь со своими бесполезными проблема.
Есть вот такой код. creareSendGQL это функция которая создает эффект который посылает запросы на основе урла который прилетает из стора.
Я тут осознал, что невозможно описать гейт так, чтоб в нем изначально были данные?
хотя defaultState в гейт можно прокинуть.
источник