UNPKG

gulp-tateru-cli

Version:

Gulp plugin to build templates, using tateru-cli

65 lines (64 loc) 3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.gulpTateruCli = void 0; const plugin_error_1 = __importDefault(require("plugin-error")); const tateru_cli_1 = require("tateru-cli"); const through2_1 = __importDefault(require("through2")); const vinyl_1 = __importDefault(require("vinyl")); const PLUGIN_NAME = 'gulp-tateru-cli'; /** * Gulp Plugin for Tateru CLI. * * @param options - The options to use for the plugin. * @returns - Pipe Stream. */ const gulpTateruCli = (options = {}) => { return through2_1.default.obj(function (file, _, callback) { return __awaiter(this, void 0, void 0, function* () { let parsedConfig; if (file.isNull()) { return callback(null, file); } if (file.isStream()) { return callback(new plugin_error_1.default(PLUGIN_NAME, 'Streaming not supported')); } const contentsConfig = file.contents.toString(); try { parsedConfig = JSON.parse(contentsConfig); } catch (error) { return callback(new plugin_error_1.default(PLUGIN_NAME, 'Invalid JSON config file')); } try { const files = yield (0, tateru_cli_1.core)(Object.assign(Object.assign({}, options), { config: parsedConfig, cwd: file.cwd })); yield Promise.all(files.map((generatedFile) => __awaiter(this, void 0, void 0, function* () { const vinylFile = new vinyl_1.default({ path: generatedFile.path, cwd: generatedFile.cwd, base: file.base, contents: Buffer.from(generatedFile.contents || ''), }); this.push(vinylFile); }))); } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return callback(new plugin_error_1.default(PLUGIN_NAME, errorMessage)); } callback(); }); }); }; exports.gulpTateruCli = gulpTateruCli;