@enspirit/emb
Version:
A replacement for our Makefile-for-monorepos
25 lines (24 loc) • 885 B
JavaScript
import { CreateFileOperation, } from '../index.js';
import { ResourceFactory } from './ResourceFactory.js';
export class FileResourceBuilder {
context;
constructor(context) {
this.context = context;
}
async getReference() {
return this.context.component.relative(this.context.config.params?.path || this.context.config.name);
}
async build(resource, out) {
const input = {
path: await this.context.component.join(this.context.config.params?.path || this.context.config.name),
script: resource.params?.script,
cwd: this.context.component.join('./'),
};
return {
input,
operation: new CreateFileOperation(out),
};
}
}
// Bring better abstraction and register as part of the plugin initialization
ResourceFactory.register('file', FileResourceBuilder);