packages/@jsii/go-runtime/build-tools/gen.ts (34 lines of code) (raw):

#!/usr/bin/env npx ts-node import { CodeMaker } from 'codemaker'; import { copySync, mkdirpSync } from 'fs-extra'; import { join, resolve } from 'path'; const EMBEDDED_RUNTIME_SOURCE_ROOT = resolve( __dirname, '..', '..', 'runtime', 'webpack', ); const RUNTIME_ROOT = resolve(__dirname, '..', 'jsii-runtime-go'); const EMBEDDED_RESOURCE_DIR = join( RUNTIME_ROOT, 'internal', 'embedded', 'resources', ); mkdirpSync(EMBEDDED_RESOURCE_DIR); copySync(EMBEDDED_RUNTIME_SOURCE_ROOT, EMBEDDED_RESOURCE_DIR, { dereference: true, errorOnExist: false, overwrite: true, preserveTimestamps: true, recursive: true, }); const KERNEL_LIB_DIR = resolve(RUNTIME_ROOT, 'internal', 'kernel'); const code = new CodeMaker({ indentationLevel: 1, indentCharacter: '\t' }); const VERSION_FILE = 'version.generated.go'; code.openFile(VERSION_FILE); code.line('package kernel'); code.line(); // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports const thisVersion = require('../package.json').version; code.line(`const version = ${JSON.stringify(thisVersion)}`); code.closeFile(VERSION_FILE); code.save(KERNEL_LIB_DIR).catch(console.error);