🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@serverless-devs/s-core

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@serverless-devs/s-core

Serverless Devs Tool Core Component

latest
Source
npmnpm
Version
0.0.28
Version published
Weekly downloads
117
-35.71%
Maintainers
1
Weekly downloads
 
Created
Source

s-core使用文档

s-core是Serverless-Devs-Tool的一个官方组件,通过该组件您可以轻松处理一些有趣的事情:

  • 状态存储、读取
  • 组件加载、调用
  • 参数转换等
  • 帮助文档
  • 日志输出
  • 打包压缩
  • 获取密钥信息

整体使用方法

1: 导入依赖,并且做好extends即可:

const { Component } = require('@serverless-devs/s-core')
class MyComponent extends Component {
}

状态存储、读取

状态的存储和读取,实际上是在项目中经常用到的,通过这个功能,我们可以存储简单的状态。

首先进行部分初始化:

await this.init()

然后进行可以读取状态和存储状态:

读取状态:

const state = this.state

存储状态:

this.state = {}
this.save()

组件加载、调用

例如,我在做某个Component的时候,需要导入fc组件,则:

const fc = await this.load('fc', 'Component', 'alibaba');

其中load有三个参数,分别是:

  • componentName: 组件名
  • componentAlias:设置的别名
  • provider:组件的提供商

参数转换等

参数转换方法是比较简单的,您只需要传入对应参数即可,例如:

this.args(inputs.Args)

此时,我在控制台输入:

s deploy c-1 c-2 c-3 -a b --cc d

这一部分的解析结果是:

{ Commands: [ 'c-1', 'c-2', 'c-3' ], Parameters: { a: 'b', cc: 'd' } }

额外参数

其实在this.args()方法中是有三个参数的,即:

  • argsStr: 这部分是String类型,是参数
  • boolList: 这部分是Array类型,是告诉解析时有那些参数是true/false类型
  • moreList: 这部分是Array类型,是告诉解析时有那些参数是带有空格的
  • argsList: 这部分是Array类型,是告诉解析时只解析某些参数

例如,当我boolList设置成了['a', 'b'],那么当我传入的数据为-a 1 -b 2 -c 3

系统为我解析的结果是:

{
  Commands: [ '1', '2' ],
  Parameters: {
    a: true,
    b: true,
    c: '3'
  }
}

再例如,当我们的moreList设置为['start-time']之后,当我传入-a 1 2 3 --start-time 4 5 6

系统为我解析的结果是:

{
  Commands: [ '2', '3' ],
  Parameters: {
    a: '1',
    start-time: '4 5 6'
  }
}

例如,当我解析时,是想解析['--cmd', '-c'], 则可以传入argsList为:['--cmd', '-c']

当我们执行:s deploy aaaa -a --cmd 'ls -a && la -a'

结果为:

{ Commands: [ 'test' ], Parameters: { cmd: 'ls -a && la -a' } }

帮助文档

直接将s启动器的inputs和help传入即可,例如:

this.help(inputs, {
    "description": "这是帮助文档",
    "commands": [{
          "name": "指令1",
          "desc": "指令1描述",
        },{
          "name": "指令2",
          "desc": "指令2描述",
        }],
        "args": [{
          "name": "参数1",
          "desc": "参数1描述",
        },{
          "name": "参数2",
          "desc": "参数2描述",
    }],
})

当用户执行s deploy -h/--help的时候:


    这是帮助文档


  Commands: 
      指令1: 指令1描述
      指令2: 指令2描述

  Args: 
      参数1: 参数1描述
      参数2: 参数2描述


日志输出

系统默认提供多种格式日志输出,基本使用方法:

首先导入:

const { Log } = require('@serverless-devs/s-core')

然后创建对象:

const log = new Log()

接下来就可以使用日志能力了:

log.log(`Waiting for service ${serviceName} ${beforeDeployLog}...`)

或者增加一定的设置:

log.log(`Waiting for service ${serviceName} ${beforeDeployLog}...`, {output: true})

log

该种格式会输出灰色字符串。

如果执行指令的时候,没有加--verbose,系统不会输出该类型数据,只有加--verbose才会输出;如果组件开发者想默认输出该类型内容,可以设置参数output: true

如果系统设置的output-colordisable,则不会输出颜色,只有output-colorenable,才可以输出颜色;

log方法参数有:

  • message: 日志信息
  • option: 设置,object
    • style: 输出类型,默认为0,表示直接输出,取值为1时,会在输出前面默认添加[LOG]
    • number:前面添加的空格个数,Number类型
    • output: 取值false(默认)不输出日志,只有在加--verbose时输出日志,取值true默认输出日志

warn

该种格式会输出黄色字符串。

如果系统设置的output-colordisable,则不会输出颜色,只有output-colorenable,才可以输出颜色;

warn方法参数有:

  • message: 日志信息
  • option: 设置,object
    • style: 输出类型,默认为0,表示直接输出,取值为1时,会在输出前面默认添加[WARN]
    • number:前面添加的空格个数,Number类型

error

该种格式会输出红色字符串。

error方法参数有:

  • message: 日志信息
  • option: 设置,object
    • style: 输出类型,默认为0,表示直接输出,取值为1时,会在输出前面默认添加[ERROR]
    • number:前面添加的空格个数,Number类型

info

该种格式会输出蓝色字符串。

如果系统设置的output-colordisable,则不会输出颜色,只有output-colorenable,才可以输出颜色;

info方法参数有:

  • message: 日志信息
  • option: 设置,object
    • style: 输出类型,默认为0,表示直接输出,取值为1时,会在输出前面默认添加[INFO]
    • number:前面添加的空格个数,Number类型

success

该种格式会输出绿色字符串。

如果系统设置的output-colordisable,则不会输出颜色,只有output-colorenable,才可以输出颜色;

success方法参数有:

  • message: 日志信息
  • option: 设置,object
    • style: 输出类型,默认为0,表示直接输出,取值为1时,会在输出前面默认添加[SUCCESS]

    • number:前面添加的空格个数,Number类型

打包压缩

可以通过zip()方法进行打包,其中该方法参数有:

  • codeUri: 打包的路径
  • exclude: 不包括的文件(list)
  • include: 额外包括的文件(list)
  • outputFileName :打包后的名字
  • outputFilePath :输出的路径

获取密钥信息

通过await this.credentials(inputs)可获取密钥信息。

Keywords

Serverless

FAQs

Package last updated on 02 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts