Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extraProviders: В совпадении имени экстра провайдера и неймспейса провайдера которого этот экстра загружает возникает ошибка #381

Open
bonkalol opened this issue Nov 24, 2023 · 2 comments
Labels

Comments

@bonkalol
Copy link
Member

bonkalol commented Nov 24, 2023

Дано:

@provider('ads')
export default class Content extends Ads {
	override baseURL: string = '/content';

	extraProviders: Ads['extraProviders'] = (opts) => ({
		ads: {
			provider: 'ads.Get',
			query: Object.get(opts, 'opts.meta.providerParams.meta.adsQuery')
		}
	});
}

После того как данные загрузятся произойдет попытка установки данных:

Object.set(composition, alias, data);

Где composition будет {ads: {...}}, а alias ads.Content. Возникнет ошибка из-за невозможности расширения объекта ads и провайдер сломается.

Если переименовать extraProviders.ads в extraProviders.adv то очевидно все исправляется и работает корректно.

@bonkalol bonkalol added the bug label Nov 24, 2023
@qvenge
Copy link
Contributor

qvenge commented Mar 22, 2024

Вообще хотелось бы при добавлении экстра провайдеров иметь возможность управлять выходным форматом смерженных данных, или даже задавать стратегию слияния загружаемых данных

@kobezzza
Copy link
Contributor

Как будто composition-engine будет уметь все это

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants