UNPKG

esmodule-builder

Version:

ECMAScript-Module (ES Module) builder.

123 lines 9.59 kB
import json5 from 'json5'; import P from './platform.mjs'; export var CompilerKind; (function (CompilerKind) { CompilerKind["TypeScript"] = "typescript"; CompilerKind["Babel"] = "babel"; })(CompilerKind = CompilerKind || (CompilerKind = {})); export var SourceMapKind; (function (SourceMapKind) { SourceMapKind["None"] = "none"; SourceMapKind["File"] = "file"; SourceMapKind["Inline"] = "inline"; })(SourceMapKind = SourceMapKind || (SourceMapKind = {})); export const FILENAME = 'esmconfig.json'; const DEFAULT = { version: '1.0', compiler: CompilerKind.TypeScript, source: { directory: '.', entry: 'module.ts', include: ['**/*.ts'], exclude: [], }, module: { directory: '.', name: 'module', sourceMap: SourceMapKind.None, }, debug: {}, typescript: { compilerOptions: { locale: (process.env.LANG ?? '').substring(0, 2), } }, babel: {}, }; function parse(image) { const data = json5.parse(image); const choiseValue = function (defaultValue, specifiedValue, checker) { const value = specifiedValue || defaultValue; return checker ? checker(value) : value; }; const choiseObject = function (defaultValue, specifiedValue) { return Object.assign({}, defaultValue, specifiedValue); }; const version = choiseValue(DEFAULT.version, data.version); const compiler = choiseValue(DEFAULT.compiler, data.compiler, (value) => { const lowerValue = value.toLowerCase(); if (value == 'typescript') return CompilerKind.TypeScript; if (value == 'babel') return CompilerKind.Babel; return CompilerKind.TypeScript; }); const source = choiseValue(DEFAULT.source, data.source, value => { if (typeof value === 'string') { return { directory: '.', entry: value, include: ['**/*'], exclude: [], }; } // TODO: check value.entry const include = choiseValue(DEFAULT.source.include, typeof value.include === 'string' ? [value.include] : value.include); const exclude = choiseValue(DEFAULT.source.exclude, typeof value.exclude === 'string' ? [value.exclude] : value.exclude); return { directory: value.directory || DEFAULT.source.directory, entry: value.entry, include, exclude, }; }); const module = choiseValue(DEFAULT.module, data.module, value => { if (typeof value === 'string') { return { directory: P.extractDirectoryPath(value), name: P.extractFileTitlePath(value), sourceMap: SourceMapKind.None, }; } else if (typeof value === 'object') { // TODO: check value.name const sourceMap = choiseValue(DEFAULT.module.sourceMap, value.sourceMap, (value) => { const lowerValue = value.toLowerCase(); if (value == 'file') return SourceMapKind.File; if (value == 'inline') return SourceMapKind.Inline; return SourceMapKind.None; }); return { directory: value.directory || DEFAULT.module.directory, name: value.name, sourceMap: sourceMap, }; } else if (typeof value === 'undefined') { // TODO Error handling console.log('Parameter "module" must need.'); return { directory: '', name: '', sourceMap: SourceMapKind.None }; } else { // TODO Error handling console.log('Parameter "module" must need.'); return { directory: '', name: '', sourceMap: SourceMapKind.None }; } }); const debug = choiseObject(DEFAULT.debug, data.debug); const typescript = choiseObject(DEFAULT.typescript, data.typescript); const babel = choiseObject(DEFAULT.babel, data.babel); return { version, compiler, source, module, debug, typescript, babel, }; } export default parse; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb25maWcubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUk5QixNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3ZCLHlDQUF5QixDQUFBO0lBQ3pCLCtCQUFlLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFlBQVksR0FBWixZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDeEIsOEJBQWEsQ0FBQTtJQUNiLDhCQUFhLENBQUE7SUFDYixrQ0FBaUIsQ0FBQTtBQUNsQixDQUFDLEVBSlcsYUFBYSxHQUFiLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBdUJELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQTtBQUV4QyxNQUFNLE9BQU8sR0FBRztJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLFlBQVksQ0FBQyxVQUFVO0lBQ2pDLE1BQU0sRUFBRTtRQUNQLFNBQVMsRUFBRSxHQUFHO1FBQ2QsS0FBSyxFQUFFLFdBQVc7UUFDbEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxFQUFFO0tBQ1g7SUFDRCxNQUFNLEVBQUU7UUFDUCxTQUFTLEVBQUUsR0FBRztRQUNkLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLGFBQWEsQ0FBQyxJQUFJO0tBQzdCO0lBQ0QsS0FBSyxFQUFFLEVBQ047SUFDRCxVQUFVLEVBQUU7UUFDWCxlQUFlLEVBQUU7WUFDaEIsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEQ7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