UNPKG

loopback4-seeder

Version:
46 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Seeder = exports.loadByModel = exports.asSeed = exports.SEEDER = void 0; const core_1 = require("@loopback/core"); const keys_1 = require("./keys"); const index_1 = require("./index"); /** * Name of the seed extension point */ exports.SEEDER = 'seeder'; /** * A `BindingTemplate` function to configure the binding as a seed. * * @param binding - Binding object */ function asSeed(binding) { return binding .apply((0, core_1.extensionFor)(exports.SEEDER)) .tag({ namespace: keys_1.SEEDS_NAMESPACE }) .inScope(core_1.BindingScope.SINGLETON); } exports.asSeed = asSeed; const loadByModel = async (items, repository$, type) => { (0, index_1.debug)('[INFO] Seeding data for model "%s"', type.name); let repository = await repository$; await repository.deleteAll(); await Promise.all(items.map(async (item) => { try { return await repository.create((new type(item))); } catch (e) { (0, index_1.debug)('[ERROR] %s', e.message); } })); }; exports.loadByModel = loadByModel; class Seeder { beforeSeed() { return Promise.resolve(undefined); } async loadByModel(items, repository$, type) { return (0, exports.loadByModel)(items, repository$, type); } } exports.Seeder = Seeder; //# sourceMappingURL=types.js.map