Serpack
Apis
Compile

Compile

WARNING

🚧 The sourcemap generation is still under development.

#Compile

Compile a TypeScript or Javascript file in a executable code.

Typescript
declare function compile(
  entry: string,
  compilerOptions?: CompilerOptions,
): Promise<{
  code: string;
  map: string;
}>;

#Example

There is a simple addition program as shown below

Typescript
import { sum } from '../lib/sum';
 
console.log(sum(1, 2));
scripts/build.js
import { join } from 'path';
import { compile } from 'serpack';
 
compile(join(process.cwd(), 'src/index.ts')).then(({ code }) => {
  console.log(code);
});

INFO

Output will be:

Javascript
(function (modules) {
  var __serpack_module_cache__ = {};
  function __serpack_require__(id) {
    if (!id.startsWith('sp:')) return require(id);
    if (__serpack_module_cache__[id.slice(3)])
      return __serpack_module_cache__[id.slice(3)];
    const module = { exports: {} };
    modules[id.slice(3)].call(
      module.exports,
      __serpack_require__,
      require,
      module,
      module.exports,
    );
    __serpack_module_cache__[id.slice(3)] = module.exports;
    return module.exports;
  }
  module.exports = __serpack_require__('sp:0');
})({
  /*[0]src\index.ts*/ 0: (
    __serpack_require__,
    __non_serpack_require__,
    module,
    exports,
  ) => {
    'use strict';
    Object.defineProperty(exports, '__esModule', { value: !0 }),
      console.log((0, __serpack_require__('sp:1').sum)(1, 2));
  },
  /*[1]lib\sum.ts*/ 1: (
    __serpack_require__,
    __non_serpack_require__,
    module,
    exports,
  ) => {
    'use strict';
    function e(e, t) {
      return e + t;
    }
    Object.defineProperty(exports, '__esModule', { value: !0 }),
      Object.defineProperty(exports, 'sum', {
        enumerable: !0,
        get: function () {
          return e;
        },
      });
  },
});

#importToRequire

Convert ImportStatement to require.

Typescript
const requireNode = importToRequire(node);