zarbis
Version:
Configuration-less build tool
29 lines • 1 kB
JavaScript
import * as t from 'io-ts';
export function withDefault(type, defaultValue) {
return new t.Type(`withDefault(${type.name}, ${JSON.stringify(defaultValue)})`, type.is, (v) => type.decode(v != null ? v : defaultValue), type.encode);
}
export const Config = t.intersection([
t.interface({
for: t.union([
t.literal('web'),
t.literal('webworker'),
t.literal('node'),
]),
entrypoint: t.string,
}, 'required'),
t.partial({
entrypoints: t.record(t.string, t.array(t.string)),
quirks: withDefault(t.partial({
oldBrowser: t.boolean,
singleChunk: t.boolean,
skipTerser: t.boolean,
packer: t.boolean,
moduleAliases: t.record(t.string, t.string),
}, 'quirks'), {}),
modifiers: t.union([
t.undefined,
t.array(t.any),
], 'webpack config transformers'),
}, 'optional')
], 'config');
//# sourceMappingURL=config.js.map