buildStdFsModule function

Module buildStdFsModule()

Builds the std_fs base module.

Implementation

Module buildStdFsModule() {
  final module = Module()
    ..name = 'std_fs'
    ..description =
        'Standard file system module. File and directory operations. '
        'Not available in browser, WASM, or sandboxed runtimes.';

  // ============================================================
  // Types
  // ============================================================

  module.typeDefs.addAll(
    <google.DescriptorProto>[
      _type('FilePathInput', [_stringField('path', 1)]),
      _type('FileWriteInput', [
        _stringField('path', 1),
        _stringField('content', 2),
      ]),
      _type('FileWriteBytesInput', [
        _stringField('path', 1),
        _bytesField('content', 2),
      ]),
      _type('FileAppendInput', [
        _stringField('path', 1),
        _stringField('content', 2),
      ]),
    ].map(
      (d) => TypeDefinition()
        ..name = d.name
        ..descriptor = d,
    ),
  );

  // ============================================================
  // Functions
  // ============================================================

  module.functions.addAll([
    // File operations
    _fn('file_read', 'FilePathInput', 'string', 'Read file contents as string'),
    _fn(
      'file_read_bytes',
      'FilePathInput',
      'bytes',
      'Read file contents as bytes',
    ),
    _fn(
      'file_write',
      'FileWriteInput',
      '',
      'Write string to file (creates or overwrites)',
    ),
    _fn(
      'file_write_bytes',
      'FileWriteBytesInput',
      '',
      'Write bytes to file (creates or overwrites)',
    ),
    _fn('file_append', 'FileAppendInput', '', 'Append string to file'),
    _fn('file_exists', 'FilePathInput', 'bool', 'Check if file exists'),
    _fn('file_delete', 'FilePathInput', '', 'Delete file'),

    // Directory operations
    _fn(
      'dir_list',
      'FilePathInput',
      '',
      'List directory contents (returns list of strings)',
    ),
    _fn('dir_create', 'FilePathInput', '', 'Create directory (recursive)'),
    _fn('dir_exists', 'FilePathInput', 'bool', 'Check if directory exists'),
  ]);

  return module;
}